前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >视频下载利器:yt-dlp,轻松下载各平台视频,缓存视频又一途径

视频下载利器:yt-dlp,轻松下载各平台视频,缓存视频又一途径

原创
作者头像
Mintimate
修改2022-06-15 13:35:19
7.6K5
修改2022-06-15 13:35:19
举报
文章被收录于专栏:Mintimate's BlogMintimate's Blog
头图不能少哦
头图不能少哦

博客:https://www.mintimate.cn Mintimate’s Blog,只为与你分享

有时候,我们想珍藏一些Up的视频,但是网站上并没有下载按钮,可以使用youtube-dl进行下载;但是,现在有时候youtube-dl被网站屏蔽,还可以试试yt-dlp,轻松爬取网络上的视频,并且可以调用FFmpeg,对视频进行转码与合并。

yt-dlp

yt-dlp其实是基于youtube-dl而诞生的,正如官方介绍:

yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keeping up to date with the original project

yt-dlp是一个youtube-dlp的fork,并且基于如今不在活跃的youtube-dlc而开发。主要是添加一些补丁和特征、特点,并且和官方项目保存同步更新。

部分的特征:

  • 可以使用外部下载器下载,如:使用aria2进行下载。
  • 直接调用浏览器,使用浏览器环境爬取视频和使用浏览器的cookies
  • ……

完整的特征,可以查看项目官网:

辅助视频

为了方便演示和配置,制作了辅助视频:

嘿嘿,做教程视频不易⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄,请务必点赞支持哦。

前提

不同系统,安装也不一样。并且yt-dlp的安装方法很多,如:

  • Python的pip安装(适用于已经安装Python的设备,并带包管理器pip)
  • Homebrew安装(适用于macOS,并且安装了Homebrew)
  • yum/apt软件包管理器安装(适用于Linux)
  • 手动配置环境变量(适用于全系统)【本文推荐】

本文就演示:手动配置环境变量。

主要优点就是:环境干净、后续手动升级方便、一切可控。

额外体验

如果想获得更好的体验,比如:下载视频进行转码、多端视频合并。强烈建议环境变量内配置好FFmpeg:

已经配置好FFmpeg(macOS/Linux)
已经配置好FFmpeg(macOS/Linux)

如果你不知道怎么配置,可以参考教程:

参考视频:

macOS安装

访问yt-dlp地址

首先,演示一下macOS上如何安装,首先是访问yt-dlp的下载地址:

下载预编译包

之后,我们下载我们macOS需要的预编译包:

下载预编译包
下载预编译包

下载后是这样的:

下载结果
下载结果

移动文件

为了方便后续管理,我们移动文件;比如,我这里移动到~/myApplication/bin文件夹内。

打开终端,创建myApplication文件夹:

代码语言:shell
复制
mkdir -p ~/myApplication/bin

~代指$HOME,也就是用户家目录。举个例子,我的用户名是mintimate,那么家目录就是/Users/mintimate

创建目录
创建目录

之后,移动刚刚下载的yt-dlp_macos到这目录,并重命名为yt-dlp

代码语言:shell
复制
mv /$HOME/Downloads/yt-dlp_macos ~/myApplication/bin/yt-dlp
移动文件
移动文件

提权

这个时候,我们在yt-dlp所在的目录内,并不能运行:

权限不足
权限不足

很简单,需要使用chmod命令提权赋予执行权限:

代码语言:shell
复制
chmod +x yt-dlp
权限
权限

现在,yt-dlp就可以使用,只是要输入绝对路径。为了使用方便,我们可以配置到环境变量。

配置环境变量

为了使用方便,我们配置到环境变量。

你可以直接打开~/.zshrc进行配置,也可以直接追加,这里我演示直接追加,终端内输入:

代码语言:shell
复制
echo 'export PATH="$HOME/myApplication/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

之后,就可以在任意位置,配合Terminal使用yt-dlp命令啦:

配置环境变量
配置环境变量

Linux安装

Linux的安装配置,其实和macOS差不多(配置预编译包的安装方法),这里也介绍一下。

这里出于方便,使用腾讯云轻量应用服务器进行演示:

Debian发行版本Linux
Debian发行版本Linux
登录Linux
登录Linux

{% note info %}

如果你并没有Linux设备,想租借一个Linux来学习或者搭建网站,强烈推荐:

另外,为大家争取到优惠*(੭ˊᵕˋ)੭ଘ

注意:

  • 我为了方便,使用root用户演示,小伙伴可以使用非root用户,更安全(当然,个人使用,用root用户也可以)。
  • 我使用的是腾讯云的WebShell,默认登录用户是lighthouse,所以需要使用sudo su - root切换用户。

访问yt-dlp地址

首先是访问yt-dlp的下载地址:

下载预编译包

之后,我们下载我们macOS需要的预编译包:

下载预编译包
下载预编译包

比如,我下载2022.05.18版本的yt-dlp:

代码语言:shell
复制
wget https://github.com/yt-dlp/yt-dlp/releases/download/2022.05.18/yt-dlp

下载后是这样的:

下载结果
下载结果

移动文件

为了方便后续管理,我们移动文件;比如,我这里移动到~/myApplication/bin文件夹内。

打开终端,创建myApplication文件夹:

代码语言:shell
复制
mkdir -p ~/myApplication/bin

~代指$HOME,也就是用户家目录。举个例子,我的用户名是mintimate,那么家目录就是/home/mintimate,而root用户比较特殊,没有修改的情况下,家目录是/root

创建目录
创建目录

之后,移动刚刚下载的yt-dlp到这目录:

代码语言:shell
复制
mv yt-dlp ~/myApplication/bin/yt-dlp
移动文件
移动文件

提权

这个时候,我们在yt-dlp所在的目录内,并不能运行:

权限不足
权限不足

很简单,需要使用chmod命令提权赋予执行权限:

代码语言:shell
复制
chmod +x yt-dlp
权限
权限

现在,yt-dlp就可以使用,只是要输入绝对路径。为了使用方便,我们可以配置到环境变量。

配置环境变量

为了使用方便,我们配置到环境变量。

你可以直接打开~/.zshrc进行配置,也可以直接追加,这里我演示直接追加,终端内输入:

代码语言:shell
复制
# 如果是使用ZSH用户
echo 'export PATH="$HOME/myApplication/bin:$PATH"' >> ~/.zshrc
# 如果是使用Bash用户(默认就是这个)
echo 'export PATH="$HOME/myApplication/bin:$PATH"' >> ~/.bashrc
# 重载环境变量,使其生效
source ~/.zshrc
source ~/.bashrc

比如,我的Linux是用ZSH,所以就使用echo 'export PATH="$HOME/myApplication/bin:$PATH"' >> ~/.zshrcsource ~/.zshrc这两条:

配置环境变量
配置环境变量

之后,配合Terminal使用yt-dlp命令啦。

Windows安装

Windows的安装配置,其实就有点不一样了(配置到环境变量的话),这里也介绍一下。

访问yt-dlp地址

首先是访问yt-dlp的下载地址:

下载预编译包

之后,我们下载我们macOS需要的预编译包:

下载预编译包
下载预编译包

比如,我下载2022.05.18版本的yt-dlp:

代码语言:shell
复制
wget https://github.com/yt-dlp/yt-dlp/releases/download/2022.05.18/yt-dlp

下载后是这样的:

下载结果
下载结果

移动文件

为了方便后续管理,我们移动文件;比如,我这里移动到D盘的myApplication的bin文件夹内。

创建myApplication/bin文件夹:

创建目录
创建目录

之后,移动刚刚下载的yt-dlp.exe到这目录:

移动文件
移动文件

配置环境变量

为了使用方便,我们配置到环境变量。

你可以右键此电脑,选择高级环境变量设置进行配置:

配置环境变量
配置环境变量

选择PATH进行追加:

追加环境变量
追加环境变量

之后,配合Powershell、CMD或者Windows Terminal 使用yt-dlp命令啦:

Windows配置完成
Windows配置完成

使用:下载视频

现在,我们在各个平台都下载并配置了yt-dlp,我们就可以使用了。最简单的例子,我们下载视频。

首先,我们确定当前的Terminal/Windows Powershell的地址:

代码语言:shell
复制
pwd
获取当前地址
获取当前地址

我们调用yt-dlp,默认就是下载到当前目录;所以,我们现在切换到下载文件内:

代码语言:txt
复制
cd Downloads

之后,下载你喜欢的up视频,比如:

只需要复制网址,并在terminal内使用yt-dlp即可下载视频:

代码语言:txt
复制
yt-dlp https://www.bilibili.com/video/BV1PY4y1z7PX
下载视频
下载视频

默认下载清晰度最高的视频

使用:只下载音频

如果我们只想下载音频怎么办呢?很简单,添加-x参数即可只下载音频,添加--audio-format mp3就可以把下载下来的当音频视频转码为mp3,所以你如果喜欢某个Up的视频,但是只想下载声音:

代码语言:shell
复制
yt-dlp -x --audio-format mp3 https://www.bilibili.com/video/BV1PY4y1z7PX

使用:传入cookies

一些情况下,我们下载一些视频需要进行鉴权(比如:某视频平台需要会员,才可以下载高清视频)。但是,我们浏览器上已经登录会员了,yt-dlp如何调去呢?

这个时候,就可以用yt-dlp的特性:调取浏览器Cookies:

  • cookies-from-browser:从浏览器调取cookies,你也可以指定浏览器,比如:--cookies-from-browser chrome就是调取chrome浏览器的cookies。目前支持的浏览器选项:brave, chrome,chromium, edge, firefox, opera, safari,vivaldi。

举个例子,我们还是下载刚刚那个Up的视频,只需要:

代码语言:shell
复制
yt-dlp --cookies-from-browser chrome https://www.bilibili.com/video/BV1PY4y1z7PX

这个时候,就需要用户手动信任:

下载视频
下载视频

Windwos和Linux也是一样的。

使用:调用aria2

一些情况下,我们会使用多线程下载器,充分利用我们的带宽。比如:使用aria2。

yt-dlp就支持调用外部下载器;首先,确保你已经配置了aria2:

配置了aria2
配置了aria2

需要配置到环境变量内,方法同上文配置yt-dlp一样。可以参考之前的aria2博客。

之后,我们使用参数即可:

  • external-downloader:下载器选择,可以选择aria2c, avconv, axel, curl, ffmpeg, httpie,wget。
  • downloader-args:下载器的额外参数

举个例子,我使用yt-dlp下载视频,并配合aria2:

代码语言:shell
复制
yt-dlp --external-downloader aria2c --downloader-args aria2c:"-x 8 -k 1M" https://www.bilibili.com/video/BV1PY4y1z7PX

8线程、分片(每分1M,且视频支持分片下载,否则不生效)

下载视频激活aria2
下载视频激活aria2

More

更多yt-dlp的使用技巧,可以查看yt-dlp的官方文档哦。另外,yt-dlp基于youtube-dl,所以…… 其实youtube-dl支持的,yt-dlp都支持。

另外,如果是下载B站视频,还是建议you-get会更好。

哈哈,当然也可以直接写爬虫爬取视频啦⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄
哈哈,当然也可以直接写爬虫爬取视频啦⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • yt-dlp
  • 辅助视频
  • 前提
    • 额外体验
    • macOS安装
      • 访问yt-dlp地址
        • 下载预编译包
          • 移动文件
            • 提权
              • 配置环境变量
              • Linux安装
                • 访问yt-dlp地址
                  • 下载预编译包
                    • 移动文件
                      • 提权
                        • 配置环境变量
                        • Windows安装
                          • 访问yt-dlp地址
                            • 下载预编译包
                              • 移动文件
                                • 配置环境变量
                                • 使用:下载视频
                                • 使用:只下载音频
                                • 使用:传入cookies
                                • 使用:调用aria2
                                • More
                                相关产品与服务
                                轻量应用服务器
                                轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门开源软件打包实现一键构建应用,提供极简上云体验。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档