1个稳定版本
1.0.1 | 2023年2月26日 |
---|
#11 在 #同步
34KB
825 行
yt-mirror
你使用YouTube来听音乐,并将其保存在书签中吗?我也这样。如果所有这些音乐都能备份到你的本地电脑,或者只是离线访问,那不是很好吗?
yt-mirror
解析你的浏览器书签,查找YouTube网址,下载电影,并将它们转换为音乐文件。它是增量运行的,因此您可以同步添加的视频 - 只有新的书签会被下载。
此工具仍在积极开发中
目前它仅在Linux上运行(依赖于 mv
命令 - 对于Windows,请在 Downloader.hs
中将 mv
更改为 move
)。
支持的浏览器
- Firefox
- Chrome/Chromium/Edge(以及可能的其他基于Chromium的浏览器)
要求
- sqlite3
- ffmpeg
- yt-dlp
安装
从GitHub发布页面下载二进制文件或使用Cabal从源代码构建。
使用方法
首先准备要同步的书签(places.sqlite
被视为Firefox书签,Bookmarks[.json]
被视为类似Chromium的书签)
yt-mirror prepare -p ./process.sqlite -b ./places.sqlite
然后运行同步
yt-mirror synchronize -p ./process.sqlite -t ~/music/synchronized --tmp /tmp
(您可以按CTRL+C或ESC退出同步显示 - 它可能会在短时间内退出)
--tmp
默认为 /tmp
,并描述了 youtube-dl
临时文件将存储的位置。
显示失败的同步
yt-mirror failed -p ./process.sqlite [-s/--short]
-s
/--short
仅打印失败的YouTube id,不进行任何装饰
使用多个书签源
由于 prepare
步骤是分开的,并且要同步的视频以视频id存储,因此您可以通过多次运行 prepare
步骤来使用多个书签源进行准备。例如,要同步Firefox和Chrome的书签
yt-mirror prepare -p ./process.sqlite -b [...]/places.sqlite
yt-mirror prepare -p ./process.sqlite -b [...]/Bookmarks
过滤要下载的视频
用户可以使用 --filter
利用 youtube-dl --match-filter 的全部功能。跳过一些视频很有用,比如有时添加到书签中的令人讨厌的10小时音乐视频。
如果视频被过滤,其处理过程将标记为“跳过”。
示例 - 只下载时长小于1000秒的视频
yt-mirror synchronize -p ./process.sqlite -t ~/music/synchronized --filter "duration < 1000"
书签位置
. | Linux | Windows |
---|---|---|
Firefox | ~/.mozilla/firefox/*/places.sqlite |
%appdata%\Mozilla\Firefox\Profiles\*\places.sqlite |
Chrome | ~/.config/google-chrome/Default/Bookmarks |
%appdata%\..\Local\Google\Chrome\User Data\Default\Bookmarks |
Chromium | ~/.config/chromium/Default/Bookmarks |
? |
Brave | ~/.config/BraveSoftware/Brave-Browser/Default/Bookmarks |
? |
依赖
~27–37MB
~629K SLoC