ytfzf – 从终端搜索(带缩略图)和播放 YouTube 视频

ytfzf 是一个脚本,通过在引擎盖下使用 mpv 和 youtube-dl 来搜索、下载和播放 YouTube 视频。 它适用于 Linux 和 macOS。 命令行脚本今天发布了第一个稳定版 (1.0.0)。

该工具最初是作为单行脚本开始的,但后来不断发展,最近获得了在终端中显示 YouTube 缩略图的能力以及其他增强功能。

对于每个 YouTube 搜索查询,右侧窗格中都会显示结果列表。 在左侧,您可以看到所选视频标题、发布视频的频道、观看次数、视频时长、上传日期和视频缩略图(可选)。

使用 UpDown 箭头键浏览搜索结果,然后按 Enter 播放视频的键(或下载它,ytfzf 以 -d 命令行参数)。 默认情况下,视频使用 mpv 播放,但您可以使用其他视频播放器更改此设置,只要它能够启动 YouTube 链接即可。

缩略图是使用 Überzug 实现的,该命令行实用程序允许使用子窗口在终端上绘制图像。 由于 Überzug 仅适用于 X11,因此 ytfzf 视频缩略图功能也与 X11 会话相关联,并且不适用于 Wayland。 另外,不要指望这会在 tty 中工作 – 它显然不会。

值得注意的是,视频缩略图有时可能会显示在终端窗口之外。 在这种情况下,您需要调整终端的大小,然后按 Up / Down 箭头键选择不同的视频,它将使用更新的缩略图大小。

除此以外, ytfzf 还具有对视频历史记录的支持,允许选择媒体格式,并且可以对多个轨道进行排队(使用 fzf 多选)。 您可以使用 fzf、dmenu 或 rofi 搜索 YouTube 视频并播放/下载。

其他功能包括仅播放/下载音频、自动播放和重复 YouTube 视频、播放随机搜索结果以及在继续之前显示可用媒体格式的选项。

查看 ytfzf --help 获取完整的选项列表。

对于未来的版本,开发者打算实现对 YouTube 播放列表和评论的支持. 不过,这些功能何时实施还没有时间表。

[[Edit]]在 ytfzf 1.1.0 中,该工具增加了对订阅的支持,这使您可以轻松地在订阅频道的视频之间进行搜索。

相关:如何使用 youtube-dl(命令行)下载 YouTube 播放列表并将其转换为 MP3

配置和使用 ytfzf

ytfzf 配置可以在 ~/.config/ytfzf/conf.sh 文件,或使用环境变量。 让我们用 ~/.config/ytfzf/conf.sh 设置下面的所有内容。 创建 ~/.config/ytfzf 文件夹:

mkdir ~/.config/ytfzf

现在开放 ~/.config/ytfzf/conf.sh 在文本编辑器中(创建它,因为它不存在),并粘贴以下内容:

YTFZF_HIST=1 # history is on by default it can be set to -> 0 history off, 1: history on
YTFZF_LOOP=0 # if set to 1 it is on but normally it is off by default. Can be turned on using option -l
YTFZF_PREF="bestvideo[height<=?1080]+bestaudio/best" # set the video format
YTFZF_ENABLE_FZF_DEFAULT_OPTS=1 # fzf colors are going to be the one from your fzf configuration
FZF_PLAYER="mpv" # sets the video player used by ytfzf (mpv by default), e.g. FZF_PLAYER="devour mpv"; you can also specify the YTFZF_PLAYER_FORMAT, e.g. YTFZF_PLAYER_FORMAT="devour mpv --ytdl-format="

这是一个示例配置。 您可以更改其中一些设置,按原样使用它们,或取消注释以使用默认值。 您可以在此处找到更多配置选项。

使用 ytfzf 就像运行一样简单:

ytfzf

输入此命令后,系统会提示您输入 YouTube 搜索查询,如下所示:

$ ytfzf

Search Youtube:

您可以直接指定搜索查询,因此 ytfzf 不会提示您进行查询,如下所示:

ytfzf <query>

但是,使用此功能时,YouTube 搜索结果不会有缩略图。 启用缩略图, 运行 ytfzf -t (或者 --thumbnails) 命令行参数:

ytfzf -t

默认情况下,当您点击时,ytfzf 会播放您搜索结果中的视频 Enter. 如果你想 下载视频而不是播放它, 使用 -d 命令行参数:

ytfzf -d

想要在 ytfzf(以及 mpv)中对 YouTube 视频进行排队?Tab 选择要添加到队列中的每个视频,以 mpv 格式播放。 用 >< (所以使用 Shift + >Shift + <) 在队列中导航到下一个和上一个视频。

有关配置和使用 ytfzf 的更多详细信息,包括如何将其与外部菜单(如 dmenu 或 rofi)一起使用,请参阅其项目页面。

使用 browser-mpris2(Chrome 扩展程序)将 YouTube 播放器控件添加到您的 Linux 桌面

安装 ytfzf

ytfzf 可以从 Arch Linux / Manjaro 上的 AUR 安装,并使用 Gentoo 上的nitrosky 覆盖。 您也可以在 macOS 上安装它。

对于其他 Linux 发行版,安装 ytfzf 相当容易,因为它只是一个脚本。 不过,您需要手动安装其依赖项: mpv, youtube-dl, fzf (可选,用于菜单), jqueberzug (可选,对于视频缩略图;这也有一些依赖性)。 我们还需要 git 获取最新的 ytfzf。

下面您将找到在 Debian/Ubuntu/Linux Mint/Pop!_OS 和其他基于 Debian 或 Ubuntu 的 Linux 发行版上安装 ytfzf 的分步说明,以及 Fedora. 您可以在任何其他 Linux 发行版上安装 ytfzf,如下所述,但您需要自己找出 Linux 发行版的依赖项名称。

提醒一下,视频缩略图在 Wayland 上不起作用,所以如果您使用 Fedora 或默认使用 Wayland 的 Ubuntu 21.04,您可以不使用缩略图使用它,也可以从登录屏幕从 Wayland 切换到 X11 会话。

1. 安装 ytfzf 依赖项,以及 Üeberzug 依赖项。

  • Debian / Ubuntu / Linux Mint / Pop!_OS:

sudo apt install jq mpv fzf git python3-pip python3-wheel python3-dev python3-xlib libx11-dev libxext-dev make

  • Fedora (还需要添加 RPMFusion 存储库以安装 mpv):

sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install jq mpv fzf git python3-pip python3-wheel python3-devel python3-xlib libX11-devel libXext-devel make

对于任何 Linux 发行版: 由于 youtube-dl 通常在存储库中更新(至少在 Debian / Ubuntu 上),让我们从 PyPi 安装它。 我们还需要以相同的方式安装 ueberzu:

python3 -m pip install --user youtube-dl ueberzug

如果您已经从存储库中安装了 youtube-dl 软件包,那么删除它可能是个好主意。 您可以稍后使用更新 youtube-dl python3 -m pip install --user --upgrade youtube-dl

2. 获取 ytfzf GitHub 仓库,并安装 ytfzf:

git clone https://github.com/pystardust/ytfzf

cd ytfzf

sudo make install

这会将 ytfzf 脚本安装到 /usr/bin.

如果您以后想卸载它,请导航到 ytfzf 目录并运行:

sudo make uninstall

你可能喜欢: 奥利维亚: Cloud- 基于 YouTube 支持和超过 25,000 个在线广播电台的音乐播放器

通过 r/unixporn