Velvet Star Monitor

Standout celebrity highlights with iconic style.

news

Why is youtube-dl blocking me from downloading YouTube videos which are supposedly "innappropriate for some users"?

Writer Mia Lopez

I recently attempted to download a YouTube video using youtube-dl and it printed the following error:

[youtube] 8_Ik8elX96w: Downloading webpage
[youtube] 8_Ik8elX96w: Downloading embed webpage
[youtube] 8_Ik8elX96w: Refetching age-gated info webpage
ERROR: This video may be inappropriate for some users.

This is the url of the YouTube video I tried to download:

There is nothing inappropriate about the video. I'd like to know if there is a work-around for whatever is causing this.

8

6 Answers

Looks like youtube-dl doesn't support the latest Youtube changes in age restrictions. However, there are multiple websites that allow you to view and download such videos without logging in. Instead of youtube.com?watch=id go to for example youtubensfw.com?watch=id (you can download simply by right-clicking on the video), genyoutube.com?watch=id or ssyoutube.com?watch=id (with these two, download links are directly on the page). There are lots more of such sites. Myself I don't see the need to use youtube-dl at all when sites like this are available.

Update: currently the only way to view age-restricted videos seems to be via using the Invidious network. All other methods seem to not work anymore. The main server of the Invidious network can be accessed by replacing youtube.com by yewtu.be in the video URL. You can also use the FreeTube application, that can use Invidious servers internally. After installation, the application adds support for freetube:// type links - if you prefix the entire Youtube video link with freetube://, it will open in the application.

7

The policy issue is with YouTube, rather than with Ubuntu or the YouTube downloader. To answer the technical part of the question:

youtube-dl -u 'youtube-username' -p 'youtube-password' 

Ensure you are running the latest version.

Not ideal but it works.

6

Managed to get it to work with newest youtube-dl today with this commands below using -u -p --cookie "cookie.txt" 'youtubelink' in that order.

youtube-dl -u 'YoutubeLOGIN' -p 'App password' --cookie "youtube.com_cookies.txt" 'YOUTUBE URL LINK'


I used the plugin for chrome called Get cookies.txt and exported the txt file and since i had first age restrictions and after that HTTP errors not using both cookie and login i used both now and app password. Worked with VPN + WebRTC Blocking + HTML5 Geo blocking etc (Not sure if that matters but im a rookie when it comes to this.

First cookie file did not work at all and for some reason my command line was like this when it worked, with 2 factor login enabled.I was logged in having the video right in front me of me if that matters idk.

I didnt use 'or " other than for cookie, and mock me, i don't know why and when to use really but i learned rather use it than not. I opened the PowerShell from the folder i just extracted/downloaded the cookie txt file from and used with help from the thread creator something that worked, thanks. I'm close to buying something like 4k downloader, but it's a fight against the system we take here, ain't paying. Im happy i got the 60 fps vp9 version been trying so long. My video was blocked worldwide, private etc.

thanks community, i still don't know what im doing im copying a bit from everybody until a problem is fixed. so again if someone thinks "hes stupid" you are right i figured there must be more people like me struggling so if i can help i try.

Sherlockholmesguessing here but the age restriction is the main problem not the cookie if i have to guess.

youtube-dl -u EMAIL -p APPPASSWORD --cookie "youtube.com_cookies.txt" YOUTUBE-URL

For those still unable to make it work, despite using the file retrieved from the "Get cookies.txt" extension, because of the AttributeError: 'bool' object has no attribute 'split' error you can also try using Python 3.x with the following command (I've added the --verbose flag in case of debugging):

python3 /usr/local/bin/youtube-dl -f bestvideo+bestaudio \ --all-subs --cookies $PWD/youtube.com_cookies.txt \ "" --verbose

Make sure to do the following first:

  • Ensure the python3 command is working and actually runs a version of Python 3.x.
  • Make sure that the path to your cookies file is correct.
  • Make sure that you have the latest version of youtube-dl installed (youtube-dl --version).
  • Ensure the absolute file path for the youtube-dl binary or installation (In a UNIX-like terminal use which youtube-dl).

a ubuntu expert I chatted to mentioned yt-dlp one to me..

yt-dlp is faster and more updated than youtube-dl, also I tested it on your video and on another age restricted video, and it works, while youtube-dl(if merely doing youtube-dl url) doesn't.

user@system:~/# yt-dlp 1>a.a 2>&1
user@system:~/# cat a.a
[youtube] 8_Ik8elX96w: Downloading webpage
[youtube] 8_Ik8elX96w: Downloading android player API JSON
[youtube] 8_Ik8elX96w: Downloading tv embedded player API JSON
[youtube] 8_Ik8elX96w: Downloading web embedded client config
[youtube] 8_Ik8elX96w: Downloading player c403842a
[youtube] 8_Ik8elX96w: Downloading web embedded player API JSON
[info] 8_Ik8elX96w: Downloading 1 format(s): 22
[download] Resuming download at byte 20969472
[download] Destination: Anarchy, U.S.A. – In the Name of Civil Rights [8_Ik8elX96w].mp4
[download] 22.1% of 906.25MiB at 11.92MiB/s ETA 00:59
ERROR: Interrupted by user
user@system:~/#
and to delete the partially downloaded file.
user@system:~/# rm "Anarchy, U.S.A. – In the Name of Civil Rights [8_Ik8elX96w].mp4.part"

You could have chosen a better example by the way. This video is also age restricted but is at least a smaller video about 120MB as opposed to your almost 1GB file.

2

The solution is to pass a cookie to YouTube as part of the download process in YouTube-DL. I was able to accomplish that with the following steps.

  1. I installed the Get Cookies extension in Chrome. This extension allows users to export cookies for a site as a text file. (At this point I had to restart Chrome to make the Get Cookies extension work)

  2. I then visited YouTube.com, and while I was logged in, I right-clicked the page and clicked "Get cookies.txt"

  3. This created a youtube.com_cookies.txt file in my Downloads folder

  4. Finally I ran the following command in the Terminal to download the video:

    youtube-dl -f bestvideo+bestaudio --merge-output-format mkv --all-subs --cookies "/home/[Home folder name]/Downloads/youtube_com.txt" [YouTube URL]