从Python中的URL下载视频

2024-05-13 20:26:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用下面的Python代码下载一个视频。

import urllib
dwn_link = 'https://class.coursera.org/textanalytics-001/lecture/download.mp4?lecture_id=73'

file_name = 'trial_video.mp4' 
urllib.retrieve(dwn_link, file_name)

但此代码只下载382kb,视频打开时出错。

有什么帮助吗?

编辑:我可以使用他们的下载链接下载此页中的所有.pdf文件,但视频文件似乎有一些问题。视频确实在我的本地系统中下载,但有错误


Tags: 代码namehttpsorgimport视频linkurllib
3条回答

如果您有权访问urllib2,您可以在url上使用urlopen,这将返回response对象,您可以执行response.read()read数据,然后将其写入文件。

示例-

import urllib2
dwn_link = 'https://class.coursera.org/textanalytics-001/lecture/download.mp4?lecture_id=73'

file_name = 'trial_video.mp4' 
rsp = urllib2.urlopen(dwn_link)
with open(file_name,'wb') as f:
    f.write(rsp.read())

此外,如果下载视频需要验证服务器的身份,则需要确保已通过验证。

我不知道coursera.org使用什么样的身份验证,但是如果它的基本HTTP身份验证(我非常怀疑),您可以使用-

password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
top_level_url = "http://class.coursera.org/"
password_mgr.add_password(None, top_level_url, username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(handler)

# use the opener to fetch a URL
opener.open(dwn_link)

要从Coursera课程下载视频,您需要:

  1. 已登录Coursera.org会话
  2. 在Coursera.org上注册了那门课

一旦你这样做,你可以下载视频后,你的HTTP客户端认证(用你的用户名/密码)和有一个有效的会话。

在python 3中

import urllib.request
urllib.request.urlretrieve(url_link, 'video_name.mp4') 

它对我有效,您可以在下面的link看到脚本

相关问题 更多 >