从Python下载URL中的视频

use*_*935 2 python download

我正在尝试使用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)
Run Code Online (Sandbox Code Playgroud)

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

有帮助吗?

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

小智 12

在python 3中,

import urllib.request
urllib.request.urlretrieve(url_link, 'video_name.mp4') 
Run Code Online (Sandbox Code Playgroud)

它适用于我,你可以在这里看到它的链接


Ana*_*mar 7

如果你有机会获得urllib2,可以使用urlopenurl,这将给回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())
Run Code Online (Sandbox Code Playgroud)

如果下载视频需要,您还需要确保已对服务器进行了身份验证.

我不确定使用哪种身份验证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)
Run Code Online (Sandbox Code Playgroud)


Dmi*_*try 6

您可以使用库请求:

def download_video_series(video_links): 

for link in video_links: 

    '''iterate through all links in video_links 
    and download them one by one'''

    # obtain filename by splitting url and getting  
    # last string 
    file_name = link.split('/')[-1]    

    print "Downloading file:%s"%file_name 

    # create response object 
    r = requests.get(link, stream = True) 

    # download started 
    with open(file_name, 'wb') as f: 
        for chunk in r.iter_content(chunk_size = 1024*1024): 
            if chunk: 
                f.write(chunk) 

    print "%s downloaded!\n"%file_name 

print "All videos downloaded!"
return
Run Code Online (Sandbox Code Playgroud)


Gro*_*ify 4

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

  1. 登录 Coursera.org 的会话
  2. 在 Coursera.org 上报名参加该课程

完成此操作后,您可以在 HTTP 客户端进行身份验证(使用您的用户名/密码)并拥有有效会话后下载视频。