Youtube获取时长及Pafy库使用

2022年07月22日 22点热度 0人点赞 0条评论

Youtube获取时长及Pafy库使用

pafy.png

Youtube 下载视频会遇到一个问题,比如直播视频,全程比赛,会导致数据异常大,而且占用资源。当时的方法是获取网页上的视频长度。使用的方式selenium,找到对应的元素,实际操作的过程中,确实找到了对应的元素和位置。但是运行时,总是抓到部分的时长,我设置了延迟也没有有效的解决这个问题。

在网上搜索时,发现了一个库pafy,直接可以获取视频的元数据。包括视频的时长在内的很多参数。但是实际发现很多的都是为空。比较实用的是持续时间,时长(根据视频持续时间转化为秒单位的数值)和观看次数。其他的功能还待发掘中。

```Pafy.author # 视频的作者(str)
Pafy.bigthumb(str) # 视频显示图片的网址(并非始终可用)
Pafy.bigthumbhd # 影片较大显示图片的网址(并非总是可用)(str)
Pafy.category # 影片类别(str)
Pafy.description # 视频描述文字(str)
Pafy.dislikes # 视频收到的不喜欢次数(int)
Pafy.duration # 视频的持续时间(字符串格式为HH:MM:SS)
Pafy.keywords # 视频关键字列表(并非始终可用)([str])
Pafy.length # 视频的持续时间(秒)(int)
Pafy.likes # 视频收到的点赞次数(int)
Pafy.published # 视频的上传日期(例如2022-10-02 17:17:24)(str)
Pafy.rating # 视频的评分(0-5)(float)
Pafy.thumb # 视频缩略图的网址(str)
Pafy.title # 视频标题(str)
Pafy.username # 上传者的用户名(str)
Pafy.videoid # 11个字符的视频ID(str)
Pafy.viewcount # 视频的观看次数(int)

<pre><code><br />使用pafy时遇到了一个问题。总出现系统报错提示dislike count issues.即便是我用了最简单的语句。

再次在网上找到了答案,youtube不在支持dislike统计,当前的版本没有针对youtube的dislike count进行调整。解决的方案是

* 删除当前的pafy 版本
* 使用如下的方式安装即可完美解决这个问题。

</code></pre>

pip install git+https://github.com/Cupcakus/pafy

<pre><code><br /><br />官网的代码示例

</code></pre>

import pafy
v = pafy.new("dQw4w9WgXcQ")
print(v.title)
print(v.duration)
print(v.rating)
print(v.author)
print(v.length)
print(v.keywords)
print(v.thumb)
print(v.videoid)
print(v.viewcount)

<pre><code>运行结果如下

</code></pre>

Rick Astley - Never Gonna Give You Up
00:03:33
4.75177729422
RickAstleyVEVO
213
['Rick', 'Astley', 'Sony', 'BMG', 'Music', 'UK', 'Pop']
https://i1.ytimg.com/vi/dQw4w9WgXcQ/default.jpgdQw4w9WgXcQ
69788014
```

更多的内容请参考
pafy的官方网站

KOgoal

文章评论