youtube-dl: [YouTube] Unable to extract uploader id

This issue is solved: read the Description below If you still want to comment after reading that, think again: first read this post below to avoid your comment being deleted or marked as spam.

Checklist

  • I’m reporting a broken site support
  • I’ve verified that I’m running youtube-dl version 2021.12.17
  • I’ve checked that all provided URLs are alive and playable in a browser
  • I’ve checked that all URLs and arguments with special characters are properly quoted or escaped
  • I’ve searched the bugtracker for similar issues including closed ones

Verbose log

[YouTube] Unable to extract uploader id
yt-dlp.exe" -x -4 --download-archive "C:\Youtube-dlp\download_history.txt" --external-downloader aria2c --restrict-filenames --match-filter "description*='ESTRENO'" --audio-format mp3 -o "E:\FOLDER\RENAME\%%(title)s.%%(ext)s" "https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67" -v
[debug] Command-line config: ['-x', '-4', '--download-archive', 'C:\\Youtube-dlp\\download_history.txt', '--external-downloader', 'aria2c', '--restrict-filenames', '--match-filter', "description*='ESTRENO'", '--audio-format', 'mp3', '-o', 'E:\\A.PROCESAR\\RENAME\\%%(title)s.%%(ext)s', 'https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67', '-v']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.01.06 [6becd25] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.19044-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-109541-g94aa70d757-20230109 (setts), ffprobe N-109541-g94aa70d757-20230109, phantomjs 2.1.1
[debug] Optional libraries: Cryptodome-3.16.0, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1760 extractors
[debug] Loading archive file 'C:\\Youtube-dlp\\ download_history.txt'
[youtube:tab] Extracting URL: https://www.youtube.com/watch?v=lcusH7ksCNw&list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3&index=67
[youtube:tab] Downloading playlist PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3 - add --no-playlist to download just the video lcusH7ksCNw
[youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Downloading webpage
[youtube:tab] Extracting URL: https://www.youtube.com/playlist?list=PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3
[youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Downloading webpage
[youtube:tab] PLuXU-g7mjkKPvWSFq7xI_N4Xj7A3iSOU3: Redownloading playlist API JSON with unavailable videos
[download] Downloading playlist: LA VENGANZA SERÁ TERRIBLE (Programas)
[youtube:tab] Playlist LA VENGANZA SERÁ TERRIBLE (Programas): Downloading 67 items of 67
[download] Downloading item 1 of 67
[youtube] Extracting URL: https://www.youtube.com/watch?v=3h5-QPbKoVg
[youtube] 3h5-QPbKoVg: Downloading webpage
[youtube] 3h5-QPbKoVg: Downloading android player API JSON
[debug] Loading youtube-nsig.1cbba2b4 from cache
WARNING: [youtube] 3h5-QPbKoVg: Native nsig extraction failed: Trying with PhantomJS
         n = GDZ_5inyZ3r6QSP ; player = https://www.youtube.com/s/player/1cbba2b4/player_ias.vflset/en_US/base.js
[debug] [youtube] Signature function returned an exception; 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
[youtube] 3h5-QPbKoVg: Executing signature code
[debug] [youtube] PhantomJS command line: phantomjs "--ssl-protocol=any" "C:\Users\USER\AppData\Local\Temp\tmp88untizd"
[debug] [youtube] Decrypted nsig GDZ_5inyZ3r6QSP => ECvndyupC0ex4A
ERROR: [youtube] 3h5-QPbKoVg: Unable to extract uploader id; 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
  File "yt_dlp\extractor\common.py", line 680, in extract
  File "yt_dlp\extractor\youtube.py", line 4049, in _real_extract
  File "yt_dlp\extractor\common.py", line 1228, in _search_regex

Description

[Revised by @dirkf] OP actually reported the bug for yt-dlp.

The problem, which was revealed by a change in the metadata served by YouTube, applied to both youtube-dl and yt-dlp and has been fixed in both programs.

There is a release of yt-dlp that includes the fix. See #31535 for discussion of whether this would be a good choice for you.

See below for ways to update to a fixed version of youtube-dl. Using -U doesn’t (yet) work. A new release may be created, including the final fix, some time later than now. However, there is now a nightly build from the latest code here.

There’s no point posting your log that shows the error now: feel free to thumb-up this post. Also, be aware that the initial patch still flagged the original issue as a WARNING; the fully fixed yt-dl doesn’t. Consider raising a separate issue if your fixed yt-dl shows a different error.

About this issue

  • Original URL
  • State: open
  • Created a year ago
  • Reactions: 1522
  • Comments: 618 (124 by maintainers)

Commits related to this issue

Most upvoted comments

I’m having the same issue here. Using youtube-dl version 2021.12.17

It seems that youtube might have changed something internally.

youtube-dl --verbose https://www.youtube.com/watch\?v\=y6_TOFy3k6k
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=y6_TOFy3k6k']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.9 (CPython) - Linux-6.1.12-zen1-1-zen-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] y6_TOFy3k6k: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

For those using the python library, you can install the master branch using: pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl

I think it is simpler.

Indeed. What is the effect of #egg=youtube_dl?

You may need to add --force-reinstall since pip can’t tell that this is a new version. For instance, @paulrougieux recommends this:

pip install --upgrade --force-reinstall "git+https://github.com/ytdl-org/youtube-dl.git"

To avoid requiring git, use the zip download offered from the “<> Code>Download ZIP” pull-down on the main page, but changing the extension to .tar.gz; or use the .tar.gz source download from the nightly release page.

Some package managers eliminate pip from the Python installation itself. Eg, with apt, you also have to install python-pip (2.7) or python3-pip.

In any pip commands it’s recommended to use python -m pip instead of just pip, where python is the name of the Python that you want or expect to run yt-dl, say python3.9. Be sure to use the same Python that is running when yt-dl runs.

See also https://adamj.eu/tech/2019/03/11/pip-install-from-a-git-repository/.

tldr; (and who can blame you?)

Updating with -U won’t work until there is a new release. However, there is now a nightly build of youtube-dl in our repo here: https://github.com/ytdl-org/ytdl-nightly/releases. You can install this in the same ways as described in the manual, but change the URL for the download to match the appropriate one on the nightly release page. This is the way to go if you want a single file executable build, or if other methods don’t succeed. See my post below for a script, or use a package like python-is-python3, or make a symbolic link, if your environment is POSIX-like and you don’t have a Python called python.

If you installed with a package manager (apt, yum, brew, winget, etc), you may find that the maintainers of your package repository have updated the package from a fixed development version (but, eg, Ubuntu so far only has a PPA update; see below for brew). As suggested by @HinTak, you could also ask the packagers of yt-dl in your package or distro repository to update the package from the git master of this repo, though some prefer only release builds.

If you have a Python installation, use pip to install from the git master of this repo: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435477247.

If your yt-dl was installed with a package manager that needed admin, the command to update the module will need the same.

If you installed with brew, brew can now update you to a patched version that doesn’t crash, but is not the latest git master. You can also try the --HEAD option to update to the latest master code, similar to the pip-based suggestions.

Or you can try using yt-dlp instead if your environment supports it: https://github.com/yt-dlp/yt-dlp.

Obviously, if you’ve tried to update in one of these ways and the original issue persists, the update didn’t work: you are still running the release version or a development version that doesn’t include the fix. Please check exactly how your yt-dl was installed and update accordingly. It may be easiest just to uninstall it and install the appropriate single file nightly build instead.

Line 2125 in youtube.py has to be changed into:

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

Then no error: 😀️

youtube-dl --ignore-config -v -F 3h5-QPbKoVg
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ignore-config', '-v', '-F', '3h5-QPbKoVg']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2023.02.16
[debug] Python version 3.8.10 (CPython) - Linux-5.4.0-139-generic-x86_64-with-glibc2.29
[debug] exe versions: ffmpeg N-109587-gfc263f073e-Nico-20230113, ffprobe N-109587-gfc263f073e-Nico-20230113, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 3h5-QPbKoVg: Downloading webpage
[debug] [youtube] Decrypted nsig EYI-o3YE_G0-1ue => nP7IbZDbhgRJ1Q
[debug] [youtube] Decrypted nsig tdM1CX28FOA3Sbj => rEQZ02EpO5AMwg
[info] Available formats for 3h5-QPbKoVg:
format code  extension  resolution note
249          webm       audio only tiny   45k , webm_dash container, opus @ 45k (48000Hz), 28.44MiB
250          webm       audio only tiny   59k , webm_dash container, opus @ 59k (48000Hz), 37.15MiB
251          webm       audio only tiny  121k , webm_dash container, opus @121k (48000Hz), 76.11MiB
140          m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 80.87MiB
160          mp4        256x144    144p   13k , mp4_dash container, avc1.4d400c@  13k, 30fps, video only, 8.37MiB
278          webm       256x144    144p   19k , webm_dash container, vp9@  19k, 30fps, video only, 12.24MiB
133          mp4        426x240    240p   21k , mp4_dash container, avc1.4d4015@  21k, 30fps, video only, 13.53MiB
242          webm       426x240    240p   25k , webm_dash container, vp9@  25k, 30fps, video only, 16.15MiB
134          mp4        640x360    360p   35k , mp4_dash container, avc1.4d401e@  35k, 30fps, video only, 21.92MiB
243          webm       640x360    360p   98k , webm_dash container, vp9@  98k, 30fps, video only, 61.30MiB
135          mp4        854x480    480p   49k , mp4_dash container, avc1.4d401f@  49k, 30fps, video only, 31.19MiB
244          webm       854x480    480p   96k , webm_dash container, vp9@  96k, 30fps, video only, 60.58MiB
136          mp4        1280x720   720p  124k , mp4_dash container, avc1.4d401f@ 124k, 30fps, video only, 77.71MiB
298          mp4        1280x720   720p60  175k , mp4_dash container, avc1.4d4020@ 175k, 60fps, video only, 109.36MiB
247          webm       1280x720   720p  214k , webm_dash container, vp9@ 214k, 30fps, video only, 133.80MiB
302          webm       1280x720   720p60  300k , webm_dash container, vp9@ 300k, 60fps, video only, 187.91MiB
299          mp4        1920x1080  1080p60  269k , mp4_dash container, avc1.64002a@ 269k, 60fps, video only, 168.53MiB
303          webm       1920x1080  1080p60  473k , webm_dash container, vp9@ 473k, 60fps, video only, 295.79MiB
18           mp4        640x360    360p  163k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz)
22           mp4        1280x720   720p  253k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)


Note: OP’s verbose log is from yt-dlp, not youtube-dl…

In any case the extraction of an optional field shouldn’t crash the extraction:

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

[Update] To quote @nicolaasjan:

That’s not the real fix. It was fixed with the merging of pull request #31675 two weeks ago.

Exactly. Don’t apply this change. Use the suggested methods as linked from the Description, which you should read again if you were thinking of applying this change.

Since we have a solution, please release a new production version with fix so we just download the latest production version and can use it well.

Please upvote @dirkf 's solution in one of the hundreds of comments above: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435477247 Unfortunately, that comment is hidden in the default view when reading this issue. It will hopefully pop-up if the suggestion works and people up-vote it.

I’m sorry to read messages from all the persons who keep repeating the same questions. The version number was not updated since “2021.12.17”, but a force reinstall to the latest code in this git repository works.

Its probably a change on youtube’s side and the indicated regex in the CLI, is obsolete now. Not a coder here so I cannot help.

In contrast to some (only some) other comments, I want to thank all contributors for this software which has been super helpful for many years, which I have used for free, whilst still asking questions and time of others, and which has also laid the foundations for various branches which may offer newer options, and is all maintained by volunteers… It’s all free time, and I thank you all.

@dirkf It seems to be some sort of regional(?) A/B-testing. I wasn’t able to reproduce the issue at first either, but I was able to confirm the change in site behavior through affected users’ page dumps. Youtube has begun serving web JSON where the ownerProfileUrl value is the @handle URL format instead of /channel/ or /user/, and this breaks the fatal _search_regex() used to extract uploader_id

Minor thing for anyone else trying to upgrade their brew package, you cant provide [the --HEAD] arg to upgrade, but you can do this: brew uninstall youtube-dl then brew install --HEAD youtube-dl

That solved my issue

Good to know, though I was hoping that people using brew would know how to use it, this not being a Homebrew support forum.

I just made sure to test completely removing youtube-dl, before installing through pip and it didn’t work, before running that command to re-install from master through pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl --force-reinstall, and it worked!

This worked for me too! I used a virtualenv to help make sure the from-source install wouldn’t get mixed up.

Broken version
[kousu@bomp ~]$ python -m venv .local/share/ytdl-env
[kousu@bomp ~]$ . .local/share/ytdl-env/bin/activate
(ytdl-env) [kousu@bomp ~]$ pip install -U youtube-dl
Collecting youtube-dl
  Downloading youtube_dl-2021.12.17-py2.py3-none-any.whl (1.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 653.4 kB/s eta 0:00:00
Installing collected packages: youtube-dl
Successfully installed youtube-dl-2021.12.17

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
(ytdl-env) [kousu@bomp ~]$ cd /run/media/kousu/kousu/dancepop
(ytdl-env) [kousu@bomp dancepop]$ pip install -U youtube-dlyoutube-dl --extract-audio https://www.youtube.com/watch?v=g_uoH6hJilc^C
(ytdl-env) [kousu@bomp dancepop]$ youtube-dl --extract-audio https://www.youtube.com/watch?v=g_uoH6hJilc
[youtube] g_uoH6hJilc: Downloading webpage
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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
(ytdl-env) [kousu@bomp dancepop]$ youtube-dl --verbose --extract-audio https://www.youtube.com/watch?v=g_uoH6hJilc
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--extract-audio', 'https://www.youtube.com/watch?v=g_uoH6hJilc']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.9 (CPython) - Linux-6.2.1-arch1-1-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] g_uoH6hJilc: Downloading webpage
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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/kousu/.local/share/ytdl-env/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/kousu/.local/share/ytdl-env/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/home/kousu/.local/share/ytdl-env/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/kousu/.local/share/ytdl-env/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "/home/kousu/.local/share/ytdl-env/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Working Version
(ytdl-env) [kousu@bomp dancepop]$ pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl --force-reinstall
Collecting youtube_dl
  Cloning https://github.com/ytdl-org/youtube-dl.git (to revision master) to /tmp/pip-install-jkjcue_2/youtube-dl_48fb42d56d9b4a0aba30cf6f4592c2d0
  Running command git clone --filter=blob:none --quiet https://github.com/ytdl-org/youtube-dl.git /tmp/pip-install-jkjcue_2/youtube-dl_48fb42d56d9b4a0aba30cf6f4592c2d0
  Resolved https://github.com/ytdl-org/youtube-dl.git to commit 27d41d73655b8fbf2dedf88cac96220520d526b5
  Preparing metadata (setup.py) ... done
Installing collected packages: youtube_dl
  Attempting uninstall: youtube_dl
    Found existing installation: youtube-dl 2021.12.17
    Uninstalling youtube-dl-2021.12.17:
      Successfully uninstalled youtube-dl-2021.12.17
  DEPRECATION: youtube_dl is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed. pip 23.1 will enforce this behaviour change. A possible replacement is to enable the '--use-pep517' option. Discussion can be found at https://github.com/pypa/pip/issues/8559
  Running setup.py install for youtube_dl ... done
Successfully installed youtube_dl-2021.12.17

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: pip install --upgrade pip
(ytdl-env) [kousu@bomp dancepop]$ youtube-dl --verbose --extract-audio https://www.youtube.com/watch?v=g_uoH6hJilc
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--extract-audio', 'https://www.youtube.com/watch?v=g_uoH6hJilc']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.9 (CPython) - Linux-6.2.1-arch1-1-x86_64-with-glibc2.37
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] g_uoH6hJilc: Downloading webpage
[youtube] g_uoH6hJilc: Downloading player 21246a91
[debug] [youtube] Decrypted nsig NrTmByFSYsLNiVYEi => bY91iYgAX7MG1A
[debug] [youtube] Decrypted nsig y8F-7d7d2HWKGLWsj => kjyuzEdT5kqXnw
[debug] Invoking downloader on 'https://rr3---sn-gvbxgn-tvf6.googlevideo.com/videoplayback?expire=1678328070&ei=puwIZJunIoLNhgaaoLXoDg&ip=2605%3A8d80%3A540%3A92d5%3A2ab2%3Abdff%3Afe34%3A5a26&id=o-AFwma9QRaHoGJL7bEKlpgvq0mLHlgWsLQ27e_vHWQCEi&itag=140&source=youtube&requiressl=yes&mh=0_&mm=31%2C29&mn=sn-gvbxgn-tvf6%2Csn-gvbxgn-tt1ed&ms=au%2Crdu&mv=m&mvi=3&pl=50&gcr=ca&initcwndbps=570000&vprv=1&mime=audio%2Fmp4&ns=cmfpVf1nB-U5YMlddJ7HR64L&gir=yes&clen=3793188&dur=234.335&lmt=1574985600920872&mt=1678306169&fvip=2&keepalive=yes&fexp=24007246&beids=24472442&c=WEB&txp=5531432&n=bY91iYgAX7MG1A&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgBBqk1nwxnmnYzt0DuvtKmXnl7v_ncPC98WKmsa-jLNsCIQC1SyHn6h7WYCOKTZ2EHwNwiF6D1pMNddtmxQnb9qP_9A%3D%3D&sig=AOq0QJ8wRQIhAK_P02512jzyxYUFTgVOa4T645UxocXHZSwg4cpK6pk3AiAS9Cy75g7eAAt3VJMwTQ-sHcbNPU7QI4gqvOlAsuGh8g%3D%3D'
[dashsegments] Total fragments: 1
[download] Destination: Years & Years - King (Official Video)-g_uoH6hJilc.m4a
[download] 100% of 3.62MiB in 00:11
[ffmpeg] Correcting container in "Years & Years - King (Official Video)-g_uoH6hJilc.m4a"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Years & Years - King (Official Video)-g_uoH6hJilc.m4a' -c copy -f mp4 'file:Years & Years - King (Official Video)-g_uoH6hJilc.temp.m4a'
[debug] ffmpeg command line: ffprobe -show_streams 'file:Years & Years - King (Official Video)-g_uoH6hJilc.m4a'
[ffmpeg] Post-process file Years & Years - King (Official Video)-g_uoH6hJilc.m4a exists, skipping

It’s kind of wild that this didn’t beak for a year and a half. Good job, youtube-dl team 😃

For problems with package managers like homebrew where an update command is suggested here, report any problems using the package manager’s support system, but please post a link or quote of any non-trivial solution here.

To expand, it should be obvious but, with 425 comments here already, don’t even think of posting anything like these

I have the problem in the issue title too

one suggested update solution worked for me

  • instead like the post where you found the solution

I installed yt-dlp instead and it works/doesn’t work

I fixed the problem with this nifty code patch; also I’ve made a video of it

  • good for you, but we already have a fix that correctly returns metadata affected by the new YT owner URL format; use that instead

-U doesn’t work

  • use an unofficial nightly build suitable for your platform; review #31585; create a PR if it bugs you too much (a post announcing that is fine)

none of the suggested update methods work for me

  • uninstall your yt-dl (all of them!); use an unofficial nightly build suitable for your platform; if that still doesn’t work, possibly consider posting your issue with a verbose log of the failed installation steps and enough of a failing yt-dl run to identify its platform and installation directory

I tried one of the suggested update methods but I still have the problem in the issue title

  • obviously the update didn’t work (but check that it’s actually ERROR, not WARNING); make sure you are updating the right yt-dl; see the previous point;

here’s a screenshot of my problem

  • learn to select console text on your platform (see FAQ: BUGS).

Posts, or new issues, like any of these examples may be marked as spam or just deleted.

Here, happily asked, without the sarcastic quotes.

Would you be so kind as to answer the last question above as well?

By the way, when executing youtube-dl -U, is this also through the brewery? Or should this work straight out of here? I also tried the curl method, but results did not change…

I don’t mind not using brew, but curl didn’t seem to do the job either.

Update:

Tried from a nightly, which seem to have worked fine. I guess I’d update your curl in the following way:

sudo curl -L https://github.com/ytdl-patched/youtube-dl/releases/latest/download/youtube-dl -o /usr/local/bin/youtube-dl
sudo chmod a+rx /usr/local/bin/youtube-dl

For others looking for the solution, the above snippet seems to install a working version.

The final fix for the problem in the issue has been merged, but I’ll leave this open for now in case it helps to attract uncertain reporters.

@ToddAndMargo, @PeterGyger, @jcubic, @stefanb, @RnRJohnny: read the thread. @RandomLive: update yt-dlp whenever you need, but discuss it there.

Please read the update advice again. pip needs a URL that points to this repo as shown in various examples posted here. Otherwise special instructions wouldn’t be needed.

Or uninstall your package version and install an unofficial nightly build.

It worked for me:

!pip install git+https://github.com/ytdl-org/youtube-dl.git@master or !pip install --upgrade --force-reinstall git+https://github.com/ytdl-org/youtube-dl.git@master

Please put something like this in the Description @dirkf , it’s more efficient for everyone to understand.

Why isn’t this patch in the releases? The last release is dec/2021

tldr for homebrew users: brew reinstall youtube-dl

... installing from git with force-reinstall *does* seem to solve the issue

No, the issue has recurred, current fix is no longer effective.

I can confirm that the ‘previous’ fix (Feb. 26) still works here. Try something else?


I tried today --force-reinstall on Linux and Windows - all works for --dump-json…

A/B test again?

I tried again:

pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl --force-reinstall

and it seems to be working, so perhaps my force re-install before went to the wrong path Any others having experience similar to mine, installing from git with force-reinstall does seem to solve the issue. Thanks,

Since we have a solution, please release a new production version with fix so we just download the latest production version and can use it well.

Could be a hotfix of the latest (2021.12.17) release, so nothing would get released which has been implemented since but is not ready for release yet. Making the -U flag work would help a lot of people and put an end of the duplicate issue reports.

So now the problem is clear:

  • @CodeKraft’s MX Linux (Debian derivative) system isn’t bang up-to-date, but that’s fine (or this would be the yt-dlp project)
  • the apt package manager is working with Python 2.7 and installed yt-dl in the Py 2.7 module library
  • Debian packaging removes the installation step for Python where it also installs pip, so there is no pip command unless you install python-pip (or python3-pip)
  • the system also has Python 3.5 (actually, this is looking very familiar to me)
  • contrary to the recommendation in the post about updating with pip, the attempted updates did not use the formula python -m pip ... where, in this case, python should have been python (the Python 2 relative to which apt installed yt-dl) and not python3 – I’ve clarified the recommendation
  • the updated yt-dl was installed relative to Python 3.5
  • somewhere (possibly /usr/bin/youtube-dl, but we haven’t been shown the result of which youtube-dl) there is a legacy executable script youtube-dl that invokes the Py 2.7 module
  • this was running even though yt-dl was thought to have been updated.

The legacy script needs to be replaced (almost certainly using admin, and it must be marked as executable) so that running youtube-dl invokes the right version. This is what apt put on my system:

#!/usr/bin/python3
__requires__ = 'youtube-dl==2021.12.17'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('youtube-dl==2021.12.17', 'console_scripts', 'youtube-dl')()
    )

Or, as suggested many times:

  • uninstall all the yt-dl instances (apt, pip3)
  • download an <strike>un</strike>official (now) nightly build for Linux.

@St897, review the above and/or read the updated instructions. You are updating the wrong yt-dl or from the wrong source.

Similarly, @infinitejesp, uninstall or remove any existing yt-dl and install the appropriate nightly build for your platform.

@viebrix, please open a new issue for your nightly build problem with a full log, though sudo python3.10 -m pip install --force-reinstall ... should have updated your broken version.

Got the same issue here

Good heavens, this is the most comprehensive and detailed summary of “here’s how to work around this and here’s which forks are currently functioning” I’ve ever seen. Kudos to everyone maintaining this issue and all of the workarounds! You all turned what would’ve been a few hours debugging into literal seconds.

I’ve used pip install 'git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl' since the hash is a comment in bash, not sure if it’s needed but it will be ignored when not using quotes. And this works fine.

Almost OT: Something to be learned from this: Versioning. It must be always clear, which precise version of a software one is running. [debug] youtube-dl version 2021.12.17 is less than helpful when a dozen different packages have this same label.

Why do I mention it? I’m confident that there’d be 100+ posts fewer, if people could see what they’re actually running. People with the ERROR run something different from what they think they’re running. And one can’t blame them. I had the same problem, see above, with snap on *buntu as well as pip.

If you see ERROR: Unable to extract uploader id;, you are still running the release version or a development version that doesn’t include the fix. Please check exactly how your yt-dl was installed and update accordingly. It may be easiest just to uninstall it and install the appropriate single file nightly build instead. Updating with -U won’t work until there is a new release.

For those using the python Iibrary, You can install the master branch using: pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl

I think it is simpler.

I have to ask. If the issue has been fixed in master, why isn’t there a new release? Seems like that would prevent spam more effectively than telling inexperienced users to building from source.

why this gets re-opened repeatedly,

… That’s the easiest of answers 😜 …

People from all “affected” areas of the globe jump in, as a knee-jerk reaction, to submit new (duplicate 😠 ) issues about that YT breakage, without:

  1. Following the “how-to” on opening a new issue (you have to be already logged-in before hitting the green New issue button)
  2. Choosing the correct new issue template (Broken site support, in this case)
  3. Once in a template, they bypass the pre-typed, required, input fields, or, even if/when they read:
  • I’ve searched the bugtracker for similar issues including closed ones

they mechanically tick that, without realising what it speaks of… 😠

  1. Windows users in particular (I’m one of them 😜 ) are, at most times, completely clueless/helpless as to what an open source project is, what is a code patch, how to apply it, how to follow given advice on running/installing the app “from master branch”, how to compile the patched source into a binary, etc. So, in complete desperation, they cram the issue tracker(s) for “guidance”/“spoon-feeding”, without the slightest motivation to search themselves on the “topics” I cited previously… 👎

but probably this will only stop, when new precompiled builds are released.

This has already happened for the “downstream” project, yt-dlp; for youtube-dl, you’re probably on your own (3rd party provided “daily” binaries will be made available in the wee hours of tomorrow 😉 ) - BTW, as you might have read already, master branch, currently, only averts the app from “barfing” completely at physical locations where uploader_id fails to be extracted by the pre-existing RegExp code…

Working in git master:

$ python -m youtube_dl -o '%(uploader_id)s' --get-filename 'https://www.youtube.com/watch?v=y6_TOFy3k6k'
UCJ6o36XL0CpYb6U5dNBiXHQ
$

Ok so it appears that something is very wrong in your copy of youtube.py

Heres my WORKING copy of youtube.py and how to patch:

Replace the file located in C:\users\%username%\appdata\roaming\python\<-yourpythoninstall->\site-packages\youtube_dl\extractor\youtube.py in my case that is : C:\users\ivoie\appdata\roaming\python\python311\site-packages\youtube_dl\extractor\youtube.py (Note , if you are running Linux or MacOS it will be installed in a diffrent path, you need to locate your python install to apply this to the faulty file)

with the following file in the zip below: youtube.zip

(Note : I had to zip the file as github doesnt support me uploading py files directly , the sha-256 is fff35244cc8e978ba4aa1698336c6194fd323656ff3ca3d6d373014708e1a79b )

this .py file IS CONFIRMED WORKING (1 MAY 2023) and has my patch implimented

Best of luck to you @CodeKraft

Thank you @Vangelis66, for taking this up and helping the community… I can imagine how difficult it is to maintain such a widely used product, and how nerve wracking it may be to deal with this many users, especially when some may feel entitled and not understand the magnitude of dedication maintaining a project is, especially widely used open-source, where you can’t hire more more help or even get paid yourself…

Lastly, thank you @dirkf for keeping up the fort for all of us to benefit! Sorry if your response went over my head initially, you are right that the solution was given by you previously, and I missed it… I really do appreciate your hard work!

I’m too basic of a user to implement any of the workarounds illustrated above really. Will eagerly await a new release.

Okay. Fixed. Recap:

I had previously installed youtube-dl with pip. I then downloaded the daily executable, put it inside a folder which I coppied the path of and added it to the PATH After running pip uninstall youtube-dl -y and a quick terminal restart, everything is back in order.

I can’t believe such an important tool is built on something so fragile as a regex of a server response…

… I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) … so I avoided it.

No, pip is a core feature of your Python installation, so use it.

The ability to install directly from a git repo, in particular from GitHub, is fairly recent. v20.3.4 is the last version that works in 2.7, 3.5 and later. For other versions check the pip changelog: eg, 3.2 needs 7.1.2, 3.4 needs 19.1.1 (thanks @Vangelis66).

“are going to”?!

The current position is that the crash has been fixed for both yt-dl and yt-dlp and #31535 describes what someone could do to obtain fixed versions.

Now, the issue has shown up in the UK this evening so I can more easily review the question of what should be extracted when the ownerProfileUrl is like /@{channel}.

Result.

… And with this patch:

yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" =>

Shaun_vids

yt-dl --get-filename "3h5-QPbKoVg" -o "%(uploader_id)s" => 

Audio-Visual-Clips

for yt-dlp a fix is already documented and I could fix it by building the latest version; the exact fix of the regex, performed by @bashonly is described here

This issue is a year old. What possible reason can the devs have for not creating a release to fix an issue that makes the very idea of this app unusable? You say there’s a fix in the source. So push it out already. Stop telling users to do custom nonsense.

Solution is shown here https://www.youtube.com/watch?v=Ghe058HpmMk , just add the comment on the line that causes the problem in youtube.py

Do pip install youtube-dl==2020.12.2

Minor thing for anyone else trying to upgrade their brew package, you cant provide that arg to upgrade, but you can do this: brew uninstall youtube-dl then brew install --HEAD youtube-dl

That solved my issue

@dirkf:

the issue #32346 was fixed before it was reported, but the unofficial nightly builds may not have synced the required update.

pip install --force-reinstall git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl did the job. --force-reinstall was necessary. Thanks a bunch!

Why are you deleting my comments about help?

I have previously supplied everything needed as per request yet you @dirkf appear to be the person removing comments and calling it spam.

I have tried every suggestion posted and NOTHING WORKS can you comprehend that or is your brain too tiny to accept that fact?

I am asking for help and you keep on throwing things back about posting correctly, I have and I am getting sick of this.

In the last post wit the video link, I tried that DOESN’T WORK.

$ cd "/usr/local/bin/youtube-dl/youtube_dl/extractor/" bash: cd: /usr/local/bin/youtube-dl/youtube_dl/extractor/: Not a directory

OK? What more do you want?

Why is the main youtube-dl stuck on 2021.12.17? Could not find any pointers in the issues as to why that is.

See Issue #31585.

A new release is overdue but depends on solving certain cross-platform issues in the CI build process. Meanwhile for the main platforms, see #31530 for update hints.

I’m still getting this error youtube-dl --verbose https://www.youtube.com/watch?v=07H0CWyZ3vY [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: [‘–verbose’, ‘https://www.youtube.com/watch?v=07H0CWyZ3vY’] [debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8 [debug] youtube-dl version 2021.12.17 [debug] Python version 3.9.2 (CPython) - Linux-5.10.0-20-amd64-x86_64-with-glibc2.31 [debug] exe versions: ffmpeg 4.3.5-0, ffprobe 4.3.5-0, rtmpdump 2.4 [debug] Proxy map: {} [youtube] 07H0CWyZ3vY: Downloading webpage 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. Be sure to call youtube-dl with the --verbose flag and include its complete output. Traceback (most recent call last): File “/home/john/.local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py”, line 815, in wrapper return func(self, *args, **kwargs) File “/home/john/.local/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py”, line 836, in __extract_info ie_result = ie.extract(url) File “/home/john/.local/lib/python3.9/site-packages/youtube_dl/extractor/common.py”, line 534, in extract ie_result = self._real_extract(url) File “/home/john/.local/lib/python3.9/site-packages/youtube_dl/extractor/youtube.py”, line 1794, in _real_extract ‘uploader_id’: self._search_regex(r’/(?:channel|user)/([^/?&#]+)', owner_profile_url, ‘uploader id’) if owner_profile_url else None, File “/home/john/.local/lib/python3.9/site-packages/youtube_dl/extractor/common.py”, line 1012, in _search_regex raise RegexNotFoundError(‘Unable to extract %s’ % _name) youtube_dl.utils.RegexNotFoundError: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@Shituation, please unsubscribe as I’d like to keep this open while the released version isn’t yet fixed (I think that was mentioned way back but …).

… this has not resulted in fewer dupes posted disappointed …

It hasn’t resulted in 0 dupes. The reaction count for OP shows that plenty of people are finding the issue.

@symbolicEmm “none of the suggested update methods work for me”.

… reinstalled from homebrew on an up to date Ventura macOS. …

Obviously not, or the broken yt-dl is somehow in a different universe from the one updated by brew. Show how you tried to update, eg brew reinstall youtube-dl, or ask brew support.

Also check https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1500999577.

Same issue, youtube-dl version 2021.12.17.

youtube-dl -F --verbose https://www.youtube.com/watch?v=13OtZFWdhwQ
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-F', '--verbose', 'https://www.youtube.com/watch?v=13OtZFWdhwQ']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.22621
[debug] exe versions: ffmpeg 5.1-full_build-www.gyan.dev, ffprobe 5.1-full_build-www.gyan.dev
[debug] Proxy map: {}
[youtube] 13OtZFWdhwQ: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 815, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 836, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\youtube.py", line 1794, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 1012, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

This issue is solved: read the Description below

Obviously has not been solved anywhere. I’ve removed, installed and updated youtube-dl and yt-dlp multiple times on my slackwareOS system to no avail. Quite frustrated with seeming complacency considering the number of eyes on this Shituation report.

The Description link you quote in your message has all the information, please read it closely.

For those using the python Iibrary, You can install the master branch using: pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl I think it is simpler.

Indeed. What is the effect of #egg=youtube_dl?

See also https://adamj.eu/tech/2019/03/11/pip-install-from-a-git-repository/.

So I installed via pip from the actual master branch as recommended, but I am still getting youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id As at the top of this issue it says “the issue is solved” I wonder how exactly 😕 Maybe I should give yt-dlp a try?!

EDIT: yep, yt-dlp get’s the job done!

While waiting for the new release, I think we have resolved the issue in the homebrew side, can someone test it out and confirm the fix? Thanks!!

pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl

this worked for me

dirkf decided to support old unsupported versions of python and probably this is reason why is not possible to use continuous integration to build and release new version.

Supporting Python 2.x has nothing to do with the ability to use CI or not. I’m probably one of the few people who still need support for Python 2.7, so hopefully this continues to be supported.

I would humbly advise you to reconsider this decision, it’s just way to lose users and abandon development.

You are correct. yt-dlp has had a pretty sharp increase in GitHub stars since this issue has come about.

It appears there hasn’t been a single release since maintenance was handed over. I’m sure it’s very overwhelming and stressful to maintain a project like this. @dirkf do you need help in the devops area? There’s plenty of people here willing to help. I have a lot of experience with GitHub actions and automation if you need help.

The fact is 3k issues is too overwhelming for the development team on any project.

It’s not important if old issues hang about, as long as problems that people care about, by commenting on them with up-to-date test cases, get fixed. Obviously it would be possible to close all currently open issues every time a release is made (“old version”). Personally I find it quite unhelpful if maintainers (ffmpeg, eg) take that attitude, even if I understand why.

Currently,

  • of the most recent 25 closed issues that are not explicit duplicates, some 13 have been resolved and the rest are mostly probable duplicates of this issue that the reporters did not formulate well enough, or other incomplete or invalid issues
  • of the most recent 25 open issues, some 10 have been resolved with a commit, a patch, a pending PR, or a definitive ‘not possible’, but not yet closed, 4 should be resolved by a back-port from yt-dlp, 5 have a known way forward, 3 need more clarification, and the rest are unsolved.

I think this is not unreasonable.

Flailed around trying to get the homebrew version working, but this, as mentioned above, worked for me:

pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl --force-reinstall

I have used and loved youtube-dl for quite some time. Thanks to all who support it.

Ok, but why doesn’t this repo publish new releases itself? Why do downstreams have to provide them? Why hasn’t the pull request that’s supposed to allow for new releases to happen not been merged yet?

On Wed, Mar 8, 2023 at 8:23 AM dirkf @.***> wrote:

The nightly builds offered by helpful downstream(s) include single file executables for both Windows and POSIX (Linux/macOS).

— Reply to this email directly, view it on GitHub https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1460151045, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABTAHD6RLPDWWKKT4PFKX5TW3CB6JANCNFSM6AAAAAAU6HECQY . You are receiving this because you commented.Message ID: @.***>

Maybe I missed something in “the post linked from the Description” that I could not be bothered to scroll to?

Yes. Because you did not read the post. No YouTube downloads for you …

@cwy3, ideally, get npm to update its yt-dl build from one of the sources suggested.

Otherwise, if /usr/local/lib/node_modules/udacimak/node_modules/youtube-dl/bin/youtube-dl was an executable file of 1.8MB, and you replaced it with a nightly build like https://github.com/ytdl-patched/youtube-dl/releases/download/2023.02.28.810/youtube-dl:

  1. first, if your Python is called python3, pipe the download through this POSIX shell script { printf '#!%s\n' "$(type python3 | cut -d' ' -f3)"; sed -r -n -e '/^#!/ {n; }; p'; } to update the downloaded file, eg cat downloaded_file | braced_script > updated_file (or create a symlink on your $PATH named python to your Python)
  2. ensure that the new youtube-dl is marked executable: chmod a+x ..., as described for installing a release version in the Manual.

Although new macOS may come without any Python, I assume that you have one since your yt-dl was previously running OK.

I need a Windows build, unfortunately.

if it helps, I installed installed various versions of youtube-dl to find out where it “broke” youtube-dl-2021.1.24.1 works and youtube-dl-2021.2.4 gives the error Unable to extract uploader id. * edit was here

(venv) PS C:\Users\Oliver\Desktop\image_test> pip freeze  
numpy==1.24.2
opencv-python==4.7.0.68
pafy==0.5.5
youtube-dl==2021.2.4

all tests were run in python using some basic code in a venv

import cv2
import pafy
video = pafy.new('https://www.youtube.com/watch?v=CNxO7VN-xos')
best = video.getbest(preftype="mp4")
cap = cv2.VideoCapture(best.url)
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret:
        cv2.imshow('frame', frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            exit()
    else:
        break
cap.release()
cv2.destroyAllWindows()

I’m using python -m pip install youtube-dl==2021.1.24.1 as a work-around for now.

I saw the issue was fixed in the sticky’ed issue but I’m still receiving it after cloning master branch fresh

That’s a WARNING, not an ERROR, so it doesn’t crash the program. The warning will go away once a full fix based on the analysis presented (way) above has been applied. The warning shows you that the value you might have expected to be extracted in the metadata is missing.

Instead of messing up my install with #31535 or likewise: when could we expect an update through youtube-dl -U, please?

After the issue showed up in the UK last night, I looked at problem video 3h5-QPbKoVg:

'uploader': 'Audio Visual Clips',
'uploader_id': 'NA',
'channel': 'Audio Visual Clips',
'channel_id': 'UC9AY3VP-VqMJh_Uj_1BbSPA',
'channel_url': 'https://www.youtube.com/channel/UC9AY3VP-VqMJh_Uj_1BbSPA',

In this page the @... value appears here:

<span itemprop="author" itemscope itemtype="http://schema.org/Person">
  <link itemprop="url" href="http://www.youtube.com/@Audio-Visual-Clips">
  <link itemprop="name" content="Audio Visual Clips">
</span>

And here, but this is just a navigation link:

<script type="application/ld+json" nonce="cgNt_K7hab_AuFX-K8HbPA">
{
  '@context': 'http://schema.org',
  '@type': 'BreadcrumbList',
  'itemListElement': [
    {
      '@type': 'ListItem',
      'position': 1,
      'item': {
        '@id': 'http://www.youtube.com/@Audio-Visual-Clips',
        'name': 'Audio Visual Clips'
      }
    }
  ]
}
</script>

And in the ytInitialPlayerResponse:

"ownerProfileUrl":"http://www.youtube.com/@Audio-Visual-Clips"

And in the ytInitialData, hidden in metadata attached to videoSecondaryInfoRenderer.owner, and also in the secondary video channel list and play-next items that come from the same uploader/channel.

While UC9AY3VP-VqMJh_Uj_1BbSPA appears in

<meta itemprop="channelId" content="UC9AY3VP-VqMJh_Uj_1BbSPA">

And in the ytInitialPlayerResponse

"channelId":"UC9AY3VP-VqMJh_Uj_1BbSPA"
...
"externalChannelId":"UC9AY3VP-VqMJh_Uj_1BbSPA"

To summarise:

value\location HTML videoDetails microformat twoColumnWatchNextResults
Audio Visual Clips author>name author ownerChannelName owner…title
/user/Audio… -none- -none- -none- -none-
/@Audio-Visual-Clips author>url ownerProfileUrl -none- owner…canonicalBaseUrl
UC9AY3VP-VqMJh_Uj_1BbSPA channelId channelId externalChannelId owner…browseId

In the final column I skipped some excessively deeply nested equivalents.

Now look at the yt-dl test video BaW_jenozKc, where these values are expected:

                'uploader': 'Philipp Hagemeister',
                'uploader_id': 'phihag',
                'uploader_url': r're:https?://(?:www\.)?youtube\.com/user/phihag',
                'channel': 'Philipp Hagemeister',
                'channel_id': 'UCLqxVugv74EIW3VWh2NOa3Q',
                'channel_url': r're:https?://(?:www\.)?youtube\.com/channel/UCLqxVugv74EIW3VWh2NOa3Q',

In the page that is now being served:

  • Philipp Hagemeister appears where Audio Visual Clips appeared in 3h5-QPbKoVg
  • there is no phihag (apart from Philipp’s email address)
  • and so there is no /user/phihag either
  • UCLqxVugv74EIW3VWh2NOa3Q appears where UC9AY3VP-VqMJh_Uj_1BbSPA appeared in 3h5-QPbKoVg
  • there is no /channel/... (but the tested value is currently created from the channel_id and not extracted)
value\location HTML videoDetails microformat twoColumnWatchNextResults
Philipp Hagemeister author>name author ownerChannelName owner…title
phihag -none- -none- -none -none
/user/phihag -none- -none- -none- -none
/@PhilippHagemeister author>url ownerProfileUrl -none- owner…canonicalBaseUrl
UCLqxVugv74EIW3VWh2NOa3Q channelId channelId externalChannelId owner…browseId

So this supports the theory that YT is migrating to channel URLs like /@{channel} instead of /channel/{channel_id}, though not (yet) redirecting from the latter. And the existing test-cases can’t be saved, which is a pain considering how many there are.

Proposed final resolution:

  • uploader is the author text value
  • channel is the same
  • uploader_id becomes the @… value
  • channel_id is channelId
  • uploader_url is the author URL with /@…
  • channel_url is /channel/{channel_id} at least while that is valid.

Hello I run on Windows without Python and the solution described above does not apply to this configuration, will there be a new build that is working or should we just move on to another project ?

You could use the daily build from here. Or move to yt-dlp.

It will until you take one of the actions mentioned in #31535. Or if YT rolls back the new page structure.

I’ve read #31535 far too many times thinking I’ve missed these magical actions only to still not see these magical actions to remedy things. There are also no instructions on how to build from the source, just the little dev blurb about adding your own extractor that still ends with no build but just how to pull/push and wait for someone else to build the binary. I’m ignorant when it comes to making python into a single bin and the docs aren’t helping.

I seriously doubt YT will “roll back” anything. I’m sure this like many previous changes are to cause problems like this to better funnel viewers on to official viewing platforms for data collection.

As a related but unrelated issue VLC can no longer play YT either and no update to it’s lua for YT either.

@fazlicodes the solution is to use https://github.com/yt-dlp/yt-dlp instead of youtube-dl.

Still no update after this issue has been reported for nearly 3 months.

Are there any DEVs left working on this project or is it dead?

Force reinstallation to get the fix:

pip install --force-reinstall https://github.com/ytdl-org/youtube-dl/archive/refs/heads/master.tar.gz

As explain in the Original Post, which links to https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435975611, then to https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435477247 (gives a version that requires git, which you might not have). Maybe you didn’t see it because you need to click on 3 links to get there. Maybe pip install --force-reinstall should be mentioned in the description at the very top?

Who is it that keeps on marking comments as off topic? Do they BOTHER to read and understand the content?

This has been going on for months now and to be frank, this delay in a resolution is making a mockery of this project or is the project dead? as in there are no longer any DEV’s maintaining it, given that the last update I have is from 2021, two years ago.

People are wanting answers and no, the alternative is not the answer as I have read many comments where people have not found it to work…

Why is the main youtube-dl stuck on 2021.12.17? Could not find any pointers in the issues as to why that is.

Main issue being, no pip nor brew package seems to exist that provides a current version with a working YouTube download.

… everything is hidden. can you please provide a link?

  1. Follow the links from the "below link in the Description (JavaScript is required to navigate to “hidden items”, as opposed to comments that are “hidden”, a different thing entirely).
  2. Raise issues with GitHub to complain about their issue display a. the missing in-issue search function b. the need to use JavaScript to navigate to “hidden items” c. the confusing terminology where the issue display mentions both “hidden items” skipped by the functionality at (a) and (b), and manually hidden comments that are marked “is hidden”.

I just got “Unable to extract uploader id” today as well, anyone knows when the fix will be rolled into release?

@Ron030363: #30839 “If you were actually running yt-dlp, …”

Apologies, as you can see, the actual bug is fixed but the fix isn’t yet rolled into a release. I had to rewrite your issue to point people at the interim solutions.

I know that, I was pointing out that the issue was solved and: 1- Nobody from the dev team closed it. 2- People are still commenting over the solved issue for no reason.

The readme says to install using pip with sudo -H pip install youtube-dl. Following the upgrade instructions in this thread to update from the master branch with this command pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl did not work. In fact it says the same version is already installed - youtube-dl-2021.12.17.

Using the command sudo -H pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl also tells me the requirement is already satisfied - youtube-dl-2021.12.17.

Uninstalled everything with sudo -H pip uninstall and pip uninstall then reinstalled with

sudo -H pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl

The version is still youtube-dl-2021.12.17 but now it seems to be working.

Strangely the version 2020.11.21.1 seems to work.

Okay Cathy Newman. This response provides all the clarity I need.

Here, happily asked,

… And there has been development from the Homebrew team:

https://github.com/orgs/Homebrew/discussions/4329#discussioncomment-5329468

(PR https://github.com/Homebrew/homebrew-core/pull/125804 has now been merged) …

For MacOS users, please “digest” what has been said there:

  1. Note that this install will no longer be automatically updated by brew upgrade
  2. we don’t provide support for --HEAD installs

As I’m not a MacOS user myself, don’t know whether you first need to update your Homebrew version for brew install --HEAD youtube-dl to become functional… But if/when it is, it will rid you of the ERROR mentioned in this issue’s title 😉 …

if you’re feeling adventurous, you may wish to give it a try.

Experiencing this as well. Is a fix planned to arrive at a brew-able youtube-dl?

The recommended upgrade methods including forks or downstreams are listed in the post referenced from the Description. It’s well known that the released yt-dlp works: there’s no need to say so again. Apart from unofficial nightly builds, a problem with a fork should be raised there. Feel free to fork the project and comment there if you don’t want your off-topic, misleading, obsolete or abusive comments hidden.

Could you please, for the sake of resolving the current issue, create a new release that includes the fixes that have been made. In your own recently updated documentation regarding bug reporting, you still recommend using youtube-dl -U, so a release to make that a real troubleshooting step again would be massively helpful. Please publish the release manually if #31585 isn’t done yet.

Hello, I’m on RHEL9 and did a manual installation of the latest version just now.

What is a ‘manual installation’? Don’t answer. Just go to the very top here, and start reading. Not much of a problem to install a working version in Linux.

The forked yt-dlp is working for me. The youtube-dl version is still not working. Until the previous version is fixed, may want to try the forked version for now. https://github.com/yt-dlp/yt-dlp

@dpastern I understand your feelings. I don’t see why they don’t release a modified binary as soon as possible either. But there was a solution in this very very long thread. https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435975611

I download the exe from the fork (where it says example) and use it. It works.

Seems like it started happening when YouTube started sending out waves of invitations to claim channel IDs, which created new channel URLs like youtube.com/@usernaame

Hi! Next error is happening to me on Ubuntu:

Start reading this thread at the top, and follow the instructions written there. This is a solved problem, alas as of now not being totally easy on the side of the user. Read and follow carefully. If it still doesn’t work, read my postings, I’m also a *buntu user, on how to continue. Once you have done all of that, show us the responses of your system, and I’ll try to help you further.

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

This worked, thank you! In my case it was in line 1794.

Thank you, found it in line 1794

Yes, working, before I just uncomment. @dirkf how to fresh install or upgrade? Just pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl This will auto replace old source on site-packages directory ?

[debug] Python version 3.6.9 (CPython) - Linux-5.4.0-139-generic-x86_64-with-Ubuntu-20.04-focal

I mean, FOSS is a good thing. Though no OS gives you two helping hands. And when you come here, and see some 200 posts, yes, you are expected to start scanning from the top, what solutions could be found. And there are some. And references. Since you are on Linux, this might work:

$ sudo apt install python3-pip$ 
(If it is already installed, just the better)
$ pip install git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl

(Okay, that’s just to TRY, not yet in the correct location. But now $ .local/bin/youtube-dl https://www.youtube.com/… should do the job. At least, here it does. If you wanted, you could next install it system-wide.

Every duplicate issue makes it less likely that a new release version will appear. #31530, #31585.

There you have it. No update will be provided because we made too many bug reports.

Hi.

Has the latest build (exe-binary) with a fix for Windows systems not yet been compiled and released ?

I downloaded the latest youtube-dl.exe (2021.12.17.0) but the problem persists. URL download source: https://yt-dl.org/downloads/2021.12.17/youtube-dl.exe

Exactly as @dmelladoc last wrote: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1433230848

Youtube URL to download: https://www.youtube.com/watch?v=yw_ShLNyHTk
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--output', 'Y:\\%(title)s.%(ext)s', '-f', 'bestaudio/best', '--audio-quality', '0', '--cookies', 'youtube_age_cookies.txt', '--embed-thumbnail', '--extract-audio', '--audio-format', 'mp3', 'https://www.youtube.com/watch?v=yw_ShLNyHTk']
[debug] Encodings: locale cp1250, fs mbcs, out cp852, pref cp1250
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg n4.3.2-161-g4383b9e8a3, ffprobe n4.3.2-161-g4383b9e8a3
[debug] Proxy map: {}
[youtube] yw_ShLNyHTk: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 815, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\YoutubeDL.py", line 836, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 534, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\youtube.py", line 1794, in _real_extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpupik7c6w\build\youtube_dl\extractor\common.py", line 1012, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

@dirkf thanks, I removed the version installed by apt and reinstalled with python3.10 -m pip install youtube-dl Running pip install with sudo gives a scary looking warning: WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv I’d rather not tread into that territory.

I still see no Git HEAD in the log, and I still get the unable to extract uploader id warning, but the video gets downloaded.

 kernel  ~  1  youtube-dl --verbose https://www.youtube.com/watch?v=CPY7VBYbDvw
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.youtube.com/watch?v=CPY7VBYbDvw']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.6 (CPython) - Linux-5.15.0-60-generic-x86_64-with-glibc2.35
[debug] exe versions: ffmpeg 4.4.2, ffprobe 4.4.2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] CPY7VBYbDvw: Downloading webpage
[debug] [youtube] Decrypted nsig MaaeVatB_iGvcewd => hlOkb5wMix3uQA
[debug] [youtube] Decrypted nsig zKH-pM_5smCGp0u_ => DS7ctJXPmGldaA
WARNING: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
[debug] Default format spec: bestvideo+bestaudio/best
WARNING: Requested formats are incompatible for merge and will be merged into mkv.
[debug] Invoking downloader on 'https://rr2---sn-u2bpouxgoxu-hxay.googlevideo.com/videoplayback?expire=1677056295&ei=x4T1Y4TVEfHRjuMPkaOYkAU&ip=194.223.40.36&id=o-AG1emD7l-ZRQXZTsiZSKA0ZTKdpLc7bv1LuIDYTeFdhu&itag=135&aitags=133%2C134%2C135%2C160%2C242%2C243%2C244%2C278&source=youtube&requiressl=yes&mh=ab&mm=31%2C29&mn=sn-u2bpouxgoxu-hxay%2Csn-hxa7zn7z&ms=au%2Crdu&mv=m&mvi=2&pl=21&initcwndbps=1710000&vprv=1&mime=video%2Fmp4&ns=Z76e2lqeeBOFonvhDtdTzTAL&gir=yes&clen=19850442&dur=1018.217&lmt=1446946687475273&mt=1677034412&fvip=2&keepalive=yes&fexp=24007246&beids=24472449&c=WEB&n=hlOkb5wMix3uQA&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgDMAYEefiTn3hA6cOYVvUqmfaPfEqv7EU9KzKy5TL_y0CIQCPyVMAYSVQiNPKwmGXHaE2c5AkYbeQCzL4BKvstsvFHA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgdWgPiB93grHG6kDe1VAWLiEPz1R5t3H46Ql9g_xbMr4CIBIoQ1S3xN2WDr9n57csAVZwzVk6mcUnXgfQvzorB3IM'
[download] Destination: Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f135.mp4
[download] 100% of 18.93MiB in 00:05
[debug] Invoking downloader on 'https://rr2---sn-u2bpouxgoxu-hxay.googlevideo.com/videoplayback?expire=1677056295&ei=x4T1Y4TVEfHRjuMPkaOYkAU&ip=194.223.40.36&id=o-AG1emD7l-ZRQXZTsiZSKA0ZTKdpLc7bv1LuIDYTeFdhu&itag=251&source=youtube&requiressl=yes&mh=ab&mm=31%2C29&mn=sn-u2bpouxgoxu-hxay%2Csn-hxa7zn7z&ms=au%2Crdu&mv=m&mvi=2&pl=21&initcwndbps=1710000&vprv=1&mime=audio%2Fwebm&ns=Z76e2lqeeBOFonvhDtdTzTAL&gir=yes&clen=16190889&dur=1018.221&lmt=1446947467216128&mt=1677034412&fvip=2&keepalive=yes&fexp=24007246&beids=24472449&c=WEB&n=hlOkb5wMix3uQA&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgTLVdTFroAWj46UjND2KjKq_H9ECYikBCdKpRORryIzICIQDmkDVEe5REixyg99IwL7xdUdDb9QCCENS039FqGqEhqA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgdWgPiB93grHG6kDe1VAWLiEPz1R5t3H46Ql9g_xbMr4CIBIoQ1S3xN2WDr9n57csAVZwzVk6mcUnXgfQvzorB3IM'
[download] Destination: Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f251.webm
[download] 100% of 15.44MiB in 00:02
[ffmpeg] Merging formats into "Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.mkv"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f135.mp4' -i 'file:Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f251.webm' -c copy -map 0:v:0 -map 1:a:0 'file:Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.temp.mkv'
Deleting original file Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f135.mp4 (pass -k to keep)
Deleting original file Doom II OST (SC55) - Intermission Music (Extended)-CPY7VBYbDvw.f251.webm (pass -k to keep)

I think I know what’s happening: I originally installed youtube-dl with pip and that must still be the default. I’ll try to remove the pip version and thus force it to use the new executable that is in the PATH

Locking this issue, the first/original one, will cause, no doubt, further duplicates’ explosion…

True, in that case I would then suggest disabling interactions from new GitHub users. image

Won’t stop all of this, but should help.

Pinning this specific issue would probably help reduce the duplicates (a little).

A maintainer should probably lock this issue and limit it to contributors

The” (only one) current maintainer has his hands full with editing+closing the tens of duplicate issues people insist on submitting, showing complete disrespect to the procedure outlined in #30839 😡 (a PINNED issue no less in the tracker) … Locking this issue, the first/original one, will cause, no doubt, further duplicates’ explosion…

nothing valuable is being added.

I (probably) agree, but that’s because most “people” don’t take some seconds/a minute to browse already posted info/solutions inside this thread and simply want to add a me, too comment, to “get it out of their chests” or similar… And, of course, everybody wants the easiest solution ASAP, that will restore their downloading “needs” in mere seconds (hence most decide to migrate to downstream, because tagged releases and sought-for binaries are already available - but certain older environments are not compatible with downstream) …

I’ve following this error and how interested are the youtube-dl creators. My solution was to change my YT downloader app. You can browse for a Flatpak solution.

Unable to extract uploader id

If you have a Python installation, use pip to install from the git master of this repo: [#31530 (comment)

Fantastic. It SAYS : “Successfully installed youtube_dl-2021.12.17”, but doesn’t fail any longer.

[Edited to revert to my original comment]

Thanks a bunch for the help! It DOES work, though brings up the ‘unable to extract uploader id’ as a warning.

My deepest apologies for the editing mess!

Pass…pip, pypy, composer, npm, yada yada malware bloat installers.

@dirkf, you are going to have a terrible time playing whack-a-mole with duplicates. I suggest you should pin this, along with update instructions (pip / https://github.com/ytdl-patched/youtube-dl) to hopefully reduce the number of dups being opened

As a temporary work-around for youtube-dl users, I can confirm that the current version of yt-dlp available on pip has fixed the issue (but I did have to use -f best to avoid an error fetching URLs).

I know this isn’t exactly the place to share this but I’m sure lots of people are coming here to find a practical solution and not just to report the error so hopefully this is useful to someone reading.

Isn’t Shaun_vids the uploader rather than the uploader_id?

uploader is the “display” name, in this case “Shaun”.

uploader_id was never consistent to begin with because the regex allowed it to be be extracted from either a /channel/ URL format (e.g. UCJ6o36XL0CpYb6U5dNBiXHQ == channel_id) or the old /user/ URL format (not the channel_id). It looks like now youtube is trying to switch all accounts to the @handle URL format, so a likely future scenario is that this will be the only value we are able to extract as the uploader_id. (The yt-dlp regex has been modified to include the @ from the handle URL in the uploader_id, in order to be able to differentiate it from the /user/-type uploader_id)

Working in git master:

If anyone can show a page where the extraction crashes or produces the wrong uploader_id, I’ll re-open this.

… Some 5-6 hours ago, git master (snapshot git-20230214-gdd9aa74) was hit-and-miss, in that one invocation of yt-dl for a specific YT video ID would work as expected, whereas next invocation for the same video ID, some seconds later, would produce the ERROR message contained in this issue’s title 😠 ; IOW, pretty much what was described by @SoundsBetter 😉 …

However, at this time (ca. 00:25 GMT of 20230217), it’s always “miss” 😞 , i.e. the YT changes have fully propagated to the CDNs serving my location (SE Europe):

yt-dl -vF "y6_TOFy3k6k" => 

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--ffmpeg-location', '.\\FFmpeg', '--external-downloader-args', '-v 8 -stats', '-vF', 'y6_TOFy3k6k']
[debug] Encodings: locale cp1253, fs mbcs, out cp737, pref cp1253
[debug] youtube-dl version 2023.02.16.19419
[debug] Python version 3.4.4 (CPython) - Windows-Vista-6.0.6003-SP2
[debug] exe versions: ffmpeg n5.2-dev-2245-N-109649-gab8cde6, ffprobe n5.2-dev-2245-N-109649-gab8cde6, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] y6_TOFy3k6k: Downloading webpage
[debug] [youtube] Decrypted nsig G7tWAGDe6v0HC9p => 8oOTd8zyOMPnHA
[debug] [youtube] Decrypted nsig 827vHwKOyzOGH4d => OtJOHYU2-Y7DWw
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . 
       Make sure you are using the latest version; type  youtube-dl -U  to update. 
       Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "YoutubeDL.py", line 816, in wrapper
  File "YoutubeDL.py", line 837, in __extract_info
  File "common.py", line 535, in extract
  File "D:\a\youtube-dl\youtube-dl\youtube_dl\extractor\youtube.py", line 2125, in _real_extract
  File "common.py", line 1013, in _search_regex
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; 
please report this issue on https://yt-dl.org/bug . 
Make sure you are using the latest version; type  youtube-dl -U  to update. 
Be sure to call youtube-dl with the --verbose flag and include its complete output.

EDIT:

yt-dl --get-filename "y6_TOFy3k6k" -o "%(uploader_id)s" => 

ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . 
       Make sure you are using the latest version; type  youtube-dl -U  to update. 
       Be sure to call youtube-dl with the --verbose flag and include its complete output.

yt-dl --get-filename "3h5-QPbKoVg" -o "%(uploader_id)s" => 

ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . 
       Make sure you are using the latest version; type  youtube-dl -U  to update. 
       Be sure to call youtube-dl with the --verbose flag and include its complete output.

“In space, no one can hear you scream.”

Move on, folks. Take a hint.

Anyone got a solution for this?

FFS read the issue Description instead of looking at clueless videos; also #30839.

To be fair it’s very confusing saying “This issue is solved” when it has been fix in yt-dlp and not here.

There are nightly builds you can download from, I took the binary from there, it solves the issue in my case.

@dirkf You answered after I deleted my question, it was my bad, we can both suppress this useless data.

I don’t understand why all of these comments are being hidden and the original comment is just saying “it’s fixed” when the most recent package update still has this issue. Please make it obvious what the fix is rather than marking everything as spam.

The solution is to uninstall youtube-dl and install the yt-dlp package. https://github.com/yt-dlp/yt-dlp

@SarenT commented on Jul 18, 2023

download an unofficial (now) nightly build for Linux.

It is unclear, where to find the official nightly builds. https://ytdl-org.github.io/youtube-dl/download.html

But you’re here, and the nightly page is actually linked in the quoted text, as you saw, as well as at the top of the tldr; post linked from the Description (and now in #30839).

Are these the recommended steps to remove the issue associated with "ERROR: Unable to extract uploader id; " ?

  • uninstall all the yt-dl instances (apt, pip3)
  • download an unofficial (now) nightly build for Linux.

For what it is worth: using debian version, using the latest release here or using the curl way, they all result in the same issue:

youtube-dl --version
2021.12.17

youtube-dl --verbose --list-subs https://www.youtube.com/watch?v=QArg43rCMBA
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', '--list-subs', 'https://www.youtube.com/watch?v=QArg43rCMBA']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.9.2 (CPython) - Linux-5.10.0-23-amd64-x86_64-with-glibc2.31
[debug] exe versions: ffmpeg 4.3.6-0, ffprobe 4.3.6-0, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] QArg43rCMBA: Downloading webpage
ERROR: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/home/user/bin/youtube-dl/youtube-dl/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/user/bin/youtube-dl/youtube-dl/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/home/userl/bin/youtube-dl/youtube-dl/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/user/bin/youtube-dl/youtube-dl/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "/home/user/bin/youtube-dl/youtube-dl/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: Unable to extract uploader id; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

although it is a binary release, just adding

python --version
Python 3.9.2

… [debug] youtube-dl version 2021.12.17 [debug] Python version 2.7.13 (CPython) - Linux-4.13.0-1-amd64-x86_64-with-MX-18.3-Continuum

These two are some of the major sources of problems - python 2 was end of life in Jan 2020. Kernel 4.19 was a LTS kernel and it was already considered too old in 2020 - current is 6.4.x. It is not just a “Linux MX” system, but an extremely old, outdated and no-longer-supported/updated Linux MX system. (Besides all of problems between the chair and the keyboard…).

I already switched off notifications and block this guy. Really contemplating unsubscribing myself, just to stop reading others trying to “help” him.

Now we’re getting somewhere…

… when I tried the suggested python3 -m youtube-dl I get the error python3 -m youtube-dl /usr/bin/python3: No module named youtube-dl yet I do have youtube-dl

Put your glasses on FFS:

  • try python3.5 -m youtube_dl instead of youtube-dl in your test command (NB _ vs -)

Also, please:

  • post the output of which youtube-dl; ls -l "$(which youtube-dl)"

At last a post with an actual log that is not spam. You still didn’t explain how your yt-dl was installed, as asked.

The log makes clear that this is false:

Again, I DO NOT HAVE PIP …

The problem is that your pip is called pip3, so you could try the command to install setuptools again with that modification (which was actually the command posted for you to try). The recommended procedure is to use python -m pip instead of pip, where python is how you invoke Python on the system, to avoid this confusion.

If, or as, pip doesn’t work for you, use the last resort procedure as suggested several times: ie, uninstall any yt-dl you have and download a single file unofficial nightly build for Linux instead. The instructions for an official build “To install it right away for all UNIX users …” apply, but change the URL to match the nightly build. You don’t need to just "make" to build youtube-dl in this case, but you might need to ensure that you have a program named python and not just python3.

We can assume good faith when you say you have tried everything

Like @HinTak, I’m not so sure. This user has repeatedly failed to follow instructions that would have enabled others to assist, instead relentlessly and cluelessly spamming issues. And apparently at MX Linux, too.

… the pip install from master.tar.gz should be suggested at the very top

As illustrated by this case, pip isn’t the right answer for many users. That’s why the instructions ask the user what sort of yt-dl installation is being updated and suggest the best solution for each case. I’m sure I’ve explained this before.

… Pip is available to you for sure since you have python.

It should be, in MX Linux, which is a (very good) Debian derivative. But apparently “not”.

@CodeKraft python is telling you that setuptools is missing and Stackoverflow Python 3: ImportError “No Module named Setuptools” explains how to install it. Try

pip install -U pip setuptools 

Then try again

pip3 install --force-reinstall https://github.com/ytdl-org/youtube-dl/archive/refs/heads/master.tar.gz

Thanks @geoidesic that worked like a charm

Why are you deleting my comments about help?

I have previously supplied everything needed as per request yet you @dirkf appear to be the person removing comments and calling it spam.

I have tried every suggestion posted and NOTHING WORKS can you comprehend that or is your brain too tiny to accept that fact?

I am asking for help and you keep on throwing things back about posting correctly, I have and I am getting sick of this.

In the last post wit the video link, I tried that DOESN’T WORK.

$ cd "/usr/local/bin/youtube-dl/youtube_dl/extractor/" bash: cd: /usr/local/bin/youtube-dl/youtube_dl/extractor/: Not a directory

OK? What more do you want?

And calm down. This is open source software. People are donating their time to this. It’s not a service you’re paying for.

@CodeKraft, why are you trying to cd into a non-existent directory? Follow the instructions linked here, not some random’s suggestion. The instructions here try to take account of the various installation types, unlike a SO-style “this worked for me”, let alone a video. Really, this is explained in the post that I linked above, because (eg) @geoidesic

Other installation methods led to errors for me on my environment.

what worked for you may not work for CodeKraft.

You may find this Janet and John guide to the relevant hyperlinks helpful. I’ve also pointed you to the last resort instructions, in the previously linked post several times.

If you still don’t succeed, explain how you originally installed yt-dl and post the failing log where you tried to follow the appropriate update method as recommended here. Otherwise, straight to spam. @majd-elhasan, too.

Read the issue:

This issue is solved: read the Description below If you still want to comment after reading that, think again: first read this post below to avoid your comment being deleted or marked as spam.

As reminded above (several times), a valid, non-spam comment must follow “this post below”. If you can’t make some update method work, post the failing installation log as instructed.

This note in your solution https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1599243630 is misleading, you need to enter install before --HEAD:

You can also try brew --HEAD ... to update to the latest master code, similar to the pip-based suggestions.

your sentence should read: You can also try brew install --HEAD youtube-dl to update to the latest master code, similar to the pip-based suggestions.

Note: if on arm64 you may get an Error while installing/ the --HEAD: … Pouring pandoc–3.1.3.arm64_monterey.bottle.tar.gz. Solution: first install pandoc alone by just calling brew install pandoc Then install the Head of youtube-dl as described above.

Then the install will continue on macOS arm64… Note: I added a thumb to the solution, Ray Kurzweil recommends it as well… I also suggested to explicitly replace the ellipsis ... with youtube-dl, but respect you wanted to be more general.

Everyone, a reminder: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1520185289.

@HinTak, your “git clone” solution works for development (and for me), but I expect that the other recommendations will be better for most people.

…So it seems that some (older?) videos and/or extract audio may require the pre-change behavior of this issue.

Post a verbose log in a new issue if you see this again. I suspect that your installation went awry, although there may possibly have been a bad commit. #31675 was well tested. Nothing in a2534f7 could possibly have affected the behaviour in this issue.

I’ve added your later suggestion (to ask packagers for an update) to the suggested update methods post.

@CodeKraft, you don’t have pip installed. Follow https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1520185289 as previously suggested. As you can’t manage to read it, this is the relevant bit:

  • none of the suggested update methods work for me uninstall your yt-dl (all of them!); use an unofficial nightly build suitable for your platform; …

A source for an “unofficial nightly build” is suggested in the main post covering update methods, linked as “below” from the Description.

@paulrougieux (and @HinTak): although it seems to have been quite unsuccessful in the above case, the post that suggests update methods covers all types of installations. If someone doesn’t already use pip, it’s not our job to make them do so.

@jgspratt: https://github.com/ytdl-org/youtube-dl/commits/master

Is there any way to actually download the video?

This is now getting well over two months and no fix despite all the comments I have seen about a fix, nothing is working.

Are there any DEV’s actually working on this issue?

I have checked that I have Python and its still there, youtube-dl -U keeps on saying I have the latest version…

And someone keeps on marking comments as outdated, off-topic, duplicate, etc when people are still commenting on youtube-dl not working.

You’d think that this was an indication to the DEV’s that there are a large number of people out there wondering why youtube-dl isn’t working yet 3rd party download sites that offer downloads are working perfectly fine.

I’m on Mac with M2 chip running Ventura 13.4, and this worked for me:

Make sure you have ffmpeg installed: brew install ffmpeg

Install pip: curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

run python3 get-pip.py

Then install latest youtube-dl from master with the fix:

python3 -m pip install git+https://github.com/ytdl-org/youtube-dl.git

then run youtube-dl OPTIONS URL and it should work 👍🏽

Still waiting on youtube-dl to be fixed, asking me to use yt-dlp isn’t an option as nothing compiles on this install and men it looks like its going to compile, it errors or hangs the entire machine.

If yt-dlp was wrapped up in an .appImage then that would work for me as I can give permissions to run.

Use yt-dlp for now. It works

1- Nobody from the dev team closed it

I believe this was done so it still appears as Open when “new issue” submitters search (very few of them, sadly) among the Open issues list (since close to 0 search among the Closed ones 😡 ) for an existing open issue with the same/similar error message, in an attempt to reduce duplicates creation; unfortunately, this has not resulted in fewer dupes posted 😞 …

My eyes are on this thread because none of the solutions slash suggested interim python upgrades have worked for me on my slackware15 system. The issue will most likely be truly resolved when a new version is published.

The ‘temporary’ fix witch duration is over weeks or mounth… The fix has to be here to prevent spam http://ytdl-org.github.io/youtube-dl/download.html If youtube-dl is given up for yt-dlp, admin has to anounce here http://ytdl-org.github.io/youtube-dl/download.html and here https://youtube-dl.org/

Le vendredi 19 mai 2023, Jesper Frickmann @.***> a écrit :

According to the following, it has been fixed in Master, and there is a temporary fix that worked for me: https://stackoverflow.com/questions/75495800/error- unable-to-extract-uploader-id-youtube-discord-py

— Reply to this email directly, view it on GitHub https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1553926051, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALC5G6SQFOAIQLBI5OZBWJDXG3NFLANCNFSM6AAAAAAU6HECQY . You are receiving this because you commented.Message ID: @.***>

That’s amazing, thanks a lot 😃

So why this repo doesn’t release the latest builds anymore? Why we stuck in 2021??

I also am getting this error, but it’s not on all videos. You devs are awesome, though, because a lot of the youtube downloader sites are pretty sketchy.

While waiting for the new release, I think we have resolved the issue in the homebrew side, can someone test it out and confirm the fix? Thanks!!

Yes intalling/reinstalling using homebrew works. The unable to extract uploader id message still appears, but now it is a warning instead of error and the video download was success.

Thanks a lot for the fix! 🙏

 pip install --upgrade --force-reinstall git+https://github.com/ytdl-org/youtube-dl.git

Fixed the issue for me.

Please put something like this in the Description @dirkf , it’s more efficient for everyone to understand.

Examples like this are in the post about updating via pip that is linked from the “TLDR” update post linked from the Description. To avoid requiring git, use the zip download offered from the “<> Code>Download ZIP” pull-down on the main page, but changing the extension to .tar.gz.

@dirkf I’ve opened a follow-up PR at #32032 as I still get errors with --print-json even with the latest master. Probably not the correct way to do it but it fixes things for me, let me know what you think. Thanks

@neumond

… if you’ve installed current master from git to fix uploader id issue and encounter TypeError: Object of type LazyList is not JSON serializable

This should have been fixed in master, but there was another way for a lazy fragment list to escape. If an error like this is seen with a version at commit fe7e130 or later, please report it with verbose log in #31999.

[brew reinstall] worked for me, but later the bug came back. …

Are you sure you’re not just seeing the WARNING that remains in the patched version to let you know that the uploader_id wasn’t extracted? Otherwise, raise the problem in the linked thread for brew.

git clone https://github.com/ytdl-org/youtube-dl pkg install zip pkg install pandoc make ~/youtube-dl/youtube-dl “https://m.youtube.com/playlist…”

This issue is solved: read the Description below

Obviously has not been solved anywhere. I’ve removed, installed and updated youtube-dl and yt-dlp multiple times on my slackwareOS system to no avail. Quite frustrated with seeming complacency considering the number of eyes on this Shituation report.

I’ve just encountered this issue after installing youtube-dl for the first time. I’m using Ubuntu 20.04. Thanks

I’ve used pip install 'git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl' since the hash is a comment in bash, not sure if it’s needed but it will be ignored when not using quotes. And this works fine.

Thanks.

pipx install git+https://github.com/ytdl-org/youtube-dl.git@master

Should be a bit easier to reconstruct from examples on https://pypa.github.io/pipx/examples/ and you get the benefits of pipx. Requires pipx, but from my point everyone should use it and stop worrying less.

See below(link) for ways to update to a fixed version of youtube-dl. Using -U doesn’t (yet) work. A new release may be created, including the final fix, some time later than now(link).

How misleading is that?

Also @Matthew0x.

Would you elaborate on how exactly “both” programs were fixed, if the last release of youtube-dl was in 2021?

Source code was fixed; however no release has been published which contains the fix.

->The problem, which was revealed by a change in the metadata served by YouTube, applied to both https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1433230848 and https://github.com/yt-dlp/yt-dlp/issues/6247 and has been fixed in both programs

Could you elaborate on how exactly “both” programs were fixed, if the last release of youtube-dl was in 2021? I ended up downloading yt-dlp, which worked with no problems. This post is a bit misleading…

EDIT: To keep it simple. The official repo has an old release. That release shows up as the newest in OS repositories. OS repositories are another topic, but if an RPM/DEB is available and they have the same version as the official release, yet that release is 2 years old and broken then I believe something is wrong/suboptimal.

Installed Packages
Name         : youtube-dl
Version      : 2021.12.17
Release      : 4.fc37
Architecture : noarch
Size         : 13 M
Source       : youtube-dl-2021.12.17-4.fc37.src.rpm
Repository   : @System
From repo    : fedora
Installed Packages
Name         : yt-dlp
Version      : 2023.03.04
Release      : 1.fc37
Architecture : noarch
Size         : 19 M
Source       : yt-dlp-2023.03.04-1.fc37.src.rpm
Repository   : @System
From repo    : updates

Judge it however you wish. I simply believe that installing/downloading custom scripts, binaries every time to update something makes little sense (although it seems to be python in this case). I personally use AppImages, FlatPaks, RPMs, tars with .sh.

The main difference is - I know the publishers or they are managed by the OS. An average user will probably always pick a managed package or an isolated app rather than a script or raw binary. Especially if that package seems up to date.

Again, that’s just an inconvienience in my opinion and the old release number makes the whole situation slightly more weird.

It’s not a crash. The program exits when it encounters the unable to extract the uploader id error, as intended. …

That’s a crash. The exit was unintended.

Extractors shouldn’t fail on optional extraction. The extractor method used to search defaults to raising an exception, which can be appropriate for media links and (traditionally) title, but must be overridden for optional metadata extraction.

Thank you for this thread. I was wonder why so big deal to create new release. I came accross to #30568 and #31535 and I hope I understand. @dirkf decided to support old unsupported versions of python and probably this is reason why is not possible to use continuous integration to build and release new version.

Thats pity because packaging systems (like brew, apt etc…) would upgrade to new version and some users would be satisfied. And we don’t have to waste time to commenting this issue and move on. Unfortunatelly isn’t common to use nighty builds (master checkout) for these packaging tools. The package should be stable and clearly versioned.

I don’t know reasoning why to support old python versions. @dirkf probably has his reasons. Honestly I can’t imagine how much energy and time it must take to triage comments and reply, why a new version is not released etc… I would humbly advise you to reconsider this decision, it’s just way to lose users and abandon development.

Thank you both for maintaining

… But I (Vangelis66) am not actually a maintainer of this project 😜 , actually not a coder either… dirkf is currently the ONLY person actively involved in maintaining it, after the previous team practically quit (see also here) … I’m just a self-taught, semi-advanced youtube-dl user on Windows and I (as well as a few other volunteers) jump in occasionally to lend a helping hand of sorts in triaging issues…

The sole person currently involved in this (open source and free) project has literally become overwhelmed with dealing with a flood of (mostly entitled) issue reporters, having his pinned issue(s) and/or issue templates completely disregarded by reporters and, when it comes down to it, people generally harbouring aversion to self-help practices and/or following already posted guidelines to rectify their issues…

So yes, at this point, “politically correct” choice of wording may suffer at times… Every issue reporter thinks he/she is unique and his/her particular problem is also unique (not addressing you here, just describing the general trend 😉 ) …

If you’d care to browse more than 200 duplicate issues in this very tracker, then, perhaps, you’d start realising how impossible the task of properly maintaining this project can get…

As a fellow user, glad you got your issue sorted 👍 …

Best regards.

Thank you @Vangelis66! I will certainly try the URI you posted. I did first remove the brew installation before installing the curl one, so I guess it kinda applied to me.

Sorry if I misinterpreted your intention by quoting. Without hearing your tone or seeing your face it seemed, to me at least, as being sarcastic. Mainly because I am, sincerely, happy that I can report a problem and talk about it directly with a maintainer. It beats going through google on my own in the worst case, or talking to a support agents who can’t always help in a better case… Being able to talk to you directly, as a user experiencing a problem, is delightful.

Thank you both for maintaining this very useful software, and being approachable by us peasants 😉

… I was NOT being sarcastic 😄, just “quoted” the very adverb you chose to use yourself 😉 (as I don’t feel generally “elated” when I have to report bugs to app authors 😄 ) … FWIW, I’m an exclusive Windows user, so can’t be of much further help to you; a MacOS user should jump in, if possible…

when executing youtube-dl -U, is this also through the brewery?

No; but it shouldn’t apply to you, because you did install initially via a package manager (Homebrew); FWIW, the description in OP clearly states:

Using -U doesn’t (yet) work.

Curl method? If it fetches latest official release, then it won’t do; you’d have to somehow install from latest source instead…

Edit: As I was typing this, I saw you “solved” your issue by fetching an unofficial “daily/nightly” release; might want to try below URI,

https://github.com/ytdl-patched/youtube-dl/releases/latest/download/youtube-dl

which would always fetch the latest build (instead of a specified one) at the time the command is run…

Regards.

Is a fix planned to arrive at a brew-able youtube-dl?

Why not ask in the brew-ery? Unlike yt-dlp, yt-dl doesn’t have any interface (technical or otherwise) to it.

If your yt-dl was installed with a package manager that needed admin, a pip command to update the module will need the same.

If you want to install from the master code without git, you can use a source archive provided by GH: see the blog post linked from the instructions and/or pip documentation.

@ReenigneArcher it will not help if people keep commenting on this issue. They would need to stop for a while before the action will close the issue. Unless you talk about other issues. I always think this is really rude to close an issue that no one commending on for a month. I’ve seen people reopening by hand what action is closing and making it even worse.

1/ Reading this very long page, I understand that the root cause may be a change in the yt page. Is it correct ?

It must be, because that’s the first line of the 2nd paragraph of the Description.

2/ About this file youtube-dl Is it not supposed to be a python READABLE auditable program??? This is a key question.

See FAQ.

From a duplicate issue:

in the shebang (the first line, it looks like that: #!/usr/bin/env python) change “python” to “python3” (no spaces between python and 3)

This could, depending on the tool used to edit the file and the installation type, result in a non-functional youtube-dl executable.

And see my post above from 1 March that GH makes it difficult to find (no pagination, no in-issue search, really hopeless) for a script, or use a package like python-is-python3, or make a symbolic link.

3/ Why is there so many issues with this software? (3.8k)

Feel free to help triage the open, mostly historical, issues, mostly to do with changes in website structure.

Bonus: when using the “-f N” option, yt-dlp is orders of magnitude faster than youtube-dl was.

yt-dl git master downloads at roughly the same speed as yt-dlp.

I just wanted to say thank you to the developer(s) of this module. I have been using for a while and it broke re the extractor ID as several have noted. I searched and came up with a trail here. I am a NOVICE python user and was figuring out how to update the module so my code would work. I’m sure this is not proper but for those dabblers like myself this worked. Afterdownloading the yt-dip-master, I copied the files from the yt_dlp folder to my local python site-packages, backed up my original file set in youtube_dl and dropped in the Github set. Closed and re-opened Thonny and boom, it worked beautifully! Many thanks!!

The nightly builds offered by helpful downstream(s) include single file executables for both Windows and POSIX (Linux/macOS).

I don’t see why they don’t release a modified binary as soon as possible either.

There are still some things that have to be resolved. Issue #30644.

So, what about a fix for those of us using youtube-dl on Windows, having downloaded the windows binary direct from the website? Not using pip, etc, so can’t force-install. It seems the new dev has dropped youtube-dl like a hot potato…

I don’t want to have to fuck around with install from src, or a 3rd party installer like pip etc. I want to keep it simple. This is becoming very frustrating at how unreliable youtube-dl has become.

Not a happy camper. Yes, I know this is ‘free software’ and no guarantees made etc, but it’s still shit “support”. I honestly can no longer recommend this software.

@dirkf my friend, I’m sorry that my comment seemed like it was attacking the great ytdl-org! Indeed it was not. I was expressing the craziness of how we (“the entire dev community as a whole”) need to parse web pages by relying on such half-measures as regex, that are so fragile wrt to changes. I know it can be different, and I hope to make a difference but for now it will have to be like this. Crazy times! Thank you for your informative git blame I’ll look into it to know more! 😃

Confirmed that manually patching this file /opt/homebrew/Cellar/youtube-dl//2021.12.17/libexec/lib/python3.11/site-packages/youtube_dl/extractor/youtube.py with this string fixed it:

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

On 2/27/23 17:56, dirkf wrote:

Don’t do that. Also, your experience will only apply to a subset of users.

Use the fixed version as explained in the post linked from the Description.

So far youtube-dl -U says I am on the latest

😢

I noticed the sizing as well,

Never mind. Now we know the size of 209 is totally okay. I do agree fully with @dirkf, that once you have a machine completely free of remnants of any previous youtube-dl install, and you issue the pip command, it will work. In your case, I am sure there is still an old file lying around, and is used, or not updated, or whatnot, and therefore the new patch just isn’t installed, or not called up. Also here, the developers need to provide a complete list of files that pip and / or any other package manager might have installed. Then, if you still wanted, you could clean your machine from any relics of previous youtube-dl-s and start with a clean slate.

A zip archive with a top-level __main__.py is a valid Python script. The POSIX self-extracting build is just a big zip of the program like that appended to the appropriate Python shebang. This fails in newer macOS with no Python, and in Windows, unless a Python has also been installed in either case. The former (soon) and the latter need a special build that also includes a minimal Python (so is much larger).

The short script installed by package managers (including pip) is a wrapper from pip/setuptools that invokes an installed youtube_dl package, specifically loading the youtube-dl “entry-point” from the console_scripts group of the youtube-dl==2021.12.17 package:

    load_entry_point('youtube-dl==2021.12.17', 'console_scripts', 'youtube-dl')

cph015’s verbose log indicates a single file self-extracting executable but the executable appears to be 209 bytes instead of 1837828. This is strange. Should yt-dlp not be preferred, cph015 should expunge all signs of youtube-dl and install a nightly build, or the new release when available.

Next, you’ll do $ /usr/local/bin/youtube-dl -F https://youtu.be/9Opj6dppDbo please.

$ /usr/local/bin/youtube-dl -F 'https://youtu.be/9Opj6dppDbo'
[youtube] 9Opj6dppDbo: Downloading webpage
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. Be sure to call youtube-dl with the --verbose flag and include its complete output.

NOTE: I installed yt-dlp (https://github.com/yt-dlp/yt-dlp/wiki/Installation) and this is working great! youtube-dl doesn’t though, so not sure. I’ll continue providing updates to fix it here though if you’d like

ERROR: Unable to extract uploader id; please report this issu

I bet you don’t!

Open a command prompt and show us the output of $ ls -l $(which youtube-dl)

I don’t doubt it’s a user error, just can’t see what I’m doing wrong lol

$ ls -l $(which youtube-dl)
-rwxr-xr-x 1 root root 209 Feb 27 08:47 /usr/local/bin/youtube-dl

$ type youtube-dl

Njet. This gives you the one currently in PATH. See my comment above. With pip on *buntu (and no su) I get two installs. That’s why I started my proposal with ‘find’. Never trust PATH. Because then we’ll see heaps of comments popping up here “But I installed …” In order to help from here, we have to see all potential installs. Especially, since many have already started to explore remedies, and might have a bunch of installs; apt, snap and pip give you three already.

You ARE right, that a very simple version could just extract the date of the one in PATH, and flag to the user that (s)he is still running the old one.

Questions about yt-dlp belong there.

As I wrote:

…, @jcubic, …: read the thread.

I followed all of the instructions to update via pip and github. still not working

Don’t know what you did. Though had the same here, also on Linux. Problem here: I installed as user, that is under HOME. $ youtube-dl ... brought the error, again. Then, explicitly, I did

$ .local/bin/youtube-dl

from then on it worked.

Tried again, pip uninstall . And after install

$ which youtube-dl 

would point to /usr/bin After

$ .local/bin/youtube-dl

everything was okay, and

$ which youtube-dl 

would point to the version installed through pip

@jduckett, the error log is well known. Let us know the result of type youtube-dl, the exact command(s) that you used to update, and, if you can recall, how your yt-dl was originally installed.

If you installed with a package manager (apt, yum, brew, winget, etc), you may find that the maintainers of your package repository have updated the package from a fixed development version (eg, Ubuntu).

Careful. I tried on *buntu 22.04; snap and apt, but didn’t get any updated version. So back to my trusted pip install. YMMV

Ok, but I don’t want to use the fork, I want to use youtube-dl. Can a new release be created, if the code was updated?

I was able to fix my version of youtube-dl with a manual hotfix,

You could have used the actual commit from yt-dl.

The final fix will be similar to this:

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

If you have to become admin to make a manual patch, ensure that you also run yt-dl (eg, with --version) as admin after patching to update the compiled bytecode module: otherwise the program will mysteriously continue to behave as before even though the source code appears different. You don’t need to do any other setup.

It appears to have broken between versions 2021.1.16 and 2021.02.04

Why on earth are you looking at those old versions that were broken by YT 2021-12?

@gittieandpete, @RandomLive, @ToddAndMargo, @PeterGyger: https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1441040428, as well as https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435975611 (or start again).

python3 is installed. What do you mean with git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl? I do not understand that.

The git+https://github.com/ytdl-org/youtube-dl.git@master#egg=youtube_dl tells pip to install youtube-dl from the latest revision in this youtube-dl repository which you are commenting on an issue in. It’s necessary to do this to change the unable to extract uploader id from an error into a warning and be able to download videos. Or you can install 2021.01.16, or try manually edit youtube.py as per https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1433470254

Crazy. I show the syntax that helped me solve the problem on Linux. And instead of DOING it, someone asks for an explanation of the particulars of arguments of a command line. Especially with so many duplicates, 250+ posts, why do you consider it relevant to explain the arguments passed to pip instead of just TYPING those few commands (copy and paste!), and hopefully having it ready, back at work?

Maybe people think “they should know how to install” but that would be besides the point of making it easier. Most probably have no idea about pip’s git syntax either.

They might be referring to the fact that development builds might be more unstable, but either way things will break, and a project as complex and litigious as this shows it multiple times.

This crashed it for me: owner_profile_url: http://www.youtube.com/@DarbySpiegel1027

Current test version (private) on a video from that channel:

$ python3.9 -m youtube_dl -v --get-filename -o '%(uploader_id)s' 'EBLvMHBBqAc'
[debug] System config: ['--prefer-ffmpeg']
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '--get-filename', '-o', '%(uploader_id)s', 'EBLvMHBBqAc']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: 1d3751c3f
[debug] Python version 3.9.16 (CPython) - Linux-4.4.0-210-generic-i686-with-glibc2.23
[debug] exe versions: avconv 4.3, avprobe 4.3, ffmpeg 4.3, ffprobe 4.3
[debug] Proxy map: {}
[debug] Default format spec: bestvideo+bestaudio/best
@DarbySpiegel1027
$
youtube-dl 'https://www.youtube.com/watch?v=wx8nmd0oiGY' --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['https://www.youtube.com/watch?v=wx8nmd0oiGY', '--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.12.0a3+ (CPython) - Linux-6.0.0-kali6-amd64-x86_64-with-glibc2.36
[debug] exe versions: ffmpeg 5.1.2-2, ffprobe 5.1.2-2, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] wx8nmd0oiGY: Downloading webpage
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. Be sure to
call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
                ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/site-packages/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.

I’m using python -m pip install youtube-dl==2021.1.24.1 as a work-around for now.

Why not follow one of the solutions presented here instead of installing an old version that will fail differently?

@zaphida, clearly that worked, then.

Agreed. Also, remove or rename the old single file youtube-dl.exe to ensure that it isn’t running when you invoke youtube-dl. With the patched nightly build you would presumably overwrite the old one anyway

The nightly build has an updated version date and a disclaimer like this

[debug] youtube-dl version 2023.02.21.1919
** This build is unofficial daily builds, provided for ease of use.
** Please do not ask for any support.

while a pip version updated from the repo can be identified by an additional line like this

[debug] Git HEAD: 1d3751c3f

@zaphida, seems like you haven’t updated the yt-dl instance that you intended. How was yt-dl installed on your system?

A maintainer should probably lock this issue and limit it to contributors… nothing valuable is being added.

youtube-dl --verbose https://www.youtube.com/watch?v=kvher7AlvrY [debug] System config: []

I might become boring, though it works perfectly well (except of a warning) with the pip to install from the git master of this repo: [#31530 (comment)

In case you just want to GET the clip.

Sorry for duplicate bug report. Still figuring this out. Ran sudo pip install --upgrade youtube_dl before youtube-dl errored out by the way.

Same here :

Verbose log

Python version 3.10.9 (CPython) - Linux-6.1.12-arch1-1-x86_64-with-glibc2.37

Tried yours with the update of git master, and - just to confirm - worx. Python version 3.10.6 (CPython) - Linux-5.15.0-60-generic-x86_64-with-glibc2.35

Please update binary releases for Linux, compatible with python 2.6 or 2.7

Y’all, go /youtube_dl/extractor/common.py. Line 983, change: fatal=True to fatal=False

when could we expect an update through youtube-dl -U, please?

Not soon enough to avoid the update methods already documented, which is why they were.

Similar issue maybe youtube did something that youtube-dl hasn’t implemented a fix for?

The issue has been fixed already, there’s just no release made for it for some reason so everyone’s getting pointed at a manual update process in #31535. I can’t imagine what that reason might be, though.

https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435734719: Proposed final resolution:

  • uploader is the author text value
  • channel is the same
  • uploader_id becomes the @… value
  • channel_id is channelId
  • uploader_url is the author URL with /@…
  • channel_url is /channel/{channel_id} at least while that is valid.

In yt-dlp we’re looking at changing it to something similar:

  • channel and uploader are the same (current value of channel) -channel_id is only the channel UCID
  • channel_url is only the UCID channel url uploader_id is only the handle including the @
  • uploader_url is only the handle url

Error remains after running youtube-dl -U: youtube-dl is up-to-date (2021.12.17) - Has this issue been fixed or am I misunderstanding?

@gspears333, see #31530 (comment), #31530 (comment), and #31535.

Dude – you the bomb! Thanks and the patch (the .exe version) has been successful on my yt download. Thanks again,…

Thanks. I’m a python noob - I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) … so I avoided it.

And, actually, I was able to grab a patched version from here, and that worked good, too. Just replaced my old youtube-dl with that and all worked well.

So, there are at least 2 ways people can fix this problem without worrying about that yt-dlp fork.

Either run from master or get that patched youtube-dl.

I was able to pip install the source package and can confirm the fix. I’m a novice-intermediate with python and I don’t believe this install will affect your environment since it’s just a pip install.

Thanks. I’m a python noob - I have no idea if installing stuff via pip will screw up my 3.6 environment (its very important I do not impact my py 3.6) … so I avoided it.

And, actually, I was able to grab a patched version from here, and that worked good, too. Just replaced my old youtube-dl with that and all worked well.

So, there are at least 2 ways people can fix this problem without worrying about that yt-dlp fork.

Either run from master or get that patched youtube-dl.

@dirkf, you are going to have a terrible time playing whack-a-mole with duplicates. I suggest you should pin this, along with update instructions (pip / https://github.com/ytdl-patched/youtube-dl) to hopefully reduce the number of dups being opened

I think so.

FYI, I came to this issue when browsing this repo. The topmost commit was 2dd6c6edd8e0fc5e45865b8e6d865e35147de772, which mentioned this issue (and it is related).

I guess that when this issue has been closed and fixed, a new release should be made and inform users to immediately upgrade.

@nachanon, you’re trying too hard. Just install the checked-out master in place of your previous installation … at least once #31597 is fixed. Thanks.

Your Python probably doesn’t have a pip that can do that directly from the repo, or perhaps not even from a local archive, but you can just copy the checked-out youtube_dl directory in place of the one in your installation (after backing up, obvs).

Also, @camopants, @s1sw4nto (but #31600).

Running from updated master branch source, for Windows users, with CPython installed and already in your %PATH% - the yt-dlp way 😜 …

Navigate in your browser to: https://github.com/ytdl-org/youtube-dl

Locate and expand the green <> Code button

Download the git source via the Download ZIP button (actual link: https://api.github.com/repos/ytdl-org/youtube-dl/zipball/master)

Once on disk, extract “here” (natively via Windows Explorer or via your preferred extractor - I use 7-zip) - the archive should be extracted onto a disk location where your Windows account has write privileges…

Open the extracted folder (named ytdl-org-youtube-dl-2dd6c6e); inside it, create a youtube-dl.cmd file with below content:

@py -bb -Werror -Xdev "%~dp0youtube_dl\__main__.py" %*
The lot should look like below:

yt-dl

Open your Windows Command Prompt, then cd to the inside of the extracted folder.

You can then run `youtube-dl` by invoking the newly created `.cmd` (aka `.bat`) file:
D:\Python3716-32\ytdl-org-youtube-dl-2dd6c6e>youtube-dl -vF "p7FCgw_GlWc"

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-vF', 'p7FCgw_GlWc']
[debug] Encodings: locale cp1253, fs utf-8, out utf-8, pref cp1253
[debug] youtube-dl version 2023.02.17
[debug] Python version 3.7.16 (CPython) - Windows-Vista-6.0.6003-SP2
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] p7FCgw_GlWc: Downloading webpage
[youtube] Confirming age
[youtube] p7FCgw_GlWc: Downloading API JSON
[debug] [youtube] Decrypted nsig a_OjXN0Ftn_LILMF => JZ8oiE-DX4INFQ
[debug] [youtube] Decrypted nsig xCl4hvTncz9D4J2b => fwrKBQxXzwmYhA
WARNING: 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. 
         Be sure to call youtube-dl with the --verbose flag and include its complete output.
[info] Available formats for p7FCgw_GlWc:
format code  extension  resolution note
249-0        webm       audio only tiny   51k , webm_dash container, opus @ 51k(48000Hz), 3.89MiB
249-1        webm       audio only tiny   51k , webm_dash container, opus @ 51k(48000Hz), 3.89MiB
250-0        webm       audio only tiny   66k , webm_dash container, opus @ 66k(48000Hz), 5.04MiB
250-1        webm       audio only tiny   66k , webm_dash container, opus @ 66k(48000Hz), 5.05MiB
251-0        webm       audio only tiny  127k , webm_dash container, opus @127k(48000Hz), 9.65MiB
251-1        webm       audio only tiny  127k , webm_dash container, opus @127k(48000Hz), 9.70MiB
140-0        m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 9.83MiB
140-1        m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 9.83MiB
160          mp4        256x144    144p   33k , mp4_dash container, avc1.4d400c@  33k, 30fps, video only, 2.53MiB
278          webm       256x144    144p   80k , webm_dash container, vp9@  80k,30fps, video only, 6.12MiB
394          mp4        256x144    144p   84k , mp4_dash container, av01.0.00M.08@  84k, 30fps, video only, 6.40MiB
133          mp4        426x240    240p   55k , mp4_dash container, avc1.4d4015@  55k, 30fps, video only, 4.23MiB
242          webm       426x240    240p   68k , webm_dash container, vp9@  68k,30fps, video only, 5.17MiB
395          mp4        426x240    240p  189k , mp4_dash container, av01.0.00M.08@ 189k, 30fps, video only, 14.41MiB
134          mp4        640x360    360p  114k , mp4_dash container, avc1.4d401e@ 114k, 30fps, video only, 8.67MiB
243          webm       640x360    360p  130k , webm_dash container, vp9@ 130k,30fps, video only, 9.90MiB
396          mp4        640x360    360p  301k , mp4_dash container, av01.0.01M.08@ 301k, 30fps, video only, 22.87MiB
135          mp4        854x480    480p  193k , mp4_dash container, avc1.4d401f@ 193k, 30fps, video only, 14.71MiB
244          webm       854x480    480p  208k , webm_dash container, vp9@ 208k,30fps, video only, 15.81MiB
397          mp4        854x480    480p  547k , mp4_dash container, av01.0.04M.08@ 547k, 30fps, video only, 41.59MiB
247          webm       1280x720   720p  402k , webm_dash container, vp9@ 402k,30fps, video only, 30.57MiB
136          mp4        1280x720   720p  452k , mp4_dash container, avc1.4d401f@ 452k, 30fps, video only, 34.36MiB
398          mp4        1280x720   720p 1112k , mp4_dash container, av01.0.05M.08@1112k, 30fps, video only, 84.46MiB
248          webm       1920x1080  1080p 1618k , webm_dash container, vp9@1618k, 30fps, video only, 122.86MiB
399          mp4        1920x1080  1080p 1759k , mp4_dash container, av01.0.08M.08@1759k, 30fps, video only, 133.61MiB
137          mp4        1920x1080  1080p 2850k , mp4_dash container, avc1.640028@2850k, 30fps, video only, 216.45MiB
18           mp4        640x360    360p  162k , avc1.42001E, 30fps, mp4a.40.2 (22050Hz) (best)

D:\Python3716-32\ytdl-org-youtube-dl-2dd6c6e>

…[didn’t really understand #31535]…

Crikey, that was all described in the posts of the linked issue by bashonly and myself. Also, USE PIP to install from the repo if you have a working Python, and get one if you don’t.

… VLC can no longer play YT either and no update to its lua for YT either

I believe VLC’s yt-dl integration has been broken for some time. The maintainer of the yt-dl hook made a fuss about patching yt-dl with code based on his LUA patch when YT started requiring a challenge to be solved for unthrottled download speeds but hasn’t taken advantage of the unthrottling code placed in the public domain by yt-dlp and yt-dl.

With video players like VLC that can accept a pipe as input, pipe yt-dl’s download into the player, using yt-dl option -o - and typically - as the filename for the player. This certainly works for me with mpv.

… telling inexperienced users to building from source

You don’t have to “build from source”. Youtube-dl is a Python program that runs directly under a variety of Python versions with no setup beyond pip.

It’s possible to make single-file versions of the program that unpack the program and a Python interpreter every time you run the program. The linked issue suggests how you could obtain such a version of the program.

The issue is persisting with yt-dl in France. …

It will until you take one of the actions mentioned in #31535. Or if YT rolls back the new page structure.

What about youtube_dl as a python library?

Install from the git master with pip to get the latest fixes, or even replace or patch youtube_dl/extractor/youtube.py (care needed depending on permissions).

Omg why it takes so long to fix this?

@bashonly

For me, your explanation of phased rollout/changes on the CDN perfectly explains, why my attempts to reproduce this, using the same video id sometimes succeeded yesterday and sometimes not (I’m from Germany). Still, being neither a Python nor a regex expert (yet), I can only repeat: cloning yt-dlp master after your commit yesterday and following the create exe instructions for Windows, then exchanging the exe fixed everything for me. My script scans some 500 channels with some 4000 playlists and did not report a single userid extraction error since your fix. If I understod it right, youtube-dl uses a slightly different regex to tackle that same issue; I cannot judge due to my lack of expertise; I can only confirm that your solution is working just fine.

… which leaves me confused, why this gets re-opened repeatedly, but probably this will only stop, when new precompiled builds are released.

Big Thank you.

yt-dl already looks in two places for the URL containing the channel ID: perhaps it should look in reverse order.

channel_id is still being extracted just fine. You could easily make the uploader_id value a duplicate of the channel_id if you want. But that is not what the code was doing before, and why ignore the handle?

TEMPLATE BROKEN had to create the issue, then edit.

Check #30839 and raise a separate issue if still required.

same here. you probably don’t need more bug reports but since i came here to report it, here it is:

Python version 3.10.10 (CPython) - macOS-12.6.3-x86_64-i386-64bit

[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-f', 'mp4', '--verbose', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.10.10 (CPython) - macOS-12.6.3-x86_64-i386-64bit
[debug] exe versions: ffmpeg 5.1.2, ffprobe 5.1.2
[debug] Proxy map: {}
[youtube] imj6Rghr95g: Downloading webpage
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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
  File "/usr/local/Cellar/youtube-dl/2021.12.17/libexec/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Damn… why didn’t those guys change the name to something less confusing.

Sorry.

It works for me from time to time

Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0
C:\Users\dr7mu>C:\Users\dr7mu\AppData\Roaming\Python\Python311\Scripts\youtube-dl --verbose https://youtu.be/PtcHNvVooLQ
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://youtu.be/PtcHNvVooLQ']
[debug] Encodings: locale cp1251, fs utf-8, out utf-8, pref cp1251
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] PtcHNvVooLQ: Downloading webpage
[youtube] PtcHNvVooLQ: Downloading MPD manifest
[debug] Default format spec: best/bestvideo+bestaudio
[debug] Invoking downloader on 'https://rr3---sn-npa3oxu-c0ns.googlevideo.com/videoplayback?expire=1676587820&ei=zF7uY_rJJciR1was1oPICw&ip=5.152.109.165&id=o-ADzBJJPVVVl-AU3mcvIsev5R0V1fTR01mJ_nuqSQx5Wm&itag=22&source=youtube&requiressl=yes&mh=pV&mm=31%2C29&mn=sn-npa3oxu-c0ns%2Csn-4g5lznlz&ms=au%2Crdu&mv=m&mvi=3&pl=24&initcwndbps=907500&vprv=1&mime=video%2Fmp4&ns=g4drxay16iE_vip8yIu0wmoL&ratebypass=yes&dur=1.904&lmt=1577620449803537&mt=1676565912&fvip=1&fexp=24007246&c=WEB&txp=6216222&n=c1FH5nfa5vHvkem&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAI-mZRq0fh65Jnpt1sCMDw35TI8IVWhW--gfmUg-YLWNAiEA7MCq4VJoeEW-LZOSJMOcEXxGK07GKwuYdVUZFXJ32Hg%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgN6wKZpbb1vDhJhiMB32tj8aTsYhtJZcSmhp8jj8qRGkCIQCzm2axUyvk7xLxaJBmt9WdiOOFDh1ZDwZdwptys1Rk7g%3D%3D'
[download] Destination: Wilhelm Scream (Iconic funny Scream) - Sound Effect for Editing-PtcHNvVooLQ.mp4
[download] 100% of 44.67KiB in 00:00

C:\Users\dr7mu>C:\Users\dr7mu\AppData\Roaming\Python\Python311\Scripts\youtube-dl --verbose https://youtu.be/PtcHNvVooLQ
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://youtu.be/PtcHNvVooLQ']
[debug] Encodings: locale cp1251, fs utf-8, out utf-8, pref cp1251
[debug] youtube-dl version 2021.12.17
[debug] Python version 3.11.1 (CPython) - Windows-10-10.0.19044-SP0
[debug] exe versions: none
[debug] Proxy map: {}
[youtube] PtcHNvVooLQ: Downloading webpage
[youtube] PtcHNvVooLQ: Downloading MPD manifest
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. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
                ^^^^^^^^^^^^^^^
  File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\extractor\common.py", line 534, in extract
    ie_result = self._real_extract(url)
                ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\extractor\youtube.py", line 1794, in _real_extract
    'uploader_id': self._search_regex(r'/(?:channel|user)/([^/?&#]+)', owner_profile_url, 'uploader id') if owner_profile_url else None,
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\dr7mu\AppData\Roaming\Python\Python311\site-packages\youtube_dl\extractor\common.py", line 1012, in _search_regex
    raise RegexNotFoundError('Unable to extract %s' % _name)
youtube_dl.utils.RegexNotFoundError: 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. Be sure to call youtube-dl with the --verbose flag and include its complete output.

I use one script in PyCharm and it works one time out of five