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)
Links to this issue
Commits related to this issue
- [YouTube] Avoid crash if uploader_id extraction fails See #31530. — committed to ytdl-org/youtube-dl by dirkf a year ago
- [extractor/youtube] Fix `uploader_id` extraction Closes #6247 Authored by: bashonly — committed to yt-dlp/yt-dlp by bashonly a year ago
- change from youtube_dl to yt_dlp due to issue youtube_dl 2021 latest version got issue https://github.com/ytdl-org/youtube-dl/issues/31530 it's now replaced with yt_dlp latest commit to 2023/2/17 — committed to Fortex365/Barmaid by Fortex365 a year ago
- :bug: use yt-dlp instead of youtube-dl see: https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to tktcorporation/discord-tts-bot by tktcorporation a year ago
- 🐛 use yt-dlp instead of youtube-dl see: https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to tktcorporation/discord-tts-bot by tktcorporation a year ago
- 🐛 use yt-dlp instead of youtube-dl see: https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to tktcorporation/discord-tts-bot by tktcorporation a year ago
- 🐛 use yt-dlp instead of youtube-dl see: https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to tktcorporation/discord-tts-bot by tktcorporation a year ago
- Upgrade youtube-dl-exec This now uses yt-dlp, and the latest version which fixes the recent download bug described here https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to rcy/mixchat by rcy a year ago
- Upgrade youtube-dl-exec This now uses yt-dlp, and the latest version which fixes the recent download bug described here https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to rcy/mixchat by rcy a year ago
- Upgrade youtube-dl-exec This now uses yt-dlp, and the latest version which fixes the recent download bug described here https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to rcy/mixchat by rcy a year ago
- [YouTube] Support @owner format in uploader_id etc * implement https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435734719 * update affected tests * misc clean-ups — committed to dirkf/youtube-dl by dirkf a year ago
- [YouTube] Support @owner format in uploader_id etc * implement https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435734719 * update affected tests * misc clean-ups — committed to ytdl-org/youtube-dl by dirkf a year ago
- Switched to yt-dlp temporarily https://github.com/ytdl-org/youtube-dl/issues/31530 - switched to using yt-dlp - refactored object names in object.py - added retries if downloading source fails, defaul... — committed to Poleric/Typhen-Furret-Bot by Poleric a year ago
- [YouTube] Avoid crash if uploader_id extraction fails See #31530. — committed to alxlive/youtube-dl by dirkf a year ago
- [YouTube] Support @owner format in uploader_id etc * implement https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1435734719 * update affected tests * misc clean-ups — committed to alxlive/youtube-dl by dirkf a year ago
- fix: use yt-dlp instead of youtube-dl Due to changes in the metadata served by YouTube, youtube-dl was no longer able to download YouTube videos. The issue for youtube-dl remains open as of today (ht... — committed to pedroclobo/discord-bot by pedroclobo a year ago
- fix: use yt-dlp instead of youtube-dl Due to changes in the metadata served by YouTube, youtube-dl was no longer able to download YouTube videos. The issue for youtube-dl remains open as of today (ht... — committed to pedroclobo/discord-bot by pedroclobo a year ago
- Switch to yt-dlp https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to jvlmdr/audioset-dl by jvlmdr a year ago
- https://github.com/ytdl-org/youtube-dl/issues/31530 — committed to gnawhleinad/youtube by gnawhleinad a year ago
- added .bash_aliases * from https://github.com/kkarhan/misc-stuff * * see https://github.com/kkarhan/misc-stuff/commit/b77ab0106b1220f1a18600b523da5febfdaeaf2e * changed function mp3dl() to use yt-dlp ... — committed to kkarhan/misc-scripts by kkarhan a year ago
I’m having the same issue here. Using youtube-dl version 2021.12.17
It seems that youtube might have changed something internally.
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: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) orpython3-pip
.In any pip commands it’s recommended to use
python -m pip
instead of justpip
, wherepython
is the name of the Python that you want or expect to run yt-dl, saypython3.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.
Already fixed in yt-dlp. https://github.com/yt-dlp/yt-dlp/issues/6247 https://github.com/yt-dlp/yt-dlp/commit/149eb0bbf34fa8fdf8d1e2aa28e17479d099e26b
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: 😀️
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:
[Update] To quote @nicolaasjan:
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 extractuploader_id
Good to know, though I was hoping that people using
brew
would know how to use it, this not being a Homebrew support forum.This worked for me too! I used a virtualenv to help make sure the from-source install wouldn’t get mixed up.
Broken version
Working Version
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
ERROR
, notWARNING
); make sure you are updating the right yt-dl; see the previous point;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?
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:
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.
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
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,
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:
pip
command unless you installpython-pip
(orpython3-pip
)python -m pip ...
where, in this case,python
should have beenpython
(the Python 2 relative to which apt installed yt-dl) and notpython3
– I’ve clarified the recommendation/usr/bin/youtube-dl
, but we haven’t been shown the result ofwhich youtube-dl
) there is a legacy executable scriptyoutube-dl
that invokes the Py 2.7 moduleThe 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:Or, as suggested many times:
@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.
… 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:
New issue
button)Broken site support
, in this case)they mechanically tick that, without realising what it speaks of… 😠
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… 👎This has already happened for the “downstream” project,
yt-dlp
; foryoutube-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 whereuploader_id
fails to be extracted by the pre-existing RegExp code…Working in git master:
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…
Should a new release be made? Currently the latest release is https://github.com/ytdl-org/youtube-dl/releases/tag/2021.12.17 See https://github.com/ytdl-org/youtube-dl/releases
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:
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
thenbrew install --HEAD youtube-dl
That solved my issue
@dirkf:
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?
See Issue #31585.
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 …).
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”.
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.
The Description link you quote in your message has all the information, please read it closely.
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!!
this worked for me
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.
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.
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,
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:
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: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, egcat downloaded_file | braced_script > updated_file
(or create a symlink on your$PATH
namedpython
to your Python)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 andyoutube-dl-2021.2.4
gives the errorUnable to extract uploader id
. * edit was hereall tests were run in python using some basic code in a venv
I’m using
python -m pip install youtube-dl==2021.1.24.1
as a work-around for now.That’s a
WARNING
, not anERROR
, 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
:In this page the
@...
value appears here:And here, but this is just a navigation link:
And in the
ytInitialPlayerResponse
:And in the
ytInitialData
, hidden in metadata attached tovideoSecondaryInfoRenderer.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 inAnd in the
ytInitialPlayerResponse
To summarise:
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:In the page that is now being served:
Philipp Hagemeister
appears whereAudio Visual Clips
appeared in3h5-QPbKoVg
phihag
(apart from Philipp’s email address)/user/phihag
eitherUCLqxVugv74EIW3VWh2NOa3Q
appears whereUC9AY3VP-VqMJh_Uj_1BbSPA
appeared in3h5-QPbKoVg
/channel/...
(but the tested value is currently created from thechannel_id
and not extracted)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 valuechannel
is the sameuploader_id
becomes the @… valuechannel_id
ischannelId
uploader_url
is the author URL with /@…channel_url
is/channel/{channel_id}
at least while that is valid.You could use the daily build from here. Or move to yt-dlp.
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.
Force reinstallation to get the fix:
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 on2021.12.17
? Could not find any pointers in the issues as to why that is.Main issue being, no
pip
norbrew
package seems to exist that provides a current version with a working YouTube download.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 commandpip 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
andpip uninstall
then reinstalled withThe 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.
If I understand the script, you’ve implemented https://github.com/ytdl-org/youtube-dl/commit/2dd6c6edd8e0fc5e45865b8e6d865e35147de772 as a patch. This should prevent the crash, while not returning the affected metadata: see https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1436130288.
See also https://github.com/ytdl-org/youtube-dl/issues/31585#issuecomment-1475042434.
And @jannisberry.
… 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:
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 😉 …Experiencing this as well. Is a fix planned to arrive at a
brew
-ableyoutube-dl
?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.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
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.
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 ?
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:
(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.
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
@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.
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
True, in that case I would then suggest disabling interactions from new GitHub users.
Won’t stop all of this, but should help.
Pinning this specific issue would probably help reduce the duplicates (a little).
“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…
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 todownstream
, because tagged releases and sought-for binaries are already available - but certain older environments are not compatible withdownstream
) …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
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 ofyt-dlp
available onpip
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.
Safety fix in https://github.com/ytdl-org/youtube-dl/commit/2dd6c6edd8e0fc5e45865b8e6d865e35147de772, pending resolution of https://github.com/ytdl-org/youtube-dl/issues/31530#issuecomment-1434463781.
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 thechannel_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 theuploader_id
. (The yt-dlp regex has been modified to include the@
from the handle URL in theuploader_id
, in order to be able to differentiate it from the/user/
-typeuploader_id
)… Some 5-6 hours ago,
git master
(snapshotgit-20230214-gdd9aa74
) was hit-and-miss, in that one invocation ofyt-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):
EDIT:
“In space, no one can hear you scream.”
Move on, folks. Take a hint.
Anyone got a solution for this?
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
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; " ?
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:
although it is a binary release, just adding
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…
Put your glasses on FFS:
Also, please:
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:
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 usepython -m pip
instead ofpip
, wherepython
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 namedpython
and not justpython3
.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.
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.
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
Then try again
Thanks @geoidesic that worked like a charm
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
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:
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
: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
...
withyoutube-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.
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:
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
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 theClosed
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 :
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.
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! 🙏
Fixed the issue for me.
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
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.
Are you sure you’re not just seeing the
WARNING
that remains in the patched version to let you know that theuploader_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…”
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
Thanks.
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.
How misleading is that?
Also @Matthew0x.
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.
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.
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.
… 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…
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:
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.
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.
It must be, because that’s the first line of the 2nd paragraph of the Description.
See FAQ.
From a duplicate issue:
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.
Feel free to help triage the open, mostly historical, issues, mostly to do with changes in website structure.
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).
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:On 2/27/23 17:56, dirkf wrote:
So far
youtube-dl -U
says I am on the latest😢
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 theconsole_scripts
group of theyoutube-dl==2021.12.17
package: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.
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
I don’t doubt it’s a user error, just can’t see what I’m doing wrong lol
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:
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 didfrom then on it worked.
Tried again, pip uninstall . And after install
would point to /usr/bin After
everything was okay, and
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.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?
You could have used the actual commit from yt-dl.
The final fix will be similar to this:
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.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).
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
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.
Current test version (private) on a video from that channel:
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 invokeyoutube-dl
. With the patched nightly build you would presumably overwrite the old one anywayThe nightly build has an updated version date and a disclaimer like this
while a pip version updated from the repo can be identified by an additional line like this
@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.
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.
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
tofatal=False
Not soon enough to avoid the update methods already documented, which is why they were.
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.
In yt-dlp we’re looking at changing it to something similar:
channel
anduploader
are the same (current value ofchannel
) -channel_id
is only the channel UCIDchannel_url
is only the UCID channel urluploader_id
is only the handle including the@
uploader_url
is only the handle urlError remains after running youtube-dl -U: youtube-dl is up-to-date (2021.12.17) - Has this issue been fixed or am I misunderstanding?
Dude – you the bomb! Thanks and the patch (the .exe version) has been successful on my yt download. Thanks again,…
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.
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%
- theyt-dlp
way 😜 …Navigate in your browser to: https://github.com/ytdl-org/youtube-dl
Locate and expand the green
<> Code
buttonDownload 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 haswrite
privileges…Open the extracted folder (named
ytdl-org-youtube-dl-2dd6c6e
); inside it, create ayoutube-dl.cmd
file with below content:The lot should look like below:
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:
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.
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.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.
It will until you take one of the actions mentioned in #31535. Or if YT rolls back the new page structure.
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.
channel_id
is still being extracted just fine. You could easily make theuploader_id
value a duplicate of thechannel_id
if you want. But that is not what the code was doing before, and why ignore the handle?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
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
I use one script in PyCharm and it works one time out of five