Python Pytube播放列表下载进度

时间:2018-04-10 00:47:22

标签: python pytube

我正在使用pytube在python中编写程序,我想在下载播放列表时指出进度。下载单个视频时,我可以这样做:

YouTube(url, on_progress_callback=progressFunction)

但下载播放列表时不起作用:

Playlist(url, on_progress_callback=progressFunction)

我收到以下错误:

TypeError: __init__() got an unexpected keyword argument 'on_progress_callback'

下载播放列表时有没有办法取得进展?

3 个答案:

答案 0 :(得分:2)

嘿,您可以从播放列表中获取所有网址,然后一个接一个地调用下载。 这对我来说是最好的。

$query = $uri . '/person/id?personid=' . $personid . '&name=' . $name;    
return $result = $this->client->get(
  $query
  )
  ->getBody()->getContents();

由此您将获得所有网址,然后

def getAllLinks(playList):
'''
: This function take a link of playlist and return the link of each videos
:param playList:
:return: A list of all Url links
'''
allLinks = []
youtubeLink = 'https://www.youtube.com'
pl = Playlist(playList)
for linkprefix in pl.parse_links():
    allLinks.append(youtubeLink + linkprefix)
return allLinks

答案 1 :(得分:1)

根据source codePlaylist类不需要on_progress_callback个关键字参数,只需要url个。

答案 2 :(得分:1)

您可以使用 register_on_progress_callback 函数在初始化后注册下载进度回调函数。

一个例子是:

p = Playlist('https://www.youtube.com/playlist?list=PLetg744TF10BrdPjaEXf4EsJ1wz6fyf95')
for v in p.videos:
    v.register_on_progress_callback(progressFunction)
    # proceed to downloading...