`yt-dlp` not downloading YouTube videos -- temporary fix

Just a quick PSA for people who, like me, are using yt-dlp to download and watch YouTube videos. You have probably noticed that YouTube made some changes on their end and now yt-dlp just prints ERROR: Unable to extract uploader id; and exits.

This will be fixed in the next release of yt-dlp, which will probably get updated in the Arch repos in a few days. In the meantime, it’s fairly easy to apply the following temporary fix:

In the file /usr/lib/python3.10/site-packages/yt_dlp/extractor/youtube.py change the following line (line 4049) (or comment it out by adding an octothorpe # in front of it):

'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,

to this:

'uploader_id': self._search_regex(r'/(?:channel/|user/|@)([^/?&#]+)', owner_profile_url, 'uploader id', default=None),

The usual warning: do not run a GUI text editor with sudo to edit root owned files. Either use an editor that has polkit support, or a terminal text editor with sudo. Backup any files you’re editing in case you mess up.

Source:

6 Likes

It’s because YouTube now uses cringe @ to denote channel names?

honka_memes-128px-50

1 Like

Yeah, exactly… So now the regular expression that looks for uploader_id fails. :roll_eyes:

1 Like

Today yt-dlp updated to version 2023.02.17, so this temporary fix is no longer necessary, just update.

Maybe this thread should be closed now.

1 Like

I still haven’t got the update yet, does EOS hold back the package compare to Arch?

Does EOS hold back the package compare to Arch?

I wouldn’t think so. As far as I understand, EOS (unlike Manjaro) uses the Arch repos directly, except for a few packages exclusive to EOS, which are in the endeavouros repo.

Anyway, the update is there now. But maybe for packages like yt-dlp (i.e. python packages available on pip) it might be a better idea to install them from pip, or even better, pipx.

The mirror you hit for Arch Community may be behind or not syncing as quick as others mirrors.

If you use a tool like pacfinder and explore the EOS repos, there are only about 100 packages and it’s most of the themes and apps from the team, save for yad and a yay-bin package and perhaps a few others. IOW, it’s very small.

Most certainly not. Especially not globally, that is, with sudo. You should never run sudo pip on Arch. If you do, you’re just creating problems for yourself when you update.

2 Likes

It’s there:

~🐸 pacman -Si yt-dlp
Repository      : community
Name            : yt-dlp
Version         : 2023.02.17-1
Description     : A youtube-dl fork with additional features and fixes
Architecture    : any
URL             : https://github.com/yt-dlp/yt-dlp
Licenses        : Unlicense
Groups          : None
Provides        : None
Depends On      : python-certifi
Optional Deps   : ffmpeg: for video post-processing
                  rtmpdump: for rtmp streams support
                  atomicparsley: for embedding thumbnails into m4a files
                  aria2: for using aria2 as external downloader
                  python-mutagen: For embedding thumbnail in certain formats
                  python-pycryptodomex: For decrypting AES-128 HLS streams and various other data
                  python-websockets: For downloading over websocket
Conflicts With  : None
Replaces        : None
Download Size   : 3.45 MiB
Installed Size  : 21.89 MiB
Packager        : Antonio Rojas <arojas@archlinux.org>
Build Date      : Fri 17 Feb 2023 15:10:09 CET
Validated By    : MD5 Sum  SHA-256 Sum  Signature

Why not, really?

I think that’s just common knowledge that you shouldn’t use sudo pip unless you’re sure that’s what you want. I even mentioned using pipx, which is a fantastic way of managing dependencies as pip is very bad at that.

On Arch, that is never what you want.

Because you have a package manager, pacman, to install packages and worry about dependencies. Everything you install using other means is invisible to pacman. So when you use pacman you’re going to get conflicts. The forum is full of posts by people who can’t update because they’ve installed Python packages with pip and now pacman is reporting file conflicts.

The same is true for npm, cargo, gem and other third-party package managers.

2 Likes

I’ve never faced anything like that. But then I use pipx to install user-level python packages. It sandboxes each package with its own dependencies. But if this is something others face, I guess they should stick to pacman whenever possible.

I’m talking about pip, I’ve never heard of pipx and I’m not really interested in it, every Python package I need is in the repos. You’ve brought up pipx in the same post you advise people to use pip.

It’s a terrible idea to use pip to globally install Python packages on Arch, for reasons I’ve already mentioned. Your post contains this suggestion:

…and it’s a dangerous suggestion, since it’s basically telling people to break their systems. That’s the only reason why I replied to it: to warn anyone who doesn’t know better. The reason wasn’t because I wanted to discuss with you the merits of pipx. I have no interest in that.

This thread ought to be closed now, since the update to yt-dlp makes the fix in the OP obsolete now.

2 Likes

Sure man. I kinda agree with your point. But you’re being unnecessarily aggressive about it. Which, I must say, is off brand for this forum. I never asked anyone to use sudo pip, but it’s still great that you pointed out that it’s a bad idea. I agree with you. After you explained why you think people should stick to pacman, I agreed with you there as well. I simply mentioned pipx because that’s what I personally use. You don’t need to be interested in it.

2 Likes

Oh great, again this… I’ll be back in 10 hours, I guess… :roll_eyes:

2 Likes