Vimeo not playable in pywb due to missing resources - possible fix

Maybe same issue as mentioned here: Replay issue w/ embedded Vimeo video

When replaying a captured Vimeo video in pywb, the video does not play.

pywb replay (version 2.8.0) ReplayWeb.Page replay
Browsertrix-Crawler capture not playable playable
ArchiveWeb.Page capture not playable playable

Analyzing the error messages and source code in the browser’s dev tools revealed that some resources referenced in a <script> element (player config) were not captured — neither by browsertrix-crawler nor ArchiveWeb.Page.

After capturing these missing resources and adding them to the pywb collection, the Vimeo video became playable. This is just a full fix for vimeo videos, that were captured completly - like in example 2. For vimeo videos, that were not captured correctly - the video is playable but stops at some point due to missing video segments - like in example 1.

I am unsure whether to classify this as a capture or replay issue, as the replay in ReplayWeb.Page works even without the missing resources.

Examples

1. Captured with browsertrix-crawler (Browsertrix-Crawler 1.5.11 (with warcio.js 2.4.4)), 2025

live web: https://player.vimeo.com/video/23532969
pywb replay: https://webarchives.rhizome.org/crawl-20250407073557135/20250407073558/https://player.vimeo.com/video/23532969
fixed pywb replay (video not fully archived, but playable): https://webarchives.rhizome.org/crawl-20250407073557135_added_resources/20250407073558/https://player.vimeo.com/video/23532969

2. Captured with ArchiveWeb.Page (Webrecorder ArchiveWeb.page 0.11.3, using warcio.js 2.2.0), 2023

The same issue already appeared in a capture from January 2023, created with ArchiveWeb.Page.
pywb replay:
fixed pywb replay: https://webarchives.rhizome.org/greeknewmediashit_1702408135/https://player.vimeo.com/video/31517296?title=0&byline=0&portrait=0&app_id=122963

+ seems to be the same issue with current version (Webrecorder ArchiveWeb.page 0.14.2, using warcio.js 2.4.2)

Analysis

Visiting: https://webarchives.rhizome.org/crawl-20250407073557135/20250407073558/https://player.vimeo.com/video/23532969

Console

Error Message missing resource https://f.vimeocdn.com/p/4.40.35/js/player.js

09:55:29.808 GET
https://webarchives.rhizome.org/crawl-20250407073557135/20250407073558js_/https://f.vimeocdn.com/p/4.40.35/js/player.js
[HTTP/2 404 128ms]

Debug

The resource https://f.vimeocdn.com/p/4.40.35/js/player.js is referred to in the “player config” in a script element. It seems, that the resources weren’t captured:

The following resources are listed in the player config under requests - urls.
The first url (https://f.vimeocdn.com/p/4.40.35/js/player.js) is known to be missing.
For the rest of the urls: Some of them are in the archive, some are not.

“urls”: {
“js”: “https://f.vimeocdn.com/p/4.40.35/js/player.js”,
“js_base”: “https://f.vimeocdn.com/p/4.40.35/js”,
“js_module”: “https://f.vimeocdn.com/p/4.40.35/js/player.module.js”,
“js_vendor_module”: “https://f.vimeocdn.com/p/4.40.35/js/vendor.module.js”,
“locales_js”: {
“de-DE”: “https://f.vimeocdn.com/p/4.40.35/js/player.de-DE.js”,
“en”: “https://f.vimeocdn.com/p/4.40.35/js/player.js”,
“es”: “https://f.vimeocdn.com/p/4.40.35/js/player.es.js”,
“fr-FR”: “https://f.vimeocdn.com/p/4.40.35/js/player.fr-FR.js”,
“ja-JP”: “https://f.vimeocdn.com/p/4.40.35/js/player.ja-JP.js”,
“ko-KR”: “https://f.vimeocdn.com/p/4.40.35/js/player.ko-KR.js”,
“pt-BR”: “https://f.vimeocdn.com/p/4.40.35/js/player.pt-BR.js”,
“zh-CN”: “https://f.vimeocdn.com/p/4.40.35/js/player.zh-CN.js
},
“ambisonics_js”: “https://f.vimeocdn.com/p/external/ambisonics.min.js”,
“barebone_js”: “https://f.vimeocdn.com/p/4.40.35/js/barebone.js”,
“chromeless_js”: “https://f.vimeocdn.com/p/4.40.35/js/chromeless.js”,
“three_js”: “https://f.vimeocdn.com/p/external/three.rvimeo.min.js”,
“vuid_js”: “https://f.vimeocdn.com/js_opt/modules/utils/vuid.min.js”,
“hive_sdk”: “https://f.vimeocdn.com/p/external/hive-sdk.js”,
“hive_interceptor”: “https://f.vimeocdn.com/p/external/hive-interceptor.js”,
“proxy”: “Vimeo Player LocalStorage Proxy”,
“css”: “https://f.vimeocdn.com/p/4.40.35/css/player.css”,
“chromeless_css”: “https://f.vimeocdn.com/p/4.40.35/css/chromeless.css”,
“fresnel”: “https://arclight.vimeo.com/add/player-stats”,
“player_telemetry_url”: “https://arclight.vimeo.com/player-events”,
“telemetry_base”: “https://lensflare.vimeo.com”,
“fresnel_manifest_url”: “https://lensflare.vimeo.com/add/playback_manifest”,
“fresnel_chunk_url”: “https://lensflare.vimeo.com/add/chunk_downloads”,
“test_imp”: “https://lensflare.vimeo.com/add/player-test-impression
},

Fix

Capturing the list of Vimeo resources and adding them to the collection.
Which of the added resources from the list are making the difference in the replay was not analyzed in detail.

→ Video is playable in pywb: https://webarchives.rhizome.org/crawl-20250407073557135_added_resources/20250407073558/https://player.vimeo.com/video/23532969