Repository: youtube-dl
Issue: [Vimeo] HTTP Error 406: Not Acceptable when downloading video
Labels: broken-IE

## Checklist

<!--
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
- First of, make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.12.17. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
- Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
- Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
- Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
- Finally, put x into all relevant boxes (like this [x])
-->

- [x] I'm reporting a broken site support
- [x] I've verified that I'm running youtube-dl version **2021.12.17** (Also tried latest git)
- [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 issues including closed ones


## Verbose log

```
$ youtube-dl -v -x 'https://vimeo.com/9010456'
[debug] System config: []
[debug] User config: ['--socket-timeout=2']
[debug] Custom config: []
[debug] Command-line args: ['-v', '-x', 'https://vimeo.com/9010456']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.12.17
[debug] Git HEAD: a70dc03d2
[debug] Python 3.12.7 (CPython x86_64 64bit) - Linux-6.11.0-9-generic-x86_64-with-glibc2.40 - OpenSSL 3.3.1 4 Jun 2024 - glibc 2.40
[debug] exe versions: ffmpeg 7.0.2, ffprobe 7.0.2, rtmpdump 2.4
[debug] Proxy map: {}
[vimeo] 9010456: Downloading webpage
[vimeo] 9010456: Downloading JSON metadata
[vimeo] 9010456: Downloading JSON metadata
ERROR: Unable to download JSON metadata: HTTP Error 406: Not Acceptable (caused by <HTTPError 406: 'Not Acceptable'>); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; see  https://github.com/ytdl-org/youtube-dl/#user-content-installation  on how to update. Be sure to call youtube-dl with the --verbose option and include the complete output.
  File "/home/ori/devel/youtube-dl/youtube_dl/extractor/common.py", line 679, in _request_webpage
    return self._downloader.urlopen(url_or_request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ori/devel/youtube-dl/youtube_dl/YoutubeDL.py", line 2496, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/urllib/request.py", line 521, in open
    response = meth(req, response)
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/urllib/request.py", line 630, in http_response
    response = self.parent.error(
               ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/urllib/request.py", line 559, in error
    return self._call_chain(*args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/urllib/request.py", line 492, in _call_chain
    result = func(*args)
             ^^^^^^^^^^^
  File "/usr/lib/python3.12/urllib/request.py", line 639, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
```


## Description

I think Vimeo added some protections, and youtube-dl needs to adapt. For a while it returned 403 Forbidden and 429 Too Many Requests, and now it's returning 406.

I don't think it's related to #26421 from 2020, as, IIRC, I managed to download from Vimeo between then and now.

`yt-dlp` successfully downloaded the video, and they have made changes to the Vimeo extractor in the past year, particularly adding browser impersonation. (See https://github.com/yt-dlp/yt-dlp/issues/10325)