视频分享

2020-01-02  本文已影响0人  刘小弟

youtube-dl

Youtube-dl 简称视频下载利器。同事 是一个命令行工具,对我所知的大部分视频网站有不错的支持,你可以选择下载视频,或是将视频流直接导出到自己想使用的播放器中,也可以以JSON的形式获取可下载资源的URL

安装Youtube-dl

Youtube-dl 通过 PyPi 分发,如果你的系统安装有 pip3 或 pip ,请直接使用:

brew install youtube-dl

安装Youtube-dl

通过 Youtube-dl 下载视频十分简洁,例如你需要下载 youtube-dl 'https://www.bilibili.com/video/av80476263'/ 直接这样:

youtube-dl 'https://www.bilibili.com/video/av80476263'

终端输出

[BiliBili] 80476263: Downloading webpage
[BiliBili] 80476263: Downloading video info page
[BiliBili] 80476263: Downloading webpage
[BiliBili] 80476263: Downloading video info page
[download] Destination: 2019总结1.flv
[download]   0.0% of 32.61MiB at Unknown speed [download]   0.0% of 32.61MiB at Unknown speed [download]   0.0% of 32.61MiB at  3.29MiB/s ETA[download]   0.0% of 32.61MiB at 421.13KiB/s ET[download]   0.1% of 32.61MiB at 798.04KiB/s ET[download]   0.2% of 32.61MiB at 848.61KiB/s ET[download]   0.4% of 32.61MiB at  1.13MiB/s ETA[download]   0.8% of 32.61MiB at  1.62MiB/s E

查看视频的内容,只看不下载

youtube-dl  -F 'https://www.bilibili.com/video/av80476263'

使用代理下载

youtube-dl 提供了使用代理的参数,你可以简单地shadow socket 在设置查看地址填入:

youtube-dl --proxy 127.0.0.1:1087  'https://www.youtube.com/watch?v=ghDOA4TeOQE'

查看帮助文档

youtube-dl -h

原理:

现在主流视频网站大部分都不是真实的mp4路径,而是一个M3U8地址。

  • m3u8 文件实质是若跟个TS为文件, 一个播放列表playlist。其内是 utf-8 纯文本文件。
  • 选择TS存储 而不是 MP4存储呢?这是因为两个 TS 片段可以无缝拼接,播放器能连续播放,而 MP4 文件由于编码方式的原因,两段 MP4 不能无缝拼接,播放器连续播放两个 MP4 文件会出现破音和画面间断,影响用户体验。
  • 每次播放根据列表文件中的时间轴找出对应的 TS 片段下载即可,不需要 range request,对代理服务器的要求小很多。所有代理服务器都支持小文件的高效缓存。
上一篇下一篇

猜你喜欢

热点阅读