Recovery story
Download Vimeo videos in 2026, when most extensions are broken
Vimeo changed its player API in October 2025. Sixty percent of Chrome video downloaders broke overnight and never recovered. Vidora is one of the few that rebuilt support from scratch. Here is the technical story, and how it works for you in 2026.
What changed in October 2025
- master.json moved behind a stricter session check. The endpoint classic downloaders fetched directly now returns 403 without the right session cookie. Extensions that fetched outside the browser context broke.
- files.dash restructured to per-CDN avc_url. The old single-URL structure became files.dash.cdns with multiple CDN entries and ampersands escaped as &. Regex-based URL extractors stopped finding anything.
- Referer enforcement on segments. Per-segment fetches now require Referer: https://player.vimeo.com/. Extensions without proper declarativeNetRequest rules get 403 on every segment.
- DRM enforcement broader. More enterprise videos opted into Widevine + FairPlay, which no Chrome extension can ever bypass (EME does not expose decryption keys).
How Vidora resolves Vimeo videos in 2026
Vidora ships a dedicated Vimeo resolver in the service worker. The content script detects every Vimeo iframe via the player.vimeo.com or vimeo.com URL pattern, extracts the video ID, and sends a RESOLVE_VIMEO message to the background. The background fetches the player config HTML, parses the inline window.playerConfig JSON, and tries two extraction paths in order.
Path one: files.progressive. When Vimeo includes a progressive MP4 array, Vidora picks every quality with a valid URL, sorted descending by height. Each becomes a downloadable card in the popup with its resolution badge. Defense-in-depth: Vidora skips entries that look like media previews (storyboards, posters) to avoid future API surprises.
Path two: files.dash. When progressive is absent, Vidora reads files.dash.cdns, picks the default CDN, unescapes the avc_url, fetches the DASH playlist JSON, and lists every video track with its height. The download flow then uses a virtual vimeo-stream URL plus the existing DASH engine to fetch video and audio segments in parallel, mux them via mp4box plus mp4-muxer, and output a single MP4 file.
Why the rebuild took 18 months
The Vimeo recovery is not a regex update. It is three engineering layers stacked together:
- declarativeNetRequest rules for Referer injection. Chrome MV3 service workers cannot forge Referer in their own fetch. Vidora maintains a pool of temporary DNR rules that activate per download and are removed afterward to stay under the 5000-rule quota.
- Offscreen document for Blob downloads. Some Vimeo segments fail in the service worker context but succeed in an offscreen DOM context. Vidora ships a managed offscreen document lifecycle that the SW can spawn on demand.
- mp4-muxer plus mp4box assembly. Vimeo DASH delivers video and audio as separate tracks. Vidora parses both via mp4box, extracts samples plus decoder config, and re-muxes via mp4-muxer for a clean MP4 output that plays in VLC, QuickTime, IINA without re-encoding.