Created
February 24, 2017 17:18
-
-
Save tayiorbeii/d78c7e4b338b031ce8090b30b395a46f to your computer and use it in GitHub Desktop.
Usage: `python vimeo_downloader.py http://...master.json optional_name.mp4` modified from https://gist.github.com/alexeygrigorev/a1bc540925054b71e1a7268e50ad55cd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import base64 | |
from tqdm import tqdm | |
import sys | |
master_json_url = sys.argv[1] | |
base_url = master_json_url[:master_json_url.rfind('/', 0, -26) + 1] | |
resp = requests.get(master_json_url) | |
content = resp.json() | |
heights = [(i, d['height']) for (i, d) in enumerate(content['video'])] | |
idx, _ = max(heights, key=lambda (_, h): h) | |
video = content['video'][idx] | |
video_base_url = base_url + video['base_url'] | |
print 'base url:', video_base_url | |
filename = sys.argv[2] if sys.argv[2] else 'video_%d.mp4' % video['id'] | |
print 'saving to %s' % filename | |
video_file = open(filename, 'wb') | |
init_segment = base64.b64decode(video['init_segment']) | |
video_file.write(init_segment) | |
for segment in tqdm(video['segments']): | |
segment_url = video_base_url + segment['url'] | |
resp = requests.get(segment_url, stream=True) | |
if resp.status_code != 200: | |
print 'not 200!' | |
print resp | |
print segment_url | |
break | |
for chunk in resp: | |
video_file.write(chunk) | |
video_file.flush() | |
video_file.close() |
How can I download Bitmovin Player videos which are embedded as XHR types of multiple-segmented files with iFrame?
http://104.199.144.5:1935/vod/smil:4219201806131300.smil/chunk_ctaudio_ridp0aa0br125000_cs58211206_w230083586_mpd.m4s
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
i have merged all gists into a repo here: https://github.com/eMBee/vimeo-download