#!/usr/bin/env python2.7 # https://gist.github.com/cvogt/1e46597e39bfe0e0aee8d5348123ca03 # based on https://gist.github.com/alexeygrigorev/a1bc540925054b71e1a7268e50ad55cd#file-vimeo-download-py # also see https://github.com/eMBee/vimeo-download import requests import base64 import sys from tqdm import tqdm master_json_url = sys.argv[1] print ("downloading " + master_json_url) base_url = master_json_url[:master_json_url.rfind('/', 0, -1) + 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 = 'video_%s.mp4' % video['id'] print 'saving to %s' % filename video_file = open(filename, 'wb') init_segment = 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()