youtube-downloader

A browser extension for simplifying downloading YouTube videos.

Stars
78

YouTube Downloader

A browser extension for downloading videos from YouTube

Made by avi12

Supported browsers

NOTICE: This extension will only work until June 2024, so hurry up! If you still want to use it afterwards, you can use Brave which has a longer Manifest V2 support If you can, I'd love if you can port it to Manifest V3!

For videos that aren't in the Music category:

For videos in the Music category:

In /playlist:

Pop-up page

Installation

Download from one of: AdFly, Linkshrink, AdPayLink, or direct

Video installation tutorials:

After installing, reload YouTube tabs

Features

  • Download videos from /watch & /playlist, either as videos, audio tracks or audio-less videos

  • Viewing the download progress

  • All downloads are cancelable

  • Always keep in mind:

    • Videos with audio tracks will always be downloaded one-by-one
    • Audio tracks or audio-less videos will always be downloaded in parallel
  • Via the pop-up page, you can manage downloads, customize the file extensions and change the default video quality

  • Useful tooltips when hovering over certain buttons, notably individual downloads and the playlist download button

  • For videos on /watch:

    • Clicking to download a video whose category isn't "Music" will:
      • begin downloading in the currently-selected quality (unless customized) if the queue is empty
      • if the queue isn't empty, it will be pushed to the queue
    • Otherwise, it will be downloaded as an audio track immediately
  • In playlists on /playlist:

    • When downloading an individual video:
      • If you're downloading it as a video, yet you already started downloading a videos that you selected - it will
        abort their downloads and instead begin downloading the video you just clicked Download on
      • Otherwise, it will start downloading immediately as an audio track
    • When selecting multiple videos and clicking the Download button that's tied to the playlist, they'll download
      one-by-one
    • Download a whole playlist with a single click, using "Download all when ready"
    • Set playlist-wide options (download all videos as videos / audio-less videos / audio tracks; use the same file
      extension for all items)
  • Pop-up:

    • Options:
      • Control whether to download a video in quality X/the highest available, or download according to the selected
        quality
      • Allow specifying a custom file extension for videos and audios
      • If you have YouTube Premium ,remove the native Download button

To-dos (when I have time)

  • Pop-up:
    • Options:
      • Allow downloading playlists as ZIP
      • Allow downloading playlists to a subdirectory whose name is the playlist's name
  • If the video has Clip, opening the Clip modal will allow specifying which portion of the video to download (including
    the rich options, as mentioned above)

Known bugs

  • When downloading video files that include audio, reordering them via the pop-up page will sometimes not correctly
    display right away the download / processing progress in the video's progress bar

Core packages/repositories used

  1. ytdlr - for converting signature ciphers into downloadable URLs
  2. FFmpeg - for combining video & audio into a single video file, and then
    providing it as a download
  3. Vue.js - for the in-page UI interactivity
  4. Svelte - for the pop-up page
  5. Svelte Materialify - for using Material Design components in the pop-up
    page. It will be replaced by a different library when it becomes deprecated

Setting for development

  1. Make sure to have Node.js and PNPM
  2. pnpm i
    
  3. Start Rollup for development
    pnpm dev
    
  4. Test on Chrome/Chromium
    pnpm run-chromium