r/youtubedl

How is Video Downloadhelper browser extension able to do what yt-dlp can't?

Video Downloadhelper (VDH) is almost 100% reliable and dependable for downloading any video I encounter online. If my browser can play it, VDH can download it. I don't think I have found a video that it cannot download. Unfortunately, it is neither free nor open source, offering 1 download every 2 hours. There are ways to get around the limits, but the question here is how it's able to succeed where yt-dlp fails? I can never 100% rely on yt-dlp being able to download a video as I am many times met with 403 or other vague errors. Not VDH. One click and it downloads without a hassle. Every single time. Why can't yt-dlp do the same?

Seems like the advantage VDH has is that it runs in the browser, so it doesn't have to emulate anything. Would it help if yt-dlp used a headless browser behind the scenes? This could eliminate all of the tedium in trying to diagnose why a server is refusing requests, so no fiddling with multiple combinations of switches and arguments. Should I use referrer? Should I use cookies? Do I need a custom extractor? Should I do this or do that? No more questions, just one command line and it's done. Here's the URL. Get me the video.

I'd really like to find a FOSS replacement for the premium-based, heavily obfuscated, closed-source VDH. Would be nice if yt-dlp could achieve that.

reddit.com
u/JarlBallnuts — 4 hours ago

yt-dlp lists YouTube Premium enhanced bitrate format (96) but -f 96 always says "Requested format is not available"

Hi everyone,

I'm trying to download the YouTube Premium Enhanced Bitrate (1080p Premium) stream using the latest yt-dlp nightly, but I'm stuck.

My setup

  • Windows 11
  • yt-dlp nightly: 2026.07.04.221833
  • Node.js: v24.16.0
  • FFmpeg installed and detected
  • yt_dlp_ejs installed
  • YouTube Premium subscription

Node/EJS is working

Without Node I only got Android formats.

After running:

.\yt-dlp.exe --js-runtimes node -F "https://www.youtube.com/watch?v=9Op8U_wy4fs"

yt-dlp detects Node correctly and solves the JS challenge.

The format list now includes the Premium HLS stream:

96 mp4 1920x1080 ~504.77MiB 4689k m3u8 avc1.640028 mp4a.40.2 [hi]

Problem

If I immediately run:

.\yt-dlp.exe --js-runtimes node -f 96 "https://www.youtube.com/watch?v=9Op8U_wy4fs"

I get:

ERROR: [youtube] Requested format is not available.
Use --list-formats for a list of available formats.

The strange part is that format 96 was listed just seconds earlier.

Things I've already tried

  • Latest nightly build
  • Stable build
  • Node.js
  • FFmpeg
  • EJS
  • Cookies from Premium account
  • No cookies
  • --remote-components "ejs:github"
  • --extractor-args "youtube:player_client=default,ios"
  • --extractor-args "youtube:player_client=android"
  • --extractor-args "youtube:player_client=android_vr"
  • best[protocol=m3u8]
  • best*[protocol=m3u8]
  • best[height=1080][protocol=m3u8]

Everything either returns:

Requested format is not available

or downloads the normal 1080p stream instead of the Premium enhanced bitrate.

Debug log

The debug log shows:

Detected experiment to bind GVS PO Token to video ID for web_safari client

Some web_safari client https formats have been skipped as they are missing a URL.
YouTube is forcing SABR streaming.

It also shows:

Downloading m3u8 information

and format 96 is still listed.

My question

Is this a recent YouTube change related to SABR / PO Tokens, where yt-dlp can list the Premium HLS stream but cannot actually download it?

Or is there another extractor/client combination that still works for downloading the actual Enhanced Bitrate stream?

Has anyone successfully downloaded the true 1080p Premium Enhanced Bitrate stream recently?

Thanks

u/Johnashish — 9 hours ago

yt-dlp only shows 360p as the highest audio+video quality despite having ffmpeg installed

I'm on Debian Linux and I have ffmpeg installed, but yt-dlp shows a bunch of audio-only formats, and video-only formats, with 360p being the only audio+video format it shows.

I read you need ffmpeg installed to download audio and video separately for higher resolutions, and have the two merged into one file automatically.

But I already have ffmpeg installed and I don't see any options for higher quality audio+video. Do I need to point yt-dlp to ffmpeg somehow, or use a specific command, in order to use the two software together?

reddit.com
u/lectric_7166 — 1 day ago

Aliases aren't working for my yt-dlp config file. What's a good website to troubleshoot aliases on that won't flag me as a bot

I can't seem to get aliases working. I tried troubleshooting it using youtube but got flagged as a bot after too many attempts in a short amount of time.

What's a good website or other method to troubleshoot why aliases aren't working?

reddit.com
u/Sudden-Wash4457 — 1 day ago
▲ 111 r/youtubedl+1 crossposts

YT-DLP Web Player - The best alternative to revanced / yt premium + even more!

https://github.com/Matszwe02/ytdlp_web_player

This software is a self-hosted web player that plays (almost) every video on the internet. It plays without ads at all of the resolutions, supports sponsorblock and implements many features, explained further in my repo.

You can replace youtube's video player with this one (using browser extension, or a tampermonkey script), watch videos directly on the player's website, or inside PWA app on your phone (which works as good as native players).

I meantioned youtube, but this player works on almost every website imaginable, as it uses YT-DLP, which itself supports everything except pirated content.

Let me know what you like, what not, or if you have any suggestions, so I can address them in the future releases!

u/Matszwe02 — 1 day ago

I need yt-dlp gui for pc for bulk download video by paste URLs

Hi People How Are You I really need pc app gui for bulk download videos from Facebook that have ability for file template videos and haves ability to paste URLs and thank you

reddit.com
u/AhmedSouf — 2 days ago

--postprocessor-args, ffmpeg, and shared resources.

So I am one user among many of a computer somewhere out there on the internet, and the hosts don't appreciate the resources being used for encoding. But they also say that if you do some, then you need to play nice with others (completely understandable).
Some googling has come up with nice -n 19 taskset -c 0,1 ffmpeg -i input.mp4 -c:v libx264 -preset silver -crf 22 -c:a copy output.mp4 as a suggestion to limit resource utilisation and lower the impact on other users, so to use that do I simply add --postprocessor-args "ffmpeg:nice -n 19 taskset -c 0,1 -preset slower" into my config file or CLI in order to use it?
Specifically this is just for muxing the audio and video back together, not changing the resolution, adding filters, etc.
Cheers.

reddit.com
u/SheridanVsLennier — 2 days ago

Audio Stream IDs contain Hyphens, "Requested format is not available"

Good day everyone, I'm attempting to download a YouTube video, where the completed file should contain one video stream, English subtitles, and two audio streams.

For context, I run yt-dlp from a Windows 10 Powershell.
When using --list-formats, the "bestvideo" and the original "bestaudio" streams both have a standard ID, in this case 271 and 251.
Example of the video stream's result:
271 webm 2560x1440 30 │ 629.64MiB 2598k https │ vp9 2598k video only 1440p, webm_dash

The extra audio stream I mean to include has an ID of 96-11.
Unlike the other two IDs, this one has a protocol of m3u8 instead of https.
Its language code is en-GB. This is the result for it in --list-formats:
96-11 mp4 1920x1080 30 │ ~ 1.20GiB 5049k m3u8 │ avc1.640028 mp4a.40.2 [en-GB]

Please see the pasted code below, which shows two of the many commands I have attempted.
I've also read the readme, FAQ and forums high-and-low, but no dice.
--audio-multistreams is included in my command attempts.
And, I use --update to confirm that my version of yt-dlp is indeed current.

Any advice would be greatly appreciated, and many thanks in advance!

.\yt-dlp -f "271+251+96-11" --audio-multistreams --embed-subs --sub-lang en https://www.youtube.com/watch?v=mOvhHim78YA

.\yt-dlp -f "bv+ba[language=en-GB]+ba[language=en]" --audio-multistreams --embed-subs --sub-lang en https://www.youtube.com/watch?v=mOvhHim78YA

u/BlinkyBoomer — 3 days ago

Falkon cookies?

My old stand-by for getting cookies in yt-dlp was ye olde --cookies-from-browser BROWSER. I know Falkon is built on top of Chromium, but passing --cookies-from-browser chromium or --cookies-from-browser chrome doesn't work. You folks have any ideas for working around that?

reddit.com
u/justquestionsbud — 3 days ago

Getting a HTTP Error 403: Forbidden through Tartube

Hi all,

First I want to frontload that I'm not fluent with this sort of thing, but I know some basics. A day ago I started getting this error when trying to download Youtube videos (audio only) through Tartube.

Verbose warnings gives me the following output:
ERROR: unable to download video data: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):

urllib.error.HTTPError: HTTP Error 403: Forbidden

I am on the nightly build, updated ffmpeg, am using Deno, etc.

I have tried to use cookies via Firefox with the appropriate config command, which did help me download at least one video, but on the next attempt it told me that the cookies need to be exported now. I've read that this risks getting my YT account getting banned, so I'm wary about doing this.

What's getting me is that I didn't even need to muck about with this stuff a few days ago. I'm guessing YT pushed some evil change or another, so do I wait for an update?

Thanks in advance - both for your help and your patience, lol.

reddit.com
u/Erwin_the_German — 3 days ago

Download Russian youtube videos

Downloading videos from RUSSIAN YOUTUBE (you get it right) is giving errors. I've never downloaded from there so is there a certain way to do it from there.

This is the command

[Odnoklassniki] Extracting URL: https: //RUSSIAN YOUTUBE/video/15894079081067
[Odnoklassniki] 15894079081067: Downloading desktop webpage
[Odnoklassniki] 15894079081067: Downloading mobile webpage
ERROR: [Odnoklassniki] 15894079081067: Unable to download webpage: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)) (caused by TransportError("('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))"))

  • c:\ytdl\This>yt-dlp "bestvideo[height=1080]+bestaudio/best" "https://RUSSIAN YOUTUBE/video/15894079081067"

[generic] Extracting URL: bestvideo[height=1080]+bestaudio/best
ERROR: [generic] 'bestvideo[height=1080]+bestaudio/best' is not a valid URL
[Odnoklassniki] Extracting URL: https: //RUSSIAN YOUTUBE/video/15894079081067
[Odnoklassniki] 15894079081067: Downloading desktop webpage
[Odnoklassniki] 15894079081067: Downloading mobile webpage
ERROR: [Odnoklassniki] 15894079081067: Unable to download webpage: ('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None)) (caused by TransportError("('Connection aborted.', ConnectionResetError(10054, 'An existing connection was forcibly closed by the remote host', None, 10054, None))"))

reddit.com
u/Educational-Chip- — 4 days ago

Is there a way to use this archiving program inside of Tartube? Lost some old NTS Radio shows and I'd like to easily redownload them and have them properly tagged, and I found a program that does just that.

I'm not sure if there's a way to use this program while using the Tartube GUI for yt-dlp. If there is, I would really appreciate somebody assisting me and telling me how to make it run inside of it. thank you.

https://github.com/worm-emoji/nts-archiver

reddit.com
u/Parking_Wolf_4159 — 4 days ago

YouTube (and Instagram) downloads aren't working with YTDLnis

Title is self-explantory. No downloads are working whatsoever, neither from youtube nor from instagram. Tried using Seal as well, nothing worked.

Issues im running into are:

  1. no cookies

  2. impersonating or something

  3. sign in for cookies.

the 3rd point, of signing in, YTDLnis is making me sign in through the inbuilt browser for Instagram and YouTube. Is that safe or should i refrain from signing in through YTDLnis' browser.

And any fixes?

reddit.com
u/chickenlatte45 — 5 days ago
▲ 0 r/youtubedl+1 crossposts

Which video codec is best in quality, in your opinion?

VP9 and AV1: which one is best for pure visual quality?

reddit.com
u/Hyper__Link — 5 days ago
▲ 4 r/youtubedl+1 crossposts

Is There A Way To Specify The Thumbnail Format To Pick For YouTube?

I've checked videos with the --list-thumbnails flag and the default behavior when grabbing a thumbnail seems to be just grabbing the highest numbered one which is always a WebP file.

Is there a way to specify a thumbnail with either a name, number or something else? I don't want to grab the WebP file just the JPEG one. Even if I have to specify with something like "maxresdefault.jpg" that's at least doable.

I can't seem to find an easy way to do this. That is only using yt-dlp and I've already looked through the manual and the README on GitHub.

Do I have to use some scripting by downloading and then removing all the thumbnails and then muxing the maxresdefault.jpg as an attachment? Either a manual script or using something like the --exec and/or --use-postprocessor flags.

I'd rather just use yt-dlp but if that's what I have to do I suppose I'll do it. Just seems like it should be an easy thing to do to specify the thumbnail or is it a technical detail where YouTube just really makes it hard to implement.

Anyway, if there's anything I can do let me know if you already know of or use a scripting solution with flags or manually let me know. Any help is appreciated.

reddit.com
u/Dante-Vergilson — 4 days ago

Can't download super long youtube video

The video is 33 HOURS long.

[youtube] Extracting URL: https://www.youtube.com/watch?v=EwRH15lTNgE

[youtube] EwRH15lTNgE: Downloading webpage

WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one

[youtube] EwRH15lTNgE: Downloading android vr player API JSON

ERROR: [youtube] EwRH15lTNgE: This video is not available

I assume the issue is the video length, but just in case there is a work around, what can I do?

Edit: actually only the first 3 hours are a video, the next 30 hours are just a still image lol

u/not_a_nazi_actually — 5 days ago

Error getting files...never had an issue before

Anyone having issues downloading files i get this error...on the latest build

ERROR: [Instagram] DaJIf74gGf7: Instagram sent an empty media response. Check if this post is accessible in your browser without being logged-in. If it is not, then use --cookies-from-browser o
r --cookies for the authentication. See  https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp  for how to manually pass cookies. Otherwise, if the post is accessible in bro
wser without being logged-in, please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  
yt-dlp -U

u/ErnestT_bass — 5 days ago

How do I tackle; ERROR: unable to download video data: HTTP Error 403: Forbidden

I am using the following command:

python -m yt_dlp --remote-components ejs:github -x --audio-format mp3 --audio-quality 0 --embed-metadata --convert-thumbnails png --ppa "ThumbnailsConvertor+ffmpeg_o:-c:v png -vf crop=ih:ih" --embed-thumbnail -P "C:\Users\name\Downloads" -o "%(title)s.%(ext)s" '<link>"

I have downloaded 768 songs to be exact. and never had that problem, I did have the sign in warning and decided to slow it down. Now I don't know how to tackle this one

reddit.com
u/Global-Tank8850 — 5 days ago

How to put subtitles direclty into the video, like be in the video not embed it

I have this tv decoder thingy that also supports flash drives, which could be used to play like media.

My workflow that I've come up with is that I download thru YTDLnis on my phone directly to a flash drive (because I have an OTG adapter), then plug it to the decoder and play the videos. Pretty simple and neat, but the embeded subtitles won't work.

Now I'm not sure if I need .srt to be in the same folder for it to work or I haven't looked hard enough at my remote, but I think having the subs in the actual frames of the video is the safest bet.

Tried looking on how to do it all in one command (or adding it as an extra argument on YTDLnis) but didn't find what I was looking for. No I will not buy a better tv box as it's in a place that I don't wanna disclose, but I can say that I'm talking about Prosto rt5430t2, if that helps.

reddit.com
u/Luka_tv — 5 days ago