专栏首页Coding+使用 youtube-dl 下载网络视频

使用 youtube-dl 下载网络视频

概述

youtube-dl 是一个命令行程序,用于从 YouTube.com 和其他几个网站下载视频。它需要 Python 解释器,版本2.6,2.7或3.2+,它是跨平台程序。它可以运行在 Unix 、Windows 或 macOS 上。它是开源的,这意味着你可以修改它,重新分配或使用它。本文介绍如何使用它从视频网站如 YouTube、Youku、Bilibili 等视频站点下载并处理视频

必备工具

  • 访问外国网站,下载国内站点视频不需要
  • FFpmeg —— 一个免费软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了 libavcodec —— 这是一个用于多个项目中音频和视频的解码器库,以及 libavformat —— 一个音频与视频格式转换库
  • youtube-dl.exe 命令行程序

安装

UNIX 用户(Linux、OS X 等)键入安装:

$ sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
$ sudo chmod a+rx /usr/local/bin/youtube-dl

Windows 用户直接下载 .exe 命令行程序 并配置其环境变量即可

配置环境变量添加程序路径,Windows 配置环境变量详细教程点这里

环境变量

安装 FFmpeg 并配置其环境变量

image.png

从 YouTube 下载一个视频

进入 YouTube 打开任意一个视频,复制视频地址,下图两种方式都可以

image.png

运行 CMD 命令行(Win+R 键入 cmd 并回车),执行 youtube-dl -F https://www.youtube.com/watch?v=dfnCAmr569k

image.png

第一列数字为文件代号,后面的几列分别为 文件格式、分辨率、码率、文件大小等,我们直接下载清晰度最高的视频及音频并使用 FFmpeg 自动合并,执行 youtube-dl -f 137+140 --proxy 127.0.0.1:1080 https://www.youtube.com/watch?v=dfnCAmr569k 即可,请注意我的代理软件端口为 1080 大家的可能不一样

image.png

下载并合并完成,1080p

image.png

配置文件

除了在命令行直接执行命令行选项还可以通过将任何支持的命令行选项放置到配置文件来配置 youtube-dl。在 Linux 和 OS X 上,系统范围的配置文件位于 /etc/youtube-dl.conf,用户范围的配置文件位于 ~/.config/youtube-dl/config。在Windows上,用户范围的配置文件位置是 %APPDATA%\youtube-dl\config.txt 或 C:\Users<user name>\youtube-dl.conf。请注意,默认情况下,配置文件可能不存在,所以您可能需要自己创建它。

例如,使用如下配置文件,youtube-dl 将始终只提取音频,不使用文件上次使用时间来设置文件最后修改时间,使用代理下载并保存所有输出到用户主目录下的 Movies 文件夹下

# Lines starting with # are comments
# Always extract audio
-x
# Do not copy the mtime
--no-mtime
# Use this proxy
--proxy 127.0.0.1:3128
# Save all videos under Movies directory in your home directory
-o ~/Movies/%(title)s.%(ext)s

请注意,配置文件中的选项与常规命令行中所调用的选项(又名 switches)相同,因此在 - 或者 -- 后面不得包含空格,例如 -o--proxy 不能写成 - o 或者 -- proxy

你可以使用 --ignore-config 来禁用配置文件,也可以使用 --config-location 启用自定义配置文件

关于更多的命令参数用法请参阅 youtube-dl 命令参数

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Gradle 的文件操作

    是的你没有看错,任务中的4个问题就用上面这20几行代码轻松解决;但是,你可能还是不太清楚这些这些配置的规则,它们看上去就像一堆键值对类似于Json,然而实际上它...

    SkyRiN
  • youtube-dl CMD

    您可以通过将任何支持的命令行选项放置到配置文件来配置 youtube-dl。在 Linux 和 OS X 上,系统范围的配置文件位于 /etc/youtube-...

    SkyRiN
  • Win10 系统下卸载安装 MySQL 8.0.11

    https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip

    SkyRiN
  • 图解ZooKeeper的典型应用场景

    zookeeper在很多框架中都有应用,例如:Dubbo,Hadoop,Kafka等,但典型的用法也就几种,掌握了这几种用法,再看zookeeper在相关框架中...

    Java识堂
  • 当免疫遇上大样本多组学

    主要想研究TNBC微环境的异质性表型是否存在以及是什么基因组事件导致了这种事情的发生,作者收集了386个TNBC病人样本,这个也是目前最大的单中心的TNBC队列...

    百味科研芝士
  • MongoDB 复制集节点增加移除及节点属性配置

    有关MongoDB复制集概念及其搭建,可以参考:MongoDB 复制集(Replica Set)

    Leshami
  • python socket编程详细介绍

       第二个是 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

    py3study
  • 6 大主流 Web 框架优缺点对比

    是该读些评论和做一些总结的时候了。当我们开始写这个系列博客的时候,我们知道 JavaScript/web 应用框架并不太好总结。我们努力对这个不可回答的问题作出...

    三哥
  • 6 大主流 Web 框架优缺点对比

    是该读些评论和做一些总结的时候了。当我们开始写这个系列博客的时候,我们知道 JavaScript/web 应用框架并不太好总结。我们努力对这个不可回答的问题作出...

    三哥
  • Angular、React、Vue等 6 大主流 Web 框架都有什么优缺点?

    是该读些评论和做一些总结的时候了。当我们开始写这个系列博客的时候,我们知道 JavaScript/web 应用框架并不太好总结。我们努力对这个不可回答的问题作出...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券