Python youtube_dl does not allow to download age-restricted videos

Question:

I have this following code:

from youtube_dl import YoutubeDL

videos = [...]

with YoutubeDL() as ydl:
    ydl.download(videos)

And this is the error:

WARNING: unable to download video info webpage: HTTP Error 410: Gone
ERROR: Sign in to confirm your age
This video may be inappropriate for some users.
Traceback (most recent call last):
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 836, in __extract_info
    ie_result = ie.extract(url)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/extractor/common.py", line 534, in extract
    ie_result = self._real_extract(url)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/extractor/youtube.py", line 1731, in _real_extract
    raise ExtractorError(reason, expected=True)
youtube_dl.utils.ExtractorError: Sign in to confirm your age
This video may be inappropriate for some users.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/onur/PycharmProjects/youtube_video_downloader/main.py", line 53, in <module>
    ydl.download(videos)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 2068, in download
    res = self.extract_info(
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 885, in process_ie_result
    return self.extract_info(ie_result['url'],
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 847, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 933, in process_ie_result
    return self.__process_playlist(ie_result, download)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 1067, in __process_playlist
    entry_result = self.__process_iterable_entry(entry, download, extra)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 815, in wrapper
    return func(self, *args, **kwargs)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 1076, in __process_iterable_entry
    return self.process_ie_result(
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 885, in process_ie_result
    return self.extract_info(ie_result['url'],
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 808, in extract_info
    return self.__extract_info(url, ie, download, extra_info, process)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 824, in wrapper
    self.report_error(compat_str(e), e.format_traceback())
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 628, in report_error
    self.trouble(error_message, tb)
  File "/home/onur/PycharmProjects/youtube_video_downloader/venv/lib/python3.10/site-packages/youtube_dl/YoutubeDL.py", line 598, in trouble
    raise DownloadError(message, exc_info)
youtube_dl.utils.DownloadError: ERROR: Sign in to confirm your age
This video may be inappropriate for some users.

How do I programmatically sign in or avoid this error altogether? Where am I going wrong?

Asked By: oo92

||

Answers:

Use yt-dlp, which have solved the problem while youtube-dl doesn’t have, by changing

from youtube_dl import YoutubeDL

to

from yt_dlp import YoutubeDL

You can make sure that it works by testing with this YouTube video 0PJdhrenW0k

Answered By: Benjamin Loison
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.