我一直习惯在运行播放yt-dlp
之前下载音频文件。mpv
我一直在专门使用以下命令:
yt-dlp -f ba "ytsearch:major artist cool music"
mpv [Title of the audio file downloaded].webm
现在,令我困扰的是,我更希望有一个超级命令来链接它们两个,而不必在下载结束后等待并跟进 mpv 命令。
下载文件的瓶颈是可以理解的,文件名的随机性也是合理的,因为搜索条件取决于 YouTube 的算法来返回最佳搜索。
是否有一个命令可以预先知道最近下载的文件,并允许mpv
在下载完成后立即播放该文件,而不管其文件名如何?
我尝试过通常的管道,yt-dlp ... | mpv
但它产生了错误。我对 UNIX 的理解仍然不够,但我会根据您的建议来解决这个问题。
添加到我个人对此脚本问题的调试,例如:
mpv | yt-dlp -f ba "ytsearch:selena gomez good for you remix lyrics" -
产生此错误:
错误:[通用] 无:“-”不是有效的 URL。设置 --default-search "ytsearch" (或运行 yt-dlp "ytsearch:-" )来搜索 YouTube
yt-dlp
通过pip(Python 3.11)下载。
所有这些都在 Windows 11 终端 (Windows Powershell) 中运行。但我不明白为什么它不能应用于 (U/Li)nux
答案1
man mpv
说有一个ytdl://
协议,以便您可以将其 youtube-dl 脚本用于任何 URL:
mpv --ytdl-format=ba 'ytdl://ytsearch:major artist cool music'
答案2
mpv $(yt-dlp -f ba "ytsearch:song/music description" -g)