Ask HN: What's the Situation with YouTube-Dl?
I wanted to download some lectures [1] off youtube as I'm going to be without internet or a long period, and but A) just apt install get me a version which is too old, and I get ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. and B) going to the update url I see Access denied; Due to a ruling of the Hamburg Regional Court, access to this website is blocked.
So, what's the situation with youtube-dl? How do I get it working? As a separate question, how else can I download something off youtube?
I guess last resort I'll have to dig into the python to figure out why that regex is failing and what else I can do about it, but that's not sustainable.
[1] if anyone is curious, just discovered this from HN: https://www.youtube.com/watch?v=tNOu-SEacNU&list=PLDcUM9US4XdPz-KxHM4XHt7uUVGWWVSus&index=5
68 comments
[ 3.1 ms ] story [ 142 ms ] threadMan google sucks.
https://github.com/yt-dlp/yt-dlp#release-files
I downloaded the release binary for linux, and it's downloading now.
Thank you.
youtube-dl is not maintained but not very active because is stable.
yt-dlp uses youtube-dl as a core, so if something breaks still needs to go to the youtube-dl and fix it.
No, they don't. yt-dlp is a fork - if something break, they can just fix it in their own codebase without needing to go through yt-dl. yt-dl is still somewhat active, but almost all their commits are backports of fixes from yt-dlp[0].
[0]: https://github.com/ytdl-org/youtube-dl/commits/master/
Glad to hear you found a newer version!
1. https://news.ycombinator.com/item?id=37211579
2. https://packages.debian.org/stable-backports/yt-dlp
& Here are the two (most widely known-to-date) ports of "youtube-dl": "yt-dlp" and "youtube-dlc"
However; in order to avoid any issues. For both, you're gunna want to completely uninstall "youtube-dl" and remove any remnants of it from your system.
To do so, For those using Linux, start by removing the "/usr/local/bin/youtube-dl" directory; Then, if found on your system, remove "/etc/youtube-dl" too.
For those using Windows, uninstall "youtube-dl" entirely by removing the "youtube-dl" directory found in your "\Program Files\" folder, manually using explorer or via the command prompt. (Or which ever directory that your installer or build had previously installed "youtube-dl" to).
Finally, now you may being your journey--to the PROMISE LAND!
DANIEL SON!
Go ahead and now install one of the following "youtube-dl" ports (Installation instructions are included in the documentation provided by both forks)
I) https://github.com/blackjack4494/yt-dlc & II) https://github.com/yt-dlp/yt-dlp
Cheers! x()x()__@zyp.LOL__O.o
I've been having more success with JDownloader2.
I don't mind paying for ad-free content.
It’s a nice no-fuss solution if you just want to watch some videos offline (as mentioned, it’s not suitable for archival) and the device is iOS/Android.
The reason why your solution is bad is because your solution only solves the problem for certain imagined values of 'problem'.
We don't know what the playback user story is for OP -- is it a raspberry pi? is it a librem 5? -- and there's no way to know that the user's problem is in fact solved, as you claim.
Your solution makes assumptions, and there's no way to know if they're reasonable, because this is HN, not Best Buy, and some of us are on some pretty interesting (and DRM-free) hardware. That's why it's bad.
I prefer yt-dlp downloaded videos mainly because you get to actually see the complete videos without overlays…
Does YouTube Premium help with that?
Though, I initially did start using mpv for watching videos back in 2014 when I was stuck with a core2duo laptop, and it was the only way of watching 720p or higher video without slowing the machine to a crawl. I'm so used to this setup now that I wouldn't want to go back to having my videos trapped a browser tab. (or an always-on-top firefox popout window)
- Until recently, Firefox did not support VA-API video acceleration on Linux, while mpv supported it for a long time. My last computer struggled to play 1080p videos without hardware acceleration.
- I am used to mpv keybindings, i do not want to use two completely different sets of keybindings for playing local videos and Youtube.
- I like videos in a separate window (this feature Firefox started to support recently as PiP mode).
Due to its nature something like youtube-dl needs to be constantly updated, as it's scraping websites that are constantly changing. So best to install it through other mechanisms like pip instead.
Install something with apt, run into an issue... Oh, the version is ancient, and its fixed in official releases.
Then my options are:
- Fight with apt/.deb packaging and try to roll it forward, maybe breaking my system.
- Figure out how to compile it from source, and manually integrate it until its kinda like the system package.
I don't mind Ubuntu as much on servers, as stuff is often done through containers or manual downloads anyway, and its not as prone to breakage as desktop software.
The weird contradiction is that you would have a better impression if things just stopped there.
E.g. the most current release on windows is broken. You grumble and give up. Heck, for apple stuff you would probably give up before even thinking of trying to fix anything.
As far as users are concerned, linux would be better if it simply said "No!" more often.
The fact that you treat "fighting" and "compiling" as options and then complain about it being tedious already shows a bad image. All other OSs simply say "Nope. Tough luck" and you are happier for it.
No, you just scroll further down on the GitHub releases page (or whatever) and grab an older version that does work, same as every other platform.
For yt-dlp in particular, on a recent x64 or ARM64 kernel you could grab the precompiled Linux binaries and skip the compile the same way, if you wanted. They ship self-contained static linked binaries on Linux.
Maybe I have to install some prerequisites, maybe I need to set nonstandard specific environment variables and paths, maybe I need a specific version of a library, maybe I need to edit a make file...
This is fine for a few programs, but the annoyance really adds up when it happens repeatedly.
when something doesn't work, i run `yt-dlp -U` and 8 times out of 10 it automatically upgrades itself to a new version with the fix, if it still doesn't work i wait a few days and usually the fix arrives :)
note: `$HOME/bin` comes first in my `$PATH` so that programs like `mpv` always uses the newer version of `yt-dlp` and not the obsolete version installed by the package manager.
I recommend using a frontend: https://www.reddit.com/r/youtubedl/wiki/info-guis/#wiki_gui.... GUIs can be better in this situation since they show you all the cmd line options like -embed-metadata, -embed-chapters, and show you all the resolutions you can download at, I would really checkout a frontend if you plan to download multiple files or a playlist
`docker run -it --name ubuntu-mantic -v path/to/your/videodir/:/VideosDir ubuntu:mantic /bin/bash`
Install stuff needed on the container, typically curl python3 etc and the install from GitHub: https://github.com/yt-dlp/yt-dlp/wiki/Installation
and you're good to go. I've honestly found this easier than fighting with my host system and constantly reinstalling broken versions etc.
Also YouTube has been doing some changes lately on the the player and a lot of the tools fail to download audio or video.
For example, in the last couple of weeks there have been some issues with a redirect to a 'consent page' : https://github.com/ytdl-org/youtube-dl/issues/32499