Skip to content

Everything for WordPress, web development — and beyond

📥 How to download an entire YouTube channel with yt-dlp

📥 How to download an entire YouTube channel with yt-dlp

Why archive a YouTube channel

Watching on YouTube is a compromise. You depend on ads, algorithms, buffering, and sudden content removals. The platform does not guarantee that the video you need will still be available in a month, let alone a year.

A local archive solves these problems outright. No ads, neither on desktop nor on mobile. Full control over playback speed, seeking, and subtitles. Videos are available offline: on a plane, in the subway, or at a cabin with poor reception.

Another advantage is dual subtitles. A player like PotPlayer can display two languages simultaneously, one on top and the other at the bottom. For language learners this replaces a textbook. And for content collectors, it is a way to preserve what YouTube may delete at any moment.

A volume button hidden behind an extra click. A watch indicator that forgets where you stopped. Endless scrolling through the "Videos" tab trying to find where you left off. All of this disappears when the files are on your drive.

💡 Quick overview:

  • Install yt-dlp and FFmpeg, two utilities, no bloat
  • Add their folder to the system PATH
  • Create a bat file with a command for the desired channel
  • The first run downloads everything; subsequent runs grab only new videos
  • Set up Task Scheduler, and the archive updates on its own

yt-dlp instead of youtube-dl: what changed

The original youtube-dl was the standard for many years. But by 2020 development had slowed: releases came once every six months, bugs with YouTube signature verification lingered for weeks. In 2021 the fork yt-dlp appeared, the community rallied around it, and today it is the primary tool.

As of 2026, yt-dlp has 171,000 stars on GitHub and is updated weekly. It is faster, handles formats more intelligently, and supports more sites. All the old youtube-dl options still work here; the commands are interchangeable.

If you already had youtube-dl installed, simply replace the exe file with yt-dlp.exe. All your bat files will keep working.

Setting up yt-dlp on Windows

There is no installation in the usual sense. You download two exe files and add their path to environment variables. From there, it is the command line.

What to download

  • yt-dlp, download the Windows x64 exe from the official GitHub release
  • FFmpeg, grab a prebuilt Windows package from gyan.dev (the release builds section, file ffmpeg-release-essentials.zip)

Where to put them

Create a folder, for example C:\YouTube. Place the following there:

  • yt-dlp.exe
  • ffmpeg.exe and ffprobe.exe (from the FFmpeg archive, the bin folder)
yt-dlp and FFmpeg files in the YouTube folder

Add to PATH

Press Windows+R, paste the following, and press Enter:

1C:\Windows\system32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
  • In the "User variables" section, double-click the Path entry
  • Click "New" and paste the folder path: C:\YouTube
  • Close all windows by clicking "OK"
Windows environment variables dialog with the yt-dlp path added

Verification: Windows+R, type yt-dlp --version and press Enter. If you see a version number, everything works.

Key yt-dlp options for downloading a channel

At first glance the documentation looks intimidating. But downloading a channel only requires five or six parameters. Let's go through the important ones.

Video format: --format

The heart of the entire command. By default yt-dlp picks not the highest resolution but the best bitrate, which is often 720p. Let's fix that:

1--format "bestvideo[height<=2160]+bestaudio/best"

First the best video up to 4K and the best audio are grabbed separately, then FFmpeg merges them into a single file. If you want strictly Full HD, replace 2160 with 1080.

Download archive: --download-archive archive.txt

Prevents downloading the same video twice on each run. Every successfully downloaded video is recorded in a file, and on the next pass yt-dlp skips it. The file can be shared across different channels because the identifiers inside are unique.

File names: --output

1--output "%(uploader)s/%(upload_date>%Y-%m-%d)s %(title).100s [%(id)s].%(ext)s"

What this gives you:

  • Videos are organized into folders named after the channel
  • The filename starts with a date like 2026-06-16
  • The title is truncated to 100 characters (protection against excessively long names)
  • The video ID is preserved for quick lookup on YouTube

Other important options

1--restrict-filenames # only ASCII in names — avoids conflicts with non-Latin characters in titles
2--merge-output-format mkv # Matroska container — flexible and reliable
3--ignore-errors # don't stop if a single video fails
4--no-playlist # for single videos — prevents accidentally downloading an entire playlist
5--write-subs # save subtitles
6--sub-langs en,ru # subtitle languages

Downloading an entire channel: the bat file

Typing the command manually every time is inconvenient. Create a bat file, and the channel downloads with a single click.

Create a text file named job-<channel name>.bat in the C:\YouTube folder:

1cd /D "%~dp0"
2yt-dlp https://www.youtube.com/@colinfurze ^
3 --format "bestvideo[height<=2160]+bestaudio/best" ^
4 --download-archive archive.txt ^
5 --output "%%(uploader)s/%%(upload_date>%%Y-%%m-%%d)s %%(title).100s [%%(id)s].%%(ext)s" ^
6 --restrict-filenames ^
7 --merge-output-format mkv ^
8 --ignore-errors
9PAUSE

Important details:

  • cd /D "%~dp0" makes the download target the same folder where the bat file resides
  • Double percent signs %% are required inside a bat file (on the command line directly, use single ones)
  • PAUSE keeps the window open after completion so you can see whether everything downloaded
  • Replace the URL with your target channel

To run: double-click the bat file. Or press Windows+R, type job-colinfurze, and press Enter.

Configuration file: default settings

If you have several channels, it makes sense to extract common settings into a separate file. Create yt-dlp.conf in the C:\YouTube folder:

1--format "bestvideo[height<=2160]+bestaudio/best"
2--download-archive archive.txt
3--output "%(uploader)s/%(upload_date>%Y-%m-%d)s %(title).100s [%(id)s].%(ext)s"
4--restrict-filenames
5--merge-output-format mkv
6--ignore-errors

Now the bat file for a channel becomes much shorter:

1cd /D "%~dp0"
2yt-dlp https://www.youtube.com/@EngineeringExplained --config-location yt-dlp.conf
3PAUSE

Convenient: to add a new channel, copy three lines and replace the URL.

A single video, a playlist, or audio only

yt-dlp is not limited to channels. Different scenarios call for their own bat files.

A single video

Create dl-single.bat:

1@echo off
2cd /D "%~dp0"
3set /p video="Вставьте ссылку на видео: "
4yt-dlp --config-location yt-dlp.conf --output "SingleDownloads/%%(upload_date>%%Y-%%m-%%d)s %%(title).100s [%%(id)s].%%(ext)s" --no-playlist !video!
5PAUSE
Pasting a video link into the command prompt

Run it, paste the link, press Enter. The video lands in the SingleDownloads folder.

SingleDownloads folder with downloaded video files

A playlist

Create dl-playlist.bat:

1@echo off
2cd /D "%~dp0"
3set /p video="Вставьте ссылку на плейлист: "
4yt-dlp --config-location yt-dlp.conf --output "%%(playlist_uploader)s - %%(playlist_title)s/%%(upload_date>%%Y-%%m-%%d)s %%(title).100s [%%(id)s].%%(ext)s" !video!
5PAUSE

Videos from a playlist are grouped into a folder named after the author and the playlist title. Unlike a channel download, where the folder is the uploader's name, here it makes more sense to group by playlist.

Audio only

For podcasts, mixes, and background listening. Create dl-music.bat:

1@echo off
2cd /D "%~dp0"
3set /p video="Вставьте ссылку на видео: "
4yt-dlp --config-location yt-dlp.conf --output "Music/%%(title).100s [%%(id)s].%%(ext)s" --format bestaudio --extract-audio --no-playlist !video!
5PAUSE

For a music playlist, dl-mplaylist.bat:

1@echo off
2cd /D "%~dp0"
3set /p video="Вставьте ссылку на музыкальный плейлист: "
4yt-dlp --config-location yt-dlp.conf --output "Music/%%(playlist_uploader)s - %%(playlist_title)s/%%(title).100s [%%(id)s].%%(ext)s" --format bestaudio --extract-audio !video!
5PAUSE

The output is not mp3 but Opus or M4A. These are modern codecs: higher quality at a smaller file size. Any decent player (foobar2000, PotPlayer, VLC) handles them without issues.

Automation with Task Scheduler

Once the initial archive is built, new videos on channels do not come out every day. Running downloads manually becomes tedious. Windows Task Scheduler solves this entirely.

Windows Task Scheduler with a basic task being created

Setting up a task for one channel:

  • Open "Task Scheduler" from the Start menu
  • Click "Create Basic Task" in the right panel
  • Give it a meaningful name: "YouTube Archive, Colin Furze"
  • Trigger: weekly, during off-hours (for example, Sunday at 3:00 AM)
  • Action: "Start a Program" → select job-colinfurze.bat
  • At the end, check "Open the Properties dialog"
  • On the "General" tab: switch to "Run whether user is logged on or not" so the task runs in the background without pop-up windows
Task properties in Task Scheduler, set to run in the background

Run all channels with a single task

If you have several channels and don't need individual control, combine them into one bat file called _all-jobs.bat:

1cd /D "%~dp0"
2for %%x in (job-*.bat) do (
3 @echo Запуск %%x...
4 call %%x
5)

Now a single task in the scheduler iterates through all bat files with the job- prefix and runs them sequentially. Name a new channel's bat file with the job- prefix, and it is automatically included in the batch run.

Updating yt-dlp

YouTube periodically changes its internal logic, and older versions of yt-dlp stop working. Updating is a single command:

1yt-dlp -U

You can set up a monthly task in Task Scheduler: action C:\YouTube\yt-dlp.exe, argument -U. Let it update on its own.

How much storage you need

Disk space is the main limiting factor. One hour of Full HD video takes between 500 MB and 1 GB depending on the codec and bitrate. A channel with 500 videos at 20 minutes each amounts to 80-170 GB.

Warning about disk space required for video downloads

Download speed is not record-breaking either. YouTube optimizes streaming for viewing pace, not for maximum throughput. Popular videos download faster thanks to distributed caching. Expect the first run on a large channel to take several hours.

What to use for playback

The built-in Windows player is not suited for collections. Two candidates to replace it:

PotPlayer (Windows, free) opens a folder of videos as a playlist and is customizable down to the smallest detail: skins, hotkeys for everything, dual subtitles. A level of flexibility you cannot get in a browser.

PotPlayer video player with the Kardox skin showing the ATHLEAN-X channel

VLC (cross-platform, free) is the go-to for Android and systems where PotPlayer is not available. It falls short on fine-tuning but plays any format.

If you only need a single playlist or audio

The ready-made bat files are already listed above. The scenarios:

  • dl-single.bat for a single video from any site
  • dl-playlist.bat for an entire playlist (videos grouped by author and playlist title)
  • dl-music.bat for the audio track of a single video
  • dl-mplaylist.bat for audio from every video in a playlist
Folder structure with ready-made bat files and configuration

The files shown in the screenshot form the complete structure. Download yt-dlp.exe and ffmpeg.exe, place them in the same folder, and the bat files will work.

Volume slider in the YouTube interface, an example of a clunky UI element

In practice everything is even simpler than it sounds on paper. Here is a video walkthrough covering installation and the first yt-dlp run on Windows in 15 minutes:

⁉️🤔 Frequently asked questions

Is yt-dlp free?

Yes. It is an open-source project under the Unlicense, which is essentially public domain. There are no paid versions, download limits, or hidden subscriptions. The code can be used for any purpose, including commercial.

Will YouTube ban my account for downloading?

Technically, downloading violates YouTube's Terms of Service (section 4.C: "you shall not download any Content"). In practice, no bans for using yt-dlp have been documented. The tool does not crack any protection; it emulates a browser. If you are concerned, do not pass your cookies and do not log in. A single channel download at normal speed is indistinguishable from regular viewing.

Why did the video download in 720p even though I selected 4K?

By default yt-dlp picks the best bitrate, not the maximum resolution. Use --format "bestvideo[height<=2160]+bestaudio/best", and the priority will shift to Full HD and above.

What should I do if a video is blocked in my country?

The --ignore-errors option in the configuration file handles exactly this: yt-dlp will skip the blocked video and continue downloading the rest. At the end you will see a summary showing how many were downloaded and how many were skipped.

Can I download a private or unlisted channel?

No. yt-dlp only works with public content. To access private videos you need the cookies of an authorized user who has access; these are passed with the --cookies-from-browser chrome flag.

How is yt-dlp better than online downloader services?

Online services cut quality, inject their own ads, and cannot handle entire channels. yt-dlp pulls the original files at the highest available quality, with no re-encoding and no watermarks. On top of that, full automation through bat files and Task Scheduler.

What to install and in what order

The process from installation to an automated archive fits into seven steps.

Download two files: yt-dlp.exe from the GitHub release and the FFmpeg build from gyan.dev. Place them in C:\YouTube.

Add to PATH via environment variables so the commands work from any folder.

Create a config file yt-dlp.conf with base settings: format, archive, filename template.

Make a bat file for each channel. Replace the URL in the template, and you are done.

Run it manually the first time. This is the longest part: the entire channel history is downloaded.

Set up Task Scheduler for a weekly run. New videos will be picked up automatically.

Install PotPlayer to watch the offline archive more comfortably than on YouTube.

Seven steps that turn an ephemeral YouTube channel into your personal, permanent video archive. Try it on one channel, and within a week you will wonder why you hadn't done this sooner.