LinksConverter logoLinksConverter
vimeotroubleshootingyt-dlp

Vimeo Downloads Broke in July 2026 — The Fix That Actually Works

Every vimeo.com link now fails with 'Unable to download macos API JSON: HTTP Error 401'. Here is what broke, what does not fix it, and the one-line URL change that does — tested on real videos.

Vimeo Downloads Broke in July 2026 — The Fix That Actually Works
L
·
6 min read

If you have tried to download anything from Vimeo since late July 2026, you have probably seen this:

ERROR: [vimeo] 1214942029: Unable to download macos API JSON:
HTTP Error 401: Unauthorized (caused by <HTTPError 401: Unauthorized>)

It looks like the video is private or gone. It is neither. The video is fine — the way tools ask Vimeo for it stopped working.

⚡ The 30-second answer

  • What broke: Vimeo revoked the OAuth tokens behind yt-dlp's default macos API client.
  • What does not fix it: --impersonate, --referer, cookies, or a proxy. We tested all of them. Since about 22 September the player URL also needs yt-dlp 2026.08.19 or newer with curl_cffi 0.16.1 or newer.
  • What does fix it: use the embed player URL — player.vimeo.com/video/<id> instead of vimeo.com/<id>.
  • Or skip it: paste the normal link into our Vimeo downloader — it rewrites the URL for you.

Update, 28 September 2026: from about 22 September the player URL started failing too, with Unable to download webpage: HTTP Error 401: Unauthorized. This time it is a Cloudflare browser check on player.vimeo.com, and it looks at the TLS fingerprint of the request, not at your IP address. What fixed it for us was yt-dlp 2026.08.19 or newer together with curl_cffi 0.16.1 or newer, which gives yt-dlp a Chrome 150 fingerprint to present. Neither one works alone: yt-dlp 2026.07.04 switches curl_cffi 0.16 off, and curl_cffi 0.15 stops at Chrome 146, which the check refuses. On our worker the pair turned 0 of 7 failing videos into 14 of 14. Some videos still refuse, because they are private, embed-only or limited to logged-in viewers, and plain vimeo.com/<id> pages still need a login. Our Vimeo downloader runs the updated pair.

What actually broke #

yt-dlp talks to Vimeo through one of four API clients: android, ios, macos and web. For anonymous downloads it defaults to macos, because that was the one client that could fetch a fresh OAuth token without an account.

Vimeo stopped issuing those tokens. The request for one now returns 401 Unauthorized, and because the token comes first, extraction dies before the video is ever requested. This was reported publicly as yt-dlp issue #17271 on 20 July 2026 and closed the same day as a duplicate.

The other three clients cannot cover for it:

⚠️ web — "The web client only works when logged-in."
android and ios — "unable to fetch new OAuth tokens and is only intended for use with previously cached tokens."

So on a clean machine, with no account, there is no working client left. That is why this hit every downloader at once rather than one tool.

What we tested that did not work #

We ran each of these against real public Vimeo videos on yt-dlp 2026.07.04, then the current stable release:

AttemptResult
Updating yt-dlpAlready on the newest release — no change
--impersonate chromeIdentical 401
--referer https://vimeo.com/Identical 401
--extractor-args "vimeo:client=web""only works when logged-in"
--extractor-args "vimeo:client=android""unable to fetch new OAuth tokens"
--extractor-args "vimeo:client=ios""unable to fetch new OAuth tokens"
Passing a cookie fileIdentical 401
Routing through a different IP addressIdentical 401

That last one matters: it rules out the usual suspect. This is not your IP being blocked or rate-limited. It fails the same way from every address we tried.

The fix: use the embed player URL #

Every Vimeo video that can be embedded on another website is also reachable at a second address:

https://vimeo.com/1214942029          →  fails with 401
https://player.vimeo.com/video/1214942029  →  works

That endpoint serves the embed configuration — the data a Vimeo player needs when it loads inside somebody else's page. It is built to answer anonymous requests, so it never depended on the token that was revoked.

We measured it #

We pulled five videos straight from Vimeo Staff Picks and ran both URL forms against each:

0 / 5worked via vimeo.com/<id>
5 / 5worked via player.vimeo.com
0flags or tricks needed

Not a partial improvement, and not luck on a couple of files — a clean flip on every video we tried, repeated on a second batch a day later with the same result.

Converting the URL yourself #

Vimeo links come in more than one shape. All of these map onto the same player address:

What you haveWhat to use
vimeo.com/123456789player.vimeo.com/video/123456789
vimeo.com/123456789?share=copyplayer.vimeo.com/video/123456789
vimeo.com/channels/staffpicks/123456789player.vimeo.com/video/123456789
vimeo.com/groups/name/videos/123456789player.vimeo.com/video/123456789
vimeo.com/123456789/abcdef0123 (unlisted)player.vimeo.com/video/123456789?h=abcdef0123
💡 The long code after the video number on an unlisted link is a privacy hash, and it is what grants access. Keep it — move it to the end as ?h= and the unlisted video still resolves. Drop it and you get a 404.

What this does not fix #

Be clear about the limit, because it saves you an hour of trying.

Some Vimeo videos are domain-restricted: the uploader allowed playback only on their own website. Those return a 401 on the player URL too, or say Cannot download embed-only video without embedding URL. Access genuinely depends on the page that embeds them, so no tool retrieves those — not this workaround, not a paid service, not a browser extension.

Password-protected videos are the same story. Vimeo checks the password before serving anything.

If a video fails on the player URL, that is the real answer rather than another thing to work around.

If you just want the file #

We patched this into our own downloader the day we found it, so you do not have to think about URL forms at all — paste the normal vimeo.com link and it rewrites internally before fetching.

🎬 Vimeo to MP4 — paste any public Vimeo link, get the file. Also available as Vimeo to MP3 if you only want the audio from a talk or interview.

Will this keep working? #

Honestly: unknown. This is a workaround for a change Vimeo made deliberately, and the embed endpoint could tighten too. The proper fix belongs upstream in yt-dlp; issue #17271 was closed as a duplicate.

Until then the player URL is the difference between every Vimeo download failing and every public one working — which, when you are staring at a 401 on a video you can watch in another tab, is the difference that matters.

Frequently asked questions

Does updating yt-dlp fix the Vimeo 401 error?
Not on its own. Plain vimeo.com video pages still need a login. Since about 22 September the player URL also needs yt-dlp 2026.08.19 or newer together with curl_cffi 0.16.1 or newer; neither works alone.
Will --impersonate or --referer get around it?
No. We tried --impersonate chrome and a Vimeo referer header, and both returned the identical 401. The failure happens during OAuth token fetching, before any page request.
Can I just pick a different Vimeo client?
The only valid values are android, ios, macos and web. The web client replies that it only works when logged-in, and android and ios both say they are unable to fetch new OAuth tokens and work only with previously cached ones. That leaves no anonymous client, which is exactly why the embed URL is the workaround.
Do cookies help?
Not for anonymous extraction. We tested with a cookie file and got the same 401. Logging in with real Vimeo credentials is a separate path with its own account risk, and it is not needed if the video is public.
Why does the player URL still work?
player.vimeo.com serves the embed configuration that powers Vimeo videos embedded on other websites. That endpoint is designed to answer anonymous requests, so it never needed the OAuth token that was revoked.
Some videos still fail even with the player URL. Why?
Those are domain-restricted or embed-only videos — the uploader limited playback to specific websites. They return a 401 on the player URL too, or say Cannot download embed-only video without embedding URL. No tool can retrieve those, because access genuinely depends on the page that embeds them.
Try it yourself

Free file converters & video downloaders

No sign-up, no watermark, no email. Convert and download files online, often within a minute.

Browse all converters

Keep reading