YouTube视频下载
import logging
import os
import sys
from pytube import YouTube # python3.6 -m pip install pytube
from spider_setting import REQUESTS_PROXIES
path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(path)
# 添加日志
logging.basicConfig(
level=logging.INFO, # 定义输出到文件的log级别,大于此级别的都被输出
format='%(asctime)s %(filename)s %(levelname)s : %(message)s', # 定义输出log的格式
datefmt='%Y-%m-%d %H:%M:%S', # 时间
filename='./oss_file.log', # log文件名
filemode='a') # 写入模式“w”或“a”
console = logging.StreamHandler()
console.setLevel(logging.INFO)
# 设置格式
formatter = logging.Formatter('%(asctime)s %(filename)s %(levelname)s : %(message)s')
# 告诉handler使用这个格式
console.setFormatter(formatter)
# 为root logger添加handler
logging.getLogger('').addHandler(console)
class video(object):
def __init__(self):
self.url_list = ["https://www.youtube.com/watch?v=9bZkp7q19f0"]
def download(self):
for url in self.url_list:
yt = YouTube('https://www.youtube.com/watch?v=9bZkp7q19f0', proxies=REQUESTS_PROXIES)
print(yt.title) # 获取视频标题
print("1" * 100)
print(yt.thumbnail_url) # 获取缩略图网址
print("2" * 100)
print(yt.streams.all()) # 查看可用的媒体格式
print("3" * 100)
stream = yt.streams.first() # 获得第一个媒体格式流
print("4" * 100)
print(stream.download()) # 下载到当前工作目录
print("5" * 100)
print(stream.download('./video')) # 指定目标路径
print("6" * 100)
print(yt.streams.filter(only_audio=True).all()) # 查询仅音频流
print("7" * 100)
print(yt.streams.filter(file_extension='mp4').all()) # 查询MPEG-4流
print("8" * 100)
print(yt.streams.get_by_itag('22')) # 通过itag获取流
print("9" * 100)
if __name__ == '__main__':
video = video()
video.download()