upload_video.py 720 B

1234567891011121314151617
  1. from apiclient.http import MediaFileUpload
  2. def upload(youtube_resource, video_path, body, chunksize=1024*1024, progress_callback=None):
  3. body_keys = ",".join(body.keys())
  4. media = MediaFileUpload(video_path, chunksize=chunksize, resumable=True)
  5. videos = youtube_resource.videos()
  6. request = videos.insert(part=body_keys, body=body, media_body=media)
  7. while 1:
  8. status, response = request.next_chunk()
  9. if response:
  10. if "id" in response:
  11. return response['id']
  12. else:
  13. raise KeyError("Response has no 'id' field")
  14. elif status and progress_callback:
  15. progress_callback(status.total_size, status.resumable_progress)