2016-12-01 4 views
0

Я пытаюсь загрузить видео с youtube.com и сохранить его в файл. Думал, что могу сделать это с питонами requests.Как получить данные с сайта с py-requets?

Вот мой маленький код:

import sys 
import requests 

def download_file (url): 
    local_filename = url.split('/')[-1] 
    r = requests.get(url, stream = True) 

    with open(local_filename, 'wb') as f: 
     for chunk in r.iter_content(chunk_size=1024): 
       f.write(chunk) 

def main (): 
    url = 'https://www.youtube.com/watch?v=q6UJcLyYJ14' 
    download_file(url) 

if __name__ == "__main__": 
    main() 

Моя надежда, что эти данные будут транслироваться в файл. Но это не так. Я просто получаю html-код в файл, а затем программа заканчивается.

Что я делаю неправильно?

Спасибо за любую помощь в этом.

ответ

0

Проблема заключается в том, что видеоролики youtube не являются статическими файлами на веб-url, которые у вас есть. Если вы проверите код html, вы увидите, что src видео не является той страницей, что у вас есть. Даже если бы вы заменили url на «src», я не думаю, что youtube позволит вам загружать видео так, как вы хотите.

<video tabindex="-1" class="video-stream html5-main-video" 
     style="width: 640px; height: 360px; left: 0px; 
     top: 0px; opacity: 1;" src="blob:https://www.youtube.com/e779f2eb- 
     b153-4022-a888-1b9b34b9dfa8"> 
</video> 
+0

спасибо. Но должен быть способ. Так как там много youtube & co downloaders. –

+1

Да, но многие из них работают совершенно по-другому, чем пытаться напрямую загрузить видео. Прочитайте это сообщение: http://superuser.com/questions/773719/how-do-all-of-these-save-video-from-youtube-services-work – Navidad20