for*_*rin 6 vlc json youtube-dl
youtube-dl -o - <webpage> | vlc -在 VLC 中显示视频。但是,视频是通过管道传输的(通过类似fd://0),这抑制了向前/向后跳跃的可能性。
但是,youtube-dl -j <webpage>列出了包含多个“url”属性的 JSON 数据。如果你这样做了vlc <url>,VLC 现在会显示视频长度,让我们跳转等等,就像我们在播放本地视频一样。
问题:现在,完全可以编写一个提取 URL 的小型 Python 脚本,但是有没有一种简单的方法可以仅使用简单的 Bash(最好是单行)来执行此操作?
注意:youtube-dl -j列出了一系列不同质量的视频流,最好选择质量最高的视频。
fra*_*san 10
在 shell 中解析 JSON 通常不是一个好主意。你可以很容易地发现,在 U&L 上,几乎所有关于“我如何在 shell 中解析这个 JSON?”的问题的答案。最终使用专门的工具(例如jq或jshon)。
这就是为什么我建议youtube-dl在多个视频版本可用时利用选择一个视频版本的能力,并将其 URL 打印在标准输出上而不是下载它:
--format或-f: 让您...指定格式。要获得最高质量,只需指定best. 实际上,在您的情况下,这可能不是必需的,因为(请参阅手册页youtube-dl(1)):
默认情况下 youtube-dl 尝试下载最佳可用质量
--get-url, 或-g, 避免下载任何视频,只将所选视频的 URL 打印到标准输出。
然后,利用vlc从 URL 播放(和搜索)视频的能力。您可以通过管道将 URL 发送到vlc:
youtube-dl --get-url --format best 'https://www.youtube.com/watch?v=video_id' | vlc -
Run Code Online (Sandbox Code Playgroud)
或使用命令替换以vlcURL 作为参数调用:
vlc "$(youtube-dl --get-url --format best 'https://www.youtube.com/watch?v=video_id')"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |