It works with on-demand videos that have the subtitles/captions included (CC symbol). You need to be registered in Vimeo in order to retrieve subtitles.
- Open Chrome Developer Tools
- Start playing the Vimeo video
- Look for any request named
segment-XX.m4s
(where XX is a number) - Select the request and inspect the request payload, which is something in the form:
{"referrer":"https://vimeo.com/ondemand/followingseas","embed":false,"context":"Vimeo\\Controller\\OnDemandController.main","autoplay":0,"loop":0,"id":242740761,"vodId":128898,"vodSaleId":5911177,"sessionTime":22.604,"videoShape":0,"spatialPlayback":0,"userId":"xxxxxxxx","userAccountType":"basic","userIsMod":0,"ownerId":18500210,"ownerAccountType":"pro","privacy":"ptv","rating":6,"type":"html","videoFileId":"872163031","delivery":"dash","profileId":175,"quality":"sd","duration":5116.501,"seconds":536.483,"isLive":0,"playbackRate":1,"signature":"e8116054b8ca3f524be3091135c93cb5","session":"xxxxxxxxxxxxxxxxxxxxxxxxxxx","time":1535639774,"expires":20468}
- Copy the value of the field called
id
(i.e."id":242740761
) - Go to Vimeo API Playground: https://developer.vimeo.com/api/playground/videos/%7Bvideo_id%7D/texttracks (note that you need to be registered in Vimeo to do some API calls)
- In the Playground form, replace
{video_id}
for your video ID (i.e.242740761
) - Check the checkbox that says
Authenticate this call as John Doe
- Push the
Make call
button - If everything works as expected, the successful HTTP request will be outputed. Something like the following:
HTTP/1.1 200
Content-Type: application/vnd.vimeo.video.texttrack+json
Host: api.vimeo.com
{
"total": 1,
"data": [
{
"uri": "/videos/242740761/texttracks/5795943",
"active": true,
"type": "captions",
"language": "en",
"link": "https://captions.cloud.vimeo.com/captions/5795943.vtt?expires=1535648880&sig=357c4574e58e805af3b5ef2df4cd075bdc1c1ba8&download=FollowingSeas+CC.srt.vtt",
"link_expires_time": 1535648880,
"hls_link": "https://captions.cloud.vimeo.com/captions/5795943.vtt?expires=1535648880&sig=357c4574e58e805af3b5ef2df4cd075bdc1c1ba8&download=FollowingSeas+CC.srt.vtt&hls=1",
"hls_link_expires_time": 1535648880,
"name": "FollowingSeas CC.srt"
}
]
}
- Copy the value of the
link
attribute (i.e "https://captions.cloud.vimeo.com/captions/5795943.vtt?expires=1535648880&sig=357c4574e58e805af3b5ef2df4cd075bdc1c1ba8&download=FollowingSeas+CC.srt.vtt") - Paste it in your browser and the subtitles will start downloading :)
Updated:
Download subtitles/text tracks of an On-Demand Vimeo video
It works even with rented on-demand videos that have the subtitles/ captions included (CC symbol). You need to be registered in Vimeo in order to retrieve subtitles.
Steps
Open Google Chrome
Might not be necessary, but it did not hurt, either: go to chrome://extensions/ and disable all Extensions that could interfere with Vimeo, like any Vimeo Extensions and Video Downloaders
Go to the web page of your Vimeo video https://vimeo.com/ondemand/yourRentedVideo, but DO NOT start playing it!
Might not be necessary, but it did not hurt, either: in the bottom right of your video, click onto the grey CC button and choose a subtitle (which one does not seem to matter) so it's blue now
Open Chrome Developer Tools: View, Developer, Developer Tools
Click onto the 'Network' tab
In the Dev Tools side bar, click onto the filename beginning with "player-stats?session-id=.." (in my test I only see 3 filenames, the mentioned file in the middle, but that might differ from vid to vid)
right of the side bar, make sure the 'Headers' tab is active
scroll all the way down until you see "Request Payload"
expand "autoplay", then expand the number beneath it (in my test it was a 0)
look for the line with "clip_id" (in my test line 16). The number following it is your video_id !!
(alternatively you can click onto "view source" right of "Request Payload", copy the entire block, paste it into a text editor and search for "clip_id" to get the clip_id number)
Copy the value of the field called "clip_id". i.e. 123456789 (so far it has always been a 9 digit number)
Log into Vimeo: https://vimeo.com/log_in
Create an App: https://developer.vimeo.com/apps/new?source=topnav
https://developer.vimeo.com/api/reference/videos#get_text_tracks
(NOTE: ** You MUST be registered in Vimeo to do the following API calls! **)
In the top right, click onto the blue "Try it out" button
In the top right, where it reads "Test your app", choose the VidID app you just created
Under "Path parameters", as video_id *, enter the clip_id into the form
In my test it did not make a difference if the checkbox that says "Authenticate this call as [your Name]" is checked or not
Push the blue "Make call" button
If everything works as expected, the successful HTTP request will be outputed. Something like the following:
Copy the value of the
link
attribute (i.e "https://captions.cloud.vimeo.com/captions/5795943.vtt?expires=1535648880&sig=357c4574e58e805af3b5ef2df4cd075bdc1c1ba8&download=FollowingSeas+CC.srt.vtt")Paste it in your browser and the subtitle file will start downloading as .srt.vtt
Remove the .vtt so the extension is .srt, because it already is a .srt file
The downloaded .srt file is not structured 100% correctly. To have it's language displayed correctly in VLC, open it in
https://www.nikse.dk/subtitleedit/online#