Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python直接从url下载视频?_Python_Video - Fatal编程技术网

如何使用python直接从url下载视频?

如何使用python直接从url下载视频?,python,video,Python,Video,我是python新手,我想从给定的URL下载视频。所以 到目前为止,我已经听说了urllib、urllib2和请求模块,它们可以帮助从URL下载视频,但当我尝试它们时,我显然得到了所有关于这些模块的数据 页面,我不知道我得到了什么,甚至不知道视频是否在那里,因为输出文件的大小通常是50-170 KB,而视频通常远不止这些。我将发布我的两个代码,用于下载视频,以便您可以告诉我他们是否有任何问题。如果他们没问题,你能告诉我如何把视频和我得到的分开吗?或者视频是否在那里 一, 二, 这是因为您必须在.

我是python新手,我想从给定的URL下载视频。所以 到目前为止,我已经听说了
urllib
urllib2
请求
模块,它们可以帮助从URL下载视频,但当我尝试它们时,我显然得到了所有关于这些模块的数据 页面,我不知道我得到了什么,甚至不知道视频是否在那里,因为输出文件的大小通常是50-170 KB,而视频通常远不止这些。我将发布我的两个代码,用于下载视频,以便您可以告诉我他们是否有任何问题。如果他们没问题,你能告诉我如何把视频和我得到的分开吗?或者视频是否在那里

一,

二,


这是因为您必须在.mp4中有一个url。如果您没有,请求将处理并下载您在输入YouTube url时看到的页面


您可以尝试其他模块,如youtube dl(),或者您可以尝试(我不知道这是否可行)刮取youtube url页面的数据以提取视频的url。

您可以尝试使用youtube dl模块,谢谢,但我想从任何网站下载视频youtube dl与许多网站()兼容。如果没有youtube dl,您需要解析您访问的每个站点以获得正确的视频url。然后可以使用python请求或urllib2对其进行dll
import requests

def download_file(url):
 local_filename = url.split('/')[-1]

 r = requests.get(url, stream=True)
 with open("D://"+local_filename, 'wb') as f:
    for chunk in r.iter_content(chunk_size=1024):
        if chunk: 
            f.write(chunk)

earl = "https://www.youtube.com/watch?v=DBYjZTdrJlA"
download_file(earl)
 import urllib2
 import os


 earl="https://www.youtube.com/watch?v=DBYjZTdrJlA"
 y= True
 try: response=urllib2.urlopen(earl)
 except urllib2.HTTPError:
  print "oopsy, website wont allow it"
  y=False


 def downloader(url):
   response=urllib2.urlopen(url)
   info = response.read()
   print info
   fx= open(os.path.join("D://", "video.mp4"),'wb')
   for line in info:
     fx.write(line)
   fx.close()
   print "done"

  if(y):
  downloader(earl)