Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[VIMEO] Downloading private showcase of private videos fails with HTTP Error 401 #24338

Closed
coxfuture opened this issue Mar 13, 2020 · 1 comment

Comments

@coxfuture
Copy link

coxfuture commented Mar 13, 2020

Checklist

  • [ x] I'm reporting a broken site support issue
  • [ x] I've verified that I'm running youtube-dl version 2020.03.08
  • [ x] I've checked that all provided URLs are alive and playable in a browser
  • [ x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
  • [x ] I've searched the bugtracker for similar bug reports including closed ones
  • [ x] I've read bugs section in FAQ

Verbose log

youtube-dl -v --video-password XXXX https://vimeo.com/showcase/XXXXX
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'--video-password', u'PRIVATE', u'https://vimeo.com/showcase/XXXXXXX']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2020.03.08
[debug] Python version 2.7.17 (CPython) - Linux-5.3.0-40-generic-x86_64-with-Ubuntu-19.10-eoan
[debug] exe versions: ffmpeg 4.1.4-1build2, ffprobe 4.1.4-1build2, phantomjs 2.1.1, rtmpdump 2.4
[debug] Proxy map: {}
[vimeo:album] 5895477: Downloading webpage
[vimeo:album] 5895477: Downloading JSON metadata
[vimeo:album] 5895477: Verifying the password
[download] Downloading playlist: XXXXXXX
[vimeo:album] 5895477: Downloading page 1
[vimeo:album] playlist XXXXX: Downloading 40 videos
[download] Downloading video 1 of 40
[vimeo] 327404414: Downloading webpage
[vimeo] 327404414: Extracting information
[vimeo] 327404414: Downloading JSON metadata
[vimeo] 327404414: Verifying the password
ERROR: Unable to download JSON metadata: HTTP Error 401: Unauthorized (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 627, in _request_webpage
    return self._downloader.urlopen(url_or_request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 2238, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.7/urllib2.py", line 435, in open
    response = meth(req, response)
  File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.7/urllib2.py", line 473, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)


Description

This showcase of videos is private, and each video (when viewed from the direct URL) has its own password, but can be viewed within the album without the unique password.

For example, going to the album and clicking on a video takes you to:

https://vimeo.com/showcase/XXXXXXX/video/YYYYYYY

and the video does not require authentication.

But, removing the /showcase/XXXXXXX/video and going to:

https://vimeo.com/YYYYYYY

Must prompt for the unique password for the video, causing 401 unauthorized.

I imagine this is because youtube-dl parses out the main video URL instead of the URL for the video within the showcase, as seen in 12ee431 .

url = 'https://vimeo.com/' + video_id
@coxfuture
Copy link
Author

Update: temporarily fixed by changing the lines referenced in: 12ee431

        elif is_player:
            url = 'https://player.vimeo.com/video/' + video_id
        elif any(p in url for p in ('play_redirect_hls', 'moogaloop.swf', '/album/')):
            url = 'https://vimeo.com/' + video_id
        elif any(p in url for p in ('/showcase/')):
            url = 'https://vimeo.com/showcase/XXXXXX/video/' + video_id
            print(url)

I hardcoded it because it doesn't seem like there's an easy way to get the album_id into VimeoIE() and I suck at python.

It should look like:

        elif is_player:
            url = 'https://player.vimeo.com/video/' + video_id
        elif any(p in url for p in ('play_redirect_hls', 'moogaloop.swf', '/album/')):
            url = 'https://vimeo.com/' + video_id
        elif any(p in url for p in ('/showcase/')):
            url = 'https://vimeo.com/showcase/' + album_id +  '/video/' + video_id
            print(url)

but again, I suck at programming.

Hope this makes the dev's lives easier.

@coxfuture coxfuture changed the title [VIMEO] Downloading showcase of private videos fails with HTTP Error 401 [VIMEO] Downloading private showcase of private videos fails with HTTP Error 401 Mar 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants