• pytube


    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()
    

      

  • 相关阅读:
    顶级游戏设计大师谈如何成为一名游戏设计师
    【转】内存溢出处理方法
    我的C++技巧总结
    实践C++ 代码维护的思考
    编写安全代码:数组和指针的本质以及何时不能互换
    如何检测网络端口是否被占用
    IT人员迅速提升自我效率的十大方法
    MySQL老旧版本下载地址
    struts2: config-browser-plugin 与 convention-plugin 学习
    struts2: config-browser-plugin 与 convention-plugin 学习
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/14187530.html
Copyright © 2020-2023  润新知