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

      

  • 相关阅读:
    PID控制心得 2013/2/11
    在LaTeX文档中插入图片的几种常用的方法
    学习总结 2013/2/11
    eclipse 中引用其他项目及项目打包
    随笔2013/2/13
    随笔2013/2/19
    【转载】Latex对中文的支持 模版
    Latex 第二个程序
    Fences 桌面图标整理收纳箱
    消除“星期一综合症” 大前研一的周末时间分配术
  • 原文地址:https://www.cnblogs.com/yoyo1216/p/14187530.html
Copyright © 2020-2023  润新知