zoukankan      html  css  js  c++  java
  • 用 pytube 爬取 youtube 视频

    这个方法比直接用浏览器插件逼格高点

    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

  • 相关阅读:
    十、CI框架之通过参数的办法输出URI路径
    九、CI框架之将URI转为数组原型
    八、CI框架之输出URI路径,相当于GET
    七、CI框架之分配变量数组,循环输出
    六、CI框架之分配变量
    五、CI框架之通过带路径的view视图路径访问
    四、CI框架之通过URL路径访问C中的函数
    三、CI框架之一个最简单的页面
    二、CI框架之MCV模型
    一、CI框架(CodeIgniter)简介
  • 原文地址:https://www.cnblogs.com/yinxiangnan-charles/p/5645561.html
Copyright © 2011-2022 走看看