Open levis-ineptias opened 4 months ago
The only way to use yt-dlp on BOTH (this a recent blow to yt-dlp by vimeo) embeded and non-embeded videos on vimeo is to get access to the m3u8 playlist on the api end of vimeo and use it with yt-dlp. The current blockages implemented by vimeo are: 1) Blocking api access to requests that do not come from a web-browser session (401/429...all the mayhem) 2) Implementing a heartbeat service that runs inside the browser session of the playing video (It may be possible that it is not mandatory to have the video continuously playing in browser until the yt-dlp download is done but at least to start it at least for 1 second and then close the browser window) 3) Monitoring number of requests and timeouts between requests per each IP and blocking them when the threshold is overpassed
So...a lot of tasks to the devs here, keeping the fingers crossed...:)
The only way to use yt-dlp on BOTH (this a recent blow to yt-dlp by vimeo) embeded and non-embeded videos on vimeo is to get access to the m3u8 playlist on the api end of vimeo and use it with yt-dlp. The current blockages implemented by vimeo are:
1. Blocking api access to requests that do not come from a web-browser session (401/429...all the mayhem) 2. Implementing a heartbeat service that runs inside the browser session of the playing video (It may be possible that it is not mandatory to have the video continuously playing in browser until the yt-dlp download is done but at least to start it at least for 1 second and then close the browser window) 3. Monitoring num ber of requests and timeouts between requests per each IP and blocking them when the threshold is overpassed
So...a lot of tasks to the devs here, keeping the fingers crossed...:)
When I access a page with an embedded video player, IDM (Internet Download Manager) allows me to download the video. Maybe this can help in understanding how to download videos or generate valid link.
When the page loads, it shows this iframe:
<iframe src="https://player.vimeo.com/video/833019403?badge=0&autopause=0&player_id=0&app_id=58479" frameborder="0" allow="autoplay; fullscreen; setPlaybackRate; picture-in-picture" allowfullscreen="" title="Aula 1_Adjetivos, Pronomes e o Verbo “to be”_VIDEO" name="fitvid0" __idm_id__="434177"></iframe>
IDM generate this link:
https://vod-adaptive-ak.vimeocdn.com/exp=1723917977~acl=%2Fe767af00-ed04-4d0a-ab3c-ab34f681dc8b%2F%2A~hmac=0adee31c895b8d5d1d696787a5e3995e4c07563b6a0f4f0f553c5e407f4e05ac/e767af00-ed04-4d0a-ab3c-ab34f681dc8b/v2/playlist/av/primary/playlist.json?pathsig=8c953e4f~bCMtcQ7W4aDN6d7_m3ZypGLhJoC6cStGlHhB75J3PeU&qsr=1&rh=1jLyAG
And show this as reference:
https://player.vimeo.com/video/833019403?badge=0&autopause=0&player_id=0&app_id=58479
And the downloads works normally on IDM:
Video file is ok:
This is an example of a restricted video, if I access the URL directly it doesn't work:
@rafaelfndev It sounds like you're not using the --referer flag in yt-dlp when downloading a private video. Personally I cannot download a private video without this flag.
IDM extracts the direct download link from the website data that your browser has already loaded, so it is not really relevant to solving any yt-dlp problems
IDM extracts the direct download link from the website data that your browser has already loaded, so it is not really relevant to solving any yt-dlp problems
Absolutely correct, the same you can achieve with any browser plugin that grabs vimeo videos, it will extract the playlist information from the browser session and then one can pipe the playlist to yt-dlp. For a while I was thinking that the only solution might be to have yt-dlp start a headless browser in the same folder with the yt-dlp executable and grab the playlist and then use it furthermore for download...a big programming hassle anyway...
@rafaelfndev It sounds like you're not using the --referer flag in yt-dlp when downloading a private video. Personally I cannot download a private video without this flag.
It worked!
yt-dlp --referer https://example.com/allowed-website-referer https://player.vimeo.com/video/833019403
On closer inspection, it was a noob mistake 🤦♀️. I'm using the lib node-website-scraper to clone entire website, and I do several validations and pass several parameters to node-website-scraper
before calling yt-dlp
. So after I saved the entire website, I forgot that the parameters passed to node-website-scraper
are not passed to yt-dlp
(my big mistake), so it didn't work.
Thanks for shedding some light on this.
This guy managed to fix the issue: https://github.com/limontec/vm-video-downloader Any chance to get it implemented on yt-dlp?
@ela738362 Their script just forces the user to do the extraction manually and then calls youtube-dl (the software yt-dlp was forked off). You can do the same thing with yt-dlp already. The problem is the automatic extraction due to Vimeo implementing aggressive anti bot measures.
Hi,
New user. Apologies if I posted incorrectly. Just wanted to ask to 2x-check...
I used this command on Windows to check for the source format on a video known to have it available:
yt-dlp https://vimeo.com/931836736 --list-formats --impersonate="Chrome-110" --cookies
@asiaminor2k You shouldn't need to pass --impersonate
at all. If your issue is about the source/original format, then that is not directly related to this issue and you should open a new one with complete verbose output
@bashonly Understood. Yes, the issue is about the source/original format. I thought maybe the impersonation command was incorrect so I asked here. I will open a new issue for my inquiry. Thanks.
DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE
Checklist
Region
Australia
Provide a description that is worded well enough to be understood
I am downloading videos from a page that embeds Vimeo videos. I was able to download successfully until a few minutes ago. Now, when I use the same command that I have been using all along, I get the error:
Has my IP been blocked by Vimeo? I have downloaded about 10-15 videos in the last 48 hours. I am able to normally access the webpage that embeds these videos on Chrome, and play these videos.
I would really appreciate any help or advice as I really want to download these videos. Thank you!
Provide verbose output that clearly demonstrates the problem
yt-dlp -vU <your command line>
)'verbose': True
toYoutubeDL
params instead[debug] Command-line config
) and insert it belowComplete Verbose Output