将音乐库同步到外部设备

sync_music的Python项目详细描述


Travis CI StatusCoveralls StatusPyPI Version

同步音乐-将音乐库同步到外部设备

此程序允许您同步音乐库以供使用 原始音乐播放器不支持 收藏。

在正常操作模式下,sync_music执行其同步任务 取决于输入文件格式。flac和ogg vorbis中的音乐文件 格式被转换成MP3格式。MP3音频文件和其他文件 转移时没有改变。在必要时修改文件名以符合 使用fat32格式。如果愿意,sync_music也可以强制 转换所有文件以节省磁盘空间。另一种操作模式 基于ReplayGain标记应用卷规范化。

转码是一项耗时的操作,因此 sync_music可能需要几分钟。但在随后的运行中,它将 仅处理源中更改的文件。优化检测 文件更改,脚本存储并比较固定大小的哈希构建 在每个文件的开头阻止。

除了音频文件,sync_music还可以将m3u播放列表导出到 目标文件夹。绝对路径在此替换为相对路径 除了fat32文件名调整之外的路径。

依赖性

安装

第一步是安装Python Audio Tools,这取决于 本机库,不提供pypi包。在Ubuntu16.04或更高版本上 有一个官方软件包,只需使用:

# apt install audiotools

作为替代方案,Python Audio Tools可以在 已安装必要的本机库:

# apt install python3-dev lame libmp3lame-dev libmpg123-dev libvorbis-dev
# pip3 install https://github.com/tuffy/python-audio-tools/archive/master.zip

然后sync_music可以从pypi安装,使用:

# pip3 install sync_music

以下命令安装当前的开发版本:

# pip3 install https://github.com/fetzerch/sync_music/archive/master.zip

使用量

快速启动

以下基本命令将所有音频文件从源同步到 目的地目录:

sync_music --audio-src=<FOLDER> --audio-dest=<FOLDER>

此外,可以通过指定指向 播放列表:

sync_music --audio-src=<FOLDER> --audio-dest=<FOLDER> --playlist-src=<FOLDER>

此外,sync_music还支持许多高级选项。一份完整的清单 内置帮助消息中提供了支持的选项:

sync_music --help

转码

可以使用–mode参数更改操作模式。

transcode模式中,MP3文件也被转码(而不是仅仅复制到 目的地:

sync_music --audio-src=<FOLDER> --audio-dest=<FOLDER> --mode=transcode

如果源代码为 包含多个320kbps CBR MP3,目标速率为190kbps VBR。缺点 转码速度较慢,需要更多的CPU能力。

replaygainreplaygain album模式基于 转换代码时ReplayGain标记的卷规范化:

sync_music --audio-src=<FOLDER> --audio-dest=<FOLDER> --mode=replaygain

转码模式要求mp3文件可以由Python Audio Tools解码而不出现问题。可以分析和修复有问题的输入文件 例如使用MP3 Diags

黑客攻击

一些媒体播放器不正确地支持专辑艺术家标签。这个限制 可以通过将唱片集艺术家信息写入“艺术家”字段来绕过。 这可以通过添加–albumArtist artist hack参数来启用。

有些媒体播放器不支持唱片集艺术家标签,但他们支持 支持composer字段。可以通过写入来绕过此限制 将唱片集艺术家信息放入作曲家字段。这可能是 通过添加–albumArtist composer hack参数启用。

有些媒体播放器不正确地支持带有曲目编号的光盘编号标签 启动每张光盘一张。用户通常希望按磁盘分组 不是按轨道位置。这可以通过创建不同的相册来解决 每张光盘。使用–disc number hack选项,将附加磁盘号 到相册字段。

一些媒体播放器不正确地支持包含 磁盘上的磁道总数。使用–tracknumber hack选项, 曲目总数将从曲目编号字段中删除。

许可证

此程序是免费软件;您可以重新分发和/或修改 根据由 自由软件基金会;许可证的版本2,或者 (由您选择)任何更高版本。

这个程序的发布是希望它能有用, 但没有任何保证;甚至没有 适销性或适合某一特定目的的适销性。见 GNU General Public License 更多细节。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
分别使用椭圆曲线密码对文本消息进行java加密和解密   java如何将JTable滚动到特定值?   java JSP登录注销简单web应用程序,使用bean在数据库中存在数据时返回false   java无法编译,未设置类路径,包不存在?   java为什么这一变量会受到影响?   集合为什么Java在Map中没有putIfAbsent(key,supplier)方法?   安卓在Java中计算仿真时间   java初始化方法在主类中的指定方法之前运行   java如何在hadoop的reduce中将genericWritable恢复为用户定义的可写?   如何使用java替换pdf中的文本   参数不适用于ASP服务器的java HttpPost   创建对象时的java NullPointerException   Java JPanel中的swing图形有问题,但它在一个框架中工作   java Android Studio在硬件设备上运行时出错   google api类路径的java空指针异常   java如何将InputStream转换为DataHandler?   java在多个Jetty服务器之间共享连接池