美国视频Youtube赚钱攻略

python用pytube爬取youtube视频

-python爬取youtube视频评论 -video
前言:

相信大家许多人都看过youtube网站上的视频,网站上有许多的优质视频,清楚度也非常的高,看到嘻歡的想要下载到当地,虽然也有许多方法,但是肯定没有python 来的快,

空话不多说,上代码:

先安装:

pip install pafy
pip install youtube-dl
pip install pytube

先来研究下pafy模块,百度了下没有这个模块的信息,到python官网 https://pypi.org/project/pafy/ 查了下,我们来看看这个模块都有些什么功能

import pafy url = "https://www.youtube.com/watch?v=bMt47wvK6u0" video = pafy.new(url) print(video)

这是周杰伦的一条视频链接,我们看看会输出什么 https://www.youtube.com/watch?v=zk4Olw9eRVo

print(video.title) #袁詠琳 Cindy Yen【我相信你了 I Believe】Official Lyric !MV - 電視劇「用九柑仔店」插曲print(video.author) #杰威爾音樂 JVR Musicprint(video.viewcount) #27563print(video.length) #295print(video.duration) #00:04:55print(video.likes) #611print(video.dislikes) #13print(video.description) # 简介......

还可以察看可以下载视频的分别率列表

for s in streams: print(s)

normal:webm@640x360
normal:mp4@640x360
normal:mp4@1280x720

固然了,具体的我们再的察看

for s in streams: print(s.resolution, s.extension, s.get_filesize(), s.url)

是不是辨别率、格式、大小、下载链接就都有了,这些还不算什么,我们接着看

import pafy url = "https://www.youtube.com/watch?v=bMt47wvK6u0" video = pafy.new(url) best = video.getbest() print(best.resolution, best.extension)

1280x720 mp4
getbest()方法呢 输出的就是这条视频最清楚的那一条信息
getbest(preftype="webm")这样用也可以输出指定格式的视频,接着看
import pafy url = "https://www.youtube.com/watch?v=bMt47wvK6u0" video = pafy.new(url) best = video.getbest(preftype="webm") print(best.url) # 打印出指定格式的视频链接

我们接着来看视频的下载方法,这个模块已经为我们封装好了,直接调用此方法即可

import pafy url = "https://www.youtube.com/watch?v=bMt47wvK6u0" video = pafy.new(url) best = video.getbest() best.download(quiet=False)
best.download(filepath="/tmp/",quiet=False)
可以指定下载路径,和是否表现进度条

下面我们来看音频的下载方法:
import pafy url = "https://www.youtube.com/watch?v=bMt47wvK6u0" video = pafy.new(url) audiostreams = video.audiostreams for a in audiostreams: print(a.bitrate, a.extension, a.get_filesize())
audiostreams [ 1 ] . download () #下载第一条音频信息
bestaudio = video.getbestaudio() # 同样是输出最优质的那一条 print(bestaudio.bitrate)

160k

bestaudio . download () # 直接下载就可以

接着看:

allstreams = video.allstreams for s in allstreams: print(s.mediatype, s.extension, s.quality)

这个方法,可以输出这条视频的全部数据信息

在最后的,上完备的代码:

from pytube import Playlist import pafy from multiprocessing import Pool import os class YoutubeVideoDownload(): def__init__(self,video_path,list_url): self.video_path = video_path self.list_url = list_url def get_video_list(self): """剖析视频列表方法""" pl = Playlist(self.list_url) url_lists = pl.parse_links() data = ["https://www.youtube.com" + i for i in url_lists] return data def get_video_info(self,detail_url): """下载视频"""print(detail_url) video = pafy.new(detail_url) v_best = video.getbest() v_best.download(self.video_path) if__name__ == '__main__': p = Pool(4) video_path = "videos/Pete The Cat Books" list_url = "https://www.youtube.com/watch?v=K-W3vxS8Y2o&list=PLPPUs6fCDKUdzfQWCkCRl1jDdvfZbn_AF" yotubo = YoutubeVideoDownload(video_path,list_url) res = p.map(yotubo.get_video_info, yotubo.get_video_list())

注:剖析列表直接这样就可以,但是假如下载单条的话直接调第二个方法即可

python爬取youtube视频评论

这个方法比直接用browser插件逼格高点

1. 简介

需要用到 pytube 这个第三方库:https://github.com/nficano/pytube 这里只是把这个页面捡重要部分翻译了一下。

pytube 有如下特色:

1. 它是 python 的一个轻量级库,不需要依靠第三方库,因此非常 可靠

2. 容许程序员选择下载视频的辨别率

3. pipelining easy, 你可以为差别的下载事件指定差别的回调函数

4. 包含下令行工具,可以直接从终端下载视频

2. 安装

pip install pytube

3. 库的使用
from pytube import YouTube # pprint-pretty print 不须要,仅仅为了让输出更悦目,每个视频文件占一行from pprint import pprint yt = YouTube("http://www.youtube.com/watch?v=Ik-RsDGPI5Y") # 表现全部可以下载的视频文件pprint(yt.get_videos()) # 表现视频文件名print(yt.filename) # 设置视频文件名 yt.set_filename('myFirstVideo') # 根据文件种类过滤视频文件 pprint(yt.filter('flv')) # 由于排序是按清楚度从低到高,以是可以用 -1 索引到最高清版本print(yt.filter('.mp4')[-1]) # 根据清楚度过滤文件 pprint(yt.filter(resolution='480p')) # 通过文件种类和清楚度指定下载的视频 video = yt.get('mp4','720p') # 假如有多个相同种类,要么相同清楚度的文件,则不能仅指定一种格式来下载视频,比方下面一行大概会报错: video = yt.get('mp4') # 实在,上面的 video 完全可以用过滤+索引的方法得到,不肯定非得用 get 方法 video = yt.filter('.mp4')[-1] # 下载到指定路径 video.download('/home/Desktop')
4. 下令行工具的使用 传入参数 -e (要么 --extension=)来设置下载的文件种类 $ pytube -e mp4 https://www.youtube.com/watch?v=hMPBSwexqG8 传入 -r 设定清楚度 $ pytube -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8 传入 -p 设置保存路径 $ pytube -r 720p -p ~/Downloads/ https://www.youtube.com/watch?v=hMPBSwexqG8 传入 -f 设置保存名称

$ pytube -e mp4 -f liangjian https://www.youtube.com/watch?v=hMPBSwexqG8

同时设置下载的种类和清楚度

$ pytube -e mp4 -r 720p https://www.youtube.com/watch?v=hMPBSwexqG8

需求是提供youtube某个热门视频的评述用户的国籍统计,后续需求是提供youtube某个热门直播聊天(live caht)用户国籍统计。

youtube某个热门视频的评述用户的国籍统计实现

大概的实现思绪是这样的:
1、 有一个代理,可以访问youtube.(这个是必须条件,我使用了 自建的代理 )
2、 有一个可以访问youtube的google帐号。
3、 登录 Google Cloud Platform 来启用 youtobe data api V3
4、创建一个youtobe api 访问根据,如下图:

上面三步的详细操作可以参考 这个的链接

5、参考github 上youtube data V3的python例子 链接如下 ,来改写一个根据youtube视频ID来抓取评述用户信息(channel_!id)并根据用户channel_id来抓取用户国籍信息。

6、最后,用result.sh这个shell脚本组合上面的python脚本,把最终的统计信息放到result.txt文件中。

youtube某个热门直播聊天(live caht)用户国籍统计

1、 有一个代理,可以访问youtube.(这个是必须条件,我使用了 自建的代理 )
2、 在chrome中开这个直播并打开 F12, 获取get_live_chat_replay的curl下令,详细操作如下图:

3、 进入 这个页面 把上面CP的curl 下令转化为python requests 数据,如下图:

4、 把下面的requests数据放到live_chat_channel.py脚本中,就可以把相应直播视频中发过聊天记载的用户的channel_id给抓取出来了。
5、 最后,运行result_live.sh这个shell脚本组全上面的python脚本,把最终的统计信息放到result.txt文件中

统计结果说明

大概统计了一下,用户channel_id中会记载自己的国籍信息的大概在10%左右,相关分析结果的可靠性还是要看各人。

相关脚本

可以访问 我的github 来获取相应的脚本。Readme.md中会有相关的使用指南.

本文网址: http://www.2217pacific.com/pp/202010971819_5441_325139637/home