Automatic Ripping Machine(ARM)音乐 CD 抓轨配置指南:深入解析 `.abcde.conf`

发布时间:2026/10/13 2:57:18
Automatic Ripping Machine(ARM)音乐 CD 抓轨配置指南:深入解析 `.abcde.conf`
音视频后端【免费下载链接】automatic-ripping-machineAutomatic Ripping Machine (ARM) Scripts项目地址https://gitcode.com/gh_mirrors/au/automatic-ripping-machine点击查看免费下载Automatic Ripping MachineARM在识别出光盘为音乐 CD 后会将其转交给 abcde 完成抓轨与编码而承载所有抓轨策略的配置文件就是.abcde.conf。本文以 ARM 仓库自带的 setup/.abcde.conf 为骨架完整讲解每个配置分区的作用、取值与底层调用链并说明如何通过 ARM Web UI 在线编辑该文件让你可以按需定制输出格式、目录结构、并行编码数与 CDDB 元数据来源。一、.abcde.conf是什么abcdeA Better CD Encoder是 Linux 下经典的音频 CD 抓轨与编码工具ARM 并不自己实现音乐抓轨而是将音乐光盘任务外包给 abcde。仓库内 arm/ripper/utils.py 中的rip_music()函数展示了这一调用关系abcfile cfg.arm_config[ABCDE_CONFIG_FILE] if job.disctype music: logging.info(Disc identified as music) # If user has set a cfg.arm_config file with ARM use it if os.path.isfile(abcfile): cmd fabcde -d {job.devpath} -c {abcfile} {os.path.join(job.config.LOGPATH, logfile)} 21 else: cmd fabcde -d {job.devpath} {os.path.join(job.config.LOGPATH, logfile)} 21 ... args {status: JobState.AUDIO_RIPPING.value} database_updater(args, job) try: subprocess.check_output(cmd, shellTrue).decode(utf-8) logging.info(abcde call successful) args {status: JobState.IDLE.value} database_updater(args, job) return True except subprocess.CalledProcessError as ab_error: err fCall to abcde failed with code: {ab_error.returncode} ({ab_error.output}) args {status: JobState.FAILURE.value, errors: err} database_updater(args, job) logging.error(err)可以看到ARM 会读取arm.yaml中的ABCDE_CONFIG_FILE键得到配置文件路径然后用abcde -d 光驱设备 -c 配置文件调用 abcde并将标准输出与错误一并追加到 ARM 的任务日志中。若配置路径不存在则回退为不带-c的默认调用。抓轨期间任务状态被标记为JobState.AUDIO_RIPPING成功置为IDLE失败则写入FAILURE与错误信息。1.1 文件默认位置仓库文档 arm_wiki/Config-abcde.conf.md 明确指出默认位置为/home/arm/.abcde.conf而在 ARM 的实际部署中安装脚本会把它安装到系统配置目录Debian 安装脚本 scripts/installers/DebianInstaller.sh 会把setup/.abcde.conf复制为/etc/arm/config/abcde.conf并另存一份.default作为恢复备份Docker 容器脚本 scripts/docker/runit/arm_user_files_setup.sh 会在/etc/arm/config/abcde.conf缺失时从仓库setup/.abcde.conf复制并建立/etc/abcde.conf符号链接这是 abcde 自身的默认查找路径用作-C变量为空的兜底arm_wiki/Configuring-ARM.md 也提示如需调整音频 CD 相关设置可在/etc/arm/config/abcde.conf中找到 abcde 配置文件除非你在arm.yaml中另行指定了路径。也就是说默认路径随安装方式不同而略有差异/home/arm/.abcde.conf是文档给出的标准位置/etc/arm/config/abcde.conf是 ARM 安装器实际落盘的位置具体以arm.yaml的ABCDE_CONFIG_FILE值为准。1.2 ARM 如何加载与读取它arm/config/config.py 通过_load_abcde()以文本方式读取整个文件内容def _load_abcde(fp): with open(fp, r) as abcde_read_file: config abcde_read_file.read() return config随后同文件 arm/config/config.py# abcde config file, open and read contents abcde_config_path arm_config[ABCDE_CONFIG_FILE] abcde_config _load_abcde(abcde_config_path)即 ARM 启动时就会把整个 abcde 配置读入内存供 Web UI 展示与在线编辑使用。二、CDDB 元数据来源CDDBMETHOD 等CDDBMETHOD决定抓轨时从何处获取光盘的曲目与专辑元数据。仓库默认配置为CDDBMETHODmusicbrainz可选值为cddb、musicbrainz、cdtext可用逗号分隔组合为顺序尝试列表例如cddb,musicbrainz所有结果都会展示供选择。ARM 文档对musicbrainz有明确警示除非你清楚自己在做什么否则不要更改它Do not change this unless you know what youre doing因为 ARM 自身也是依赖 MusicBrainz 进行音频光盘识别与曲目入库的。2.1 ARM 侧的 MusicBrainz 集成ARM 在抓轨之前会先调用 arm/ripper/music_brainz.py 识别音乐光盘main()中先通过discid包计算光盘 Disc ID再依据arm.yaml的GET_AUDIO_TITLE配置可取none、musicbrainz、freecddb见 arm/ui/comments.json 中的说明决定是否查询 MusicBrainz。查询时get_disc_info()使用mb.set_useragent(apparm, versionstr(job.arm_version), ...)声明客户端身份然后调用mb.get_releases_by_discid(discid, includes[artist-credits, recordings])获取发行信息。check_musicbrainz_data()会从返回数据中筛选出format CD的发行版本解析艺人、专辑标题、年份与曲目列表调用process_tracks()逐曲写入 ARM 数据库并把crc_idrelease id、hasnicetitle、title、no_of_titles等写入任务记录。主流程 arm/ripper/main.py 中音乐光盘分支为elif job.disctype music: # Try to recheck music disc for auto ident music_brainz.main(job) if utils.rip_music(job, log_file): utils.notify(job, constants.NOTIFY_TITLE, fMusic CD: {job.title} {constants.PROCESS_COMPLETE}) utils.scan_emby()即先让 MusicBrainz 识别并入库再由 abcde 实际抓轨编码。2.2 其他 CDDB 相关选项仓库默认配置中以下选项均被注释保持默认但提供了完整说明可按需启用参数默认/示例说明CDDBURLhttps://freedb.freedb.org/~cddb/cddb.cgi指定自定义 CDDB 服务器若只想走代理设置http_proxy环境变量即可wget 会自动使用CDDBPROTO6CDDB 协议级别5 为 latin1 输出6 为 UTF-8 编码HELLOINFOwhoamihostnameCDDB 协议需要的用户名主机名信息CDDBSUBMITfreedb-submitfreedb.orgCDDB 变更提交通信地址CDDBCOPYLOCAL/CDDBLOCALDIR/CDDBLOCALRECURSIVEn/$HOME/.cddb/y是否把抓取的 CDDB 条目缓存在本地$CDDBLOCALDIRNOSUBMITn设为y后 abcde 永不询问是否提交编辑过的 cddb 文件NOCDDBQUERYn设为y等效于命令行-n永不访问 CDDB 服务器直接进入空白 cddb 文件编辑模式y隐含NOSUBMITyCDDBUSELOCALn设为y时优先使用本地缓存条目配合CDDBLOCALRECURSIVEyGrip 等工具也共用$HOME/.cddbSHOWCDDBFIELDSyear,genre逗号分隔指定解析函数输出的字段默认YEAR和GENRE不区分大小写y,g同样有效三、输出格式OUTPUTTYPE与编码器3.1 OUTPUTTYPE可选输出类型配置文件注释中给出的完整支持列表为flac、m4a、mp3、mpc、ogg、opus、mka、spx、vorbis、wav、wv、ape、aiff共 13 种。可用单一格式如ogg也可逗号分隔多格式同时输出如flac,mp3。注意OUTPUTTYPE已被弃用OUTPUTFORMAT字符串中不应再包含文件扩展名否则会得到.ogg.ogg这类重复后缀。#OUTPUTTYPEogg3.2 编码器语法ENCODERSYNTAX*ENCODERSYNTAX系列变量指定每种格式使用的编码器实现仓库配置中全部注释掉使用default#MP3ENCODERSYNTAXdefault #OGGENCODERSYNTAXdefault #FLACENCODERSYNTAXdefault #SPEEXENCODERSYNTAXdefault #MKAENCODERSYNTAXdefault #MPCENCODERSYNTAXdefault #WVENCODERSYNTAXdefault #APENCODERSYNTAXdefault #AACENCODERSYNTAXdefault #OPUSENCODERSYNTAXdefault #MP2ENCODERSYNTAXdefault #TTAENCODERSYNTAXdefault #AIFFENCODERSYNTAXdefault各格式可选编码器汇总来自仓库配置注释格式可用编码器Oggoggenc、vorbizeMP3lame、gogo、bladeenc、l3enc、xingmp3enc、mp3encFLACflac当前唯一支持Speexspeexenc唯一MPCmpcenc唯一WavPackwavpack、ffmpegAPEmac唯一AAC/M4Afdkaac、ffmpeg、neroAacEnc、faac、qaac、fhgaacencOpusopusenc唯一MP2twolame、ffmpegTTAtta、ttaencAIFFffmpeg唯一default是oggenc、lame、flac、speexenc、mpcenc、wavpack、fdkaac、opus、twolame、tta的有效取值它会同时决定二进制默认位置、命令行选项变量与选项传递位置。NORMALIZERSYNTAX目前只支持normalize。3.3 编码器选项*OPTS仓库配置给出了各编码器的推荐参数示例均默认注释MP3LAME推荐-V 0——可变比特率VBR目标约 245 Kbps、范围 220–260 Kbps参考 Hydrogenaudio 的 LAME 推荐设置#LAMEOPTS另有GOGOOPTS、BLADEENCOPTS如-br 192、L3ENCOPTS如-br 256000 -hq -crc、XINGMP3ENCOPTS、MP3ENCOPTS如-v -br 256000 -qual 9 -no-is -bw 16500。FLACFLACOPTS--silent是对 flacget_console_width()的 floating point exception 问题的规避flac 1.3.1 修正FLACGAINOPTS--add-replay-gain传给 MetaFlac 用于 ReplayGain 标签。AAC/M4Aabcde 2.7 起旧 AACENCOPTS 已作废fdkaacFDKAACENCOPTS--bitrate 192k或推荐--profile 2 --bitrate-mode 5 --afterburner 1FFmpegFFMPEGENCOPTS-c:a aac -b:a 192k老版本 FFmpeg 需加-strict -2neroAacEnc建议-q 0.65faac建议-q 250qaac--tvbr 100或--alacApple Losslessfhgaacenc--vbr 4。注意 Wine 路径带空格问题$HOME/.wine/drive_c/Program Files/qaac/qaac.exe会让 abcde 无法处理应使用$HOME/.wine/drive_c/qaac/qaac.exe。WavPackWAVENCOPTS建议-hx3WVGAINOPTS-a启用 album gaintrack gain 是默认。APEAPENCOPTS-c4000不设置时 mac 会出错取值 1000–5000。AIFFAIFFENCOPTS-write_id3v2 1 -id3v2_version 41 开启 id3v2 标签0 关闭版本 4 为 id3v2.43 为 id3v2.3。MP2twolame 高度推荐--bitrate 320。Opus参考opusenc -h。FFmpeg 通用MKA/其他WavPack-c:a wavpack -compression_level 6仅 FFmpegavconv 无原生编码器、ALAC-c:a alac、mp2-c:a mp2 -b:a 320k。3.4 编码器与工具路径配置注释提供了完整的二进制路径变量列表便于自定义LAME、GOGO、BLADEENC、L3ENC、XINGMP3ENC、MP3ENC、VORBIZE、OGGENC、FLAC、SPEEXENC、MPCENC、WVENC、APENC、FAAC、NEROAACENC、FDKAAC、OPUSENC、TWOLAME、TTA、TTAENC、QAAC、FHGAACENC。使用 avconv 而非 FFmpeg 时在FFMPEG变量中给出 avconv 的路径如FFMPEG/usr/bin/avconv。标签、抓轨与工具类ID3、ID3V2、MID3V2、EYED3、CDPARANOIA、CD_PARANOIA、CDDA2WAVicedax、PIRD、CDDAFS、CDDISCID、CDDBTOOL、MD5SUM、DISTMP3、VORBISCOMMENT、METAFLAC、NORMALIZEnormalize-audio、CDSPEEDeject、VORBISGAIN、MKCUE、MKTOCcdrdao、DIFF、WVGAIN、WVTAG、APETAG、GLYRC、IDENTIFY、CONVERT、DISPLAYCMD、WINE。3.5 音频抓取方式CDROMREADERSYNTAX与 HTTP 工具#CDROMREADERSYNTAXcdparanoia #CUEREADERSYNTAXdefault #CUE2DISCIDabcde.cue2discidCDROMREADERSYNTAX当前可选cdparanoia、libcdiocd-paranoia、icedax、cdda2wav、dagrab、pird、cddafs仅 macOS与flac。CUE 读取支持mkcue与abcde.mkcue内部实现无需外部程序两种模式CUE2DISCID则负责把 CUE 表转回 CD Disc ID 用于 CDDB 查询/path/to/cue2discid或内置的abcde.cue2discid。#HTTPGETwget #HTTPGETOPTS-q -O -HTTPGET默认 wgetFreeBSD 用 fetchHTTPGETOPTS-q -o -、macOS 用 curl-f -s。修改HTTPGET时HTTPGETOPTS也应同步调整若HTTPGETOPTS为空或未定义则使用默认选项。四、输出目录与文件名格式OUTPUTDIR / OUTPUTFORMAT4.1 输出目录OUTPUTDIR/home/arm/music/ #WAVOUTPUTDIRpwdOUTPUTDIR指定最终成品音乐的根目录ARM 默认指向arm用户家目录下的music。注意 Docker 容器脚本注释提到abcde 配置中的music与 Docker Compose 文档中的Music存在目录名大小写不一致需要建立符号链接统一。WAVOUTPUTDIR可单独指定中间 WAV 文件的存放位置默认当前目录。4.2 文件名格式OUTPUTFORMATOUTPUTFORMAT控制最终文件路径结构可使用变量OUTPUT、GENRE、ALBUMFILE、ARTISTFILE、TRACKFILE、TRACKNUM、YEAR。必须用单引号包裹abcde 会自动创建其中的目录部分。仓库默认OUTPUTFORMAT${ARTISTFILE}/${ALBUMFILE}/${TRACKNUM} - ${TRACKFILE} #OUTPUTFORMAT${ARTISTFILE}-${ALBUMFILE}/${TRACKNUM}.${TRACKFILE}即艺术家/专辑/序号 - 曲名的嵌套目录结构注释中的备选是艺术家-专辑/序号.曲名的单层结构。4.3 合辑与单轨专辑VAOUTPUTFORMATVarious ${ALBUMFILE}/${TRACKNUM} ${ARTISTFILE} ${TRACKFILE} ONETRACKOUTPUTFORMAT$OUTPUTFORMAT VAONETRACKOUTPUTFORMAT$VAOUTPUTFORMATVAOUTPUTFORMATVarious Artists 合辑的格式默认Various 专辑/序号 艺术家 曲名ONETRACKOUTPUTFORMAT/VAONETRACKOUTPUTFORMAT适用于单文件抓轨ONEFILE的格式默认分别继承上面两个变量。这与 ARM 文档中提到的Merge CD into single track (for live albums)能力对应——将整张 CD 合并为单个轨道文件适合现场专辑。4.4 文件名整理函数mungefilenameabcde 默认会对 CDDB 数据做三类清洗以得到可用文件名删除标题前的点号将空格替换为下划线可移除该规则以保留空格删除 Windows/Linux 都不允许的一批字符。仓库默认启用的函数mungefilename () { echo $ | sed s,:,\ -,g | sed s,/,-,g | tr -d \?\[:cntrl:\] }即把冒号替换为冒号空格、斜杠替换为连字符、删除问号与控制字符。注释中还有两个备选实现VARIANT 1works anywhere全部转小写把[- ,.:\/!#?$%^()]等一律替换为下划线、去除连续与首尾下划线并 recode 为 flat ASCIIVARIANT 2legible只把/与:替换为空格eyeD3 无法处理路径中的冒号合并连续空格、去首尾空格。另有可选的mungetrackname、mungeartistname、mungealbumname、mungegenre覆写函数。仓库默认启用了mungealbumname的一个实用技巧用cd-discid $CDROM计算的 ID 作为后缀避免多张Unknown Album未知专辑互相覆盖文件夹ID_SUFFIX$(cd-discid $CDROM | cut -f1 -d ) mungealbumname () { mungefilename $(echo $ | sed s,Unknown Album,Unknown Album_$ID_SUFFIX,g) }mungegenre默认只是把流派转为小写。五、行为控制并行、交互、垫零与低磁盘模式5.1 并行编码数MAXPROCSMAXPROCS4MAXPROCS指定同时运行的编码器数量等效于命令行-j。在 SMP多核系统上可显著加速默认 1仓库配置设为 4。5.2 交互模式与轨道垫零INTERACTIVEn PADTRACKSyINTERACTIVEn让 abcde 全程非交互命令行无对应开关一旦设置将永远非交互PADTRACKSy强制轨道号用 0 补足两位即使只有一首歌也输出01.my_song.ext样式。5.3 低磁盘模式与批量归一化#LOWDISKn #BATCHNORMnLOWDISKn默认并行化边读整张 CD 边编码设为y则关闭并行抓轨、编码交替进行适合磁盘空间紧张的系统BATCHNORMy启用批量归一化保留专辑内各曲目的相对音量差异。5.4 nice 级别#ENCNICE10 #READNICE10 #DISTMP3NICE10设置编码器、CD 读取器与 distmp3 进程的相对 nice 值父进程 nice 为 12 时编码器 nice 3 意味着绝对 nice 15。留空则使用默认 nice 增量tcsh 为 4bsdutils nice 为 10。5.5 NOGAP 与 KEEPWAVS#KEEPWAVSn #NOGAPyKEEPWAVSn编码后保留 WAV需同时把clean从默认 actions 中移除否则临时目录会被清空NOGAPy使用 lame 编码器时启用无间隔gapless编码。六、动作管线ACTIONS与播放列表6.1 ACTIONSabcde 的动作管线ACTIONSmusicbrainz,read,encode,tag,move,clean,playlist,getalbumart,embedalbumartACTIONS是逗号分隔的动作序列。可选动作cddb、cue、read、normalize、encode、tag、move、replaygain、playlist、getalbumart、embedalbumart、clean、default。动作间存在隐含依赖encode隐含readnormalize隐含readtag隐含cddb,read,encodemove隐含cddb,read,encode,tagreplaygain隐含cddb,read,encode,tag,moveplaylist隐含cddbembedalbumart隐含getalbumart。新动作可追加在default之后如ACTIONSdefault,playlist无需重复默认动作。仓库默认的完整管线是MusicBrainz 取元数据 → 抓轨 → 编码 → 打标签 → 移动到输出目录 → 清理临时文件 → 生成播放列表 → 下载并嵌入专辑封面。6.2 播放列表PLAYLIST#PLAYLISTFORMAT${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u #PLAYLISTDATAPREFIX #VAPLAYLISTFORMAT${ARTISTFILE}-${ALBUMFILE}.${OUTPUT}.m3u #VAPLAYLISTDATAPREFIX #DOSPLAYLISTn播放列表格式与OUTPUTFORMAT使用同样的变量若指定了子目录abcde 会自动创建并把列表中的文件引用指向该子目录。PLAYLISTDATAPREFIX可为每个文件名加任意前缀如流媒体 URL。VAPLAYLISTFORMAT/VAPLAYLISTDATAPREFIX是合辑版本。DOSPLAYLISTy则使用 CR-LF 换行部分硬件播放器要求。6.3 专辑封面album art#GLYRCOPTS #ALBUMARTFILEcover.jpg #ALBUMARTTYPEJPEG #IDENTIFYOPTS #CONVERTOPTS #DISPLAYCMDOPTS-resize 512x512 -title abcde_album_art #ALBUMARTALWAYSCONVERTnGLYRCOPTS传给 glyrc 下载封面例如--formats jpg;jpeg只搜索 JPEG、--from provider、--lang langcode限定来源与语言ALBUMARTFILE/ALBUMARTTYPE指定封面文件名与类型ImageMagick 相关CONVERTOPTS如-colorspace RGB -resize 600x600、IDENTIFYOPTS、DISPLAYCMDOPTS。默认仅在图片类型与ALBUMARTTYPE不同时才调用 convert设ALBUMARTALWAYSCONVERTy可强制总是转换。6.4 MP3 标签版本#ID3TAGVid3v2.4 #ID3OPTS #ID3V2OPTS #EYED3OPTS--set-encodingutf16-LEMP3 有三种打标签方式id3v1id3、id3v2.3id3v2、id3v2.4eyeD3默认。ID3TAGV可选择旧格式EYED3OPTS默认使用 UTF-16-LE 编码。七、光驱与系统相关设置7.1 光驱设备与 IDE 总线#CDROM/dev/cdrom #CDPARANOIACDROMBUSdCDROM指定读取设备可定义为单轨 flac 文件但通常无意义IDE 总线需CDPARANOIACDROMBUSdide-scsi 仿真层则用g。注意 ARM 调用 abcde 时始终通过-d显式传入实际光驱设备路径job.devpath因此此处通常无需修改。7.2 光驱与抓轨选项#CDPARANOIAOPTS #CDDA2WAVOPTS #PIRDOPTS-p #DAGRABOPTS #CDDAFSOPTS-f #EJECTOPTS #CDSPEEDOPTS-x #CDSPEEDVALUECDPARANOIOPTS同时被 GNU 的 cd-paranoia 使用设置CDROMREADERSYNTAXlibcdio时用此变量dagrab 的-n 8sectors per request值得尝试CDSPEEDOPTS-x配合CDSPEEDVALUE用于设置读取速度。EJECTOPTS是 eject 命令选项。7.3 抓轨完成后弹出光盘#EJECTCDy取消注释即让 abcde 在所有轨道读取完成后自动弹出 CD。这与 ARM 侧的AUTO_EJECT配置arm/ui/comments.json 中有说明是不同层级的两套弹出机制可同时生效。7.4 远程编码与详细输出#REMOTEHOSTSfoo,bar,baz,quux,qiix #EXTRAVERBOSE0REMOTEHOSTS可把编码任务分发到远程主机需本地安装 distmp3、远程运行 distmp3hostEXTRAVERBOSE1,2,...输出后台动作的详细信息网络慢或 CDDB 服务器响应不及时时有帮助。八、自定义钩子函数pre_read / post_read / post_encodeabcde 支持三个可覆写的 shell 钩子仓库默认均为空实现可注入自定义命令#pre_read () #{ #: #}pre_read读盘前执行。可关闭托盘eject -t需 eject 支持、设置读取速度Debian 下eject -x或cdset -xpost_read读盘后执行。可保存 CD TOC 副本post_encode编码后执行。可把结果目录通过网络移动走或与之前运行结果对比做测试。注意钩子中调用的可执行文件必须在$PATH中或使用完整/path/to/binary路径。九、通过 ARM Web UI 在线编辑ARM 在设置 → abcde Config页签提供了图形化编辑入口arm/ui/settings/templates/settings/abcde.html页面上是一个覆盖全屏高度的文本域内容为当前 abcde 配置全文{{ abcde_cfg }}下方 Submit 按钮保存。若检测到配置文件只读文本域会被禁用并提示 abcde.conf is read-only。对应的服务端逻辑在 arm/ui/settings/settings.py 的save_abcde()route_settings.route(/save_abcde_settings, methods[POST]) login_required def save_abcde(): ... form AbcdeForm() if form.validate(): abcde_cfg_str str(form.abcdeConfig.data).strip() # Windows machines can put \r\n instead of \n newlines, which corrupts the config file clean_abcde_str \n.join(abcde_cfg_str.splitlines()) try: with open(cfg.abcde_config_path, w) as abcde_file: abcde_file.write(clean_abcde_str) abcde_file.close() success True cfg.abcde_config clean_abcde_str except OSError as e: app.logger.error(f{cfg.abcde_config_path} is read-only, exc_infoe)要点表单由 arm/ui/forms.py 中的AbcdeForm提供abcdeConfig文本字段DataRequired校验保存前会把\r\n统一为\n\n.join(abcde_cfg_str.splitlines())避免 Windows 换行破坏配置写入路径即cfg.abcde_config_path来自arm.yaml的ABCDE_CONFIG_FILE写失败只读会记录错误日志并返回successFalse配置修改后立即生效于内存中的cfg.abcde_config无需重启后续音乐光盘任务调用abcde -c 路径时自然读到新配置。同时 arm/ui/settings/settings.py 通过is_read_only(cfg.abcde_config_path)探测文件权限来展示只读提示。更完整的 UI 说明见 arm_wiki/Web-Settings.md 的 abcde Config 一节。十、安装与排查提示依赖安装Debian 安装脚本 scripts/installers/DebianInstaller.sh 会apt install -y abcde ... cdparanoia ...等依赖包确保 abcde 与抓轨工具就位文件落盘位置安装时会把仓库的setup/.abcde.conf复制为/etc/arm/config/abcde.conf同时保留abcde.conf.default备份Docker 场景还会链接/etc/abcde.conf默认路径的两种说法文档层面对外宣称/home/arm/.abcde.confabcde 的用户级默认位置ARM 实际安装则统一到/etc/arm/config/abcde.conf。两者以arm.yaml的ABCDE_CONFIG_FILE配置值为准这也是 UI 在线编辑写入的目标路径识别链路音乐光盘需在arm.yaml中把GET_AUDIO_TITLE设为musicbrainz才会走完整识别否则仅依赖 abcde 自身CDDBMETHOD获取元数据日志排查abcde 的完整输出含错误码会追加写入 ARM 任务日志rip_music()中的重定向抓轨失败时CalledProcessError携带的 returncode 与输出可在任务详情中查看。结语.abcde.conf是 ARM 音乐抓轨能力的策略中枢从元数据来源CDDBMETHOD、输出容器与编码器选择、目录与文件名格式、并行编码数到播放列表、封面获取与自定义钩子全部集中于此。ARM 的工程实现arm/config/config.py、arm/ripper/utils.py、arm/ui/settings/settings.py让这一文件既可以在安装时按需复制修改也可以随时通过 Web UI 在线编辑并即时生效。掌握上述参数你就能把放入光盘 → 自动识别 → 自动抓轨 → 自动归档的音乐自动化流程调整到完全符合个人收藏习惯。赞分享音视频后端【免费下载链接】automatic-ripping-machineAutomatic Ripping Machine (ARM) Scripts项目地址https://gitcode.com/gh_mirrors/au/automatic-ripping-machine点击查看免费下载相关推荐claude-skills 仓库 flutter-expert 技能实战指南Flutter 3 跨平台应用的 Riverpod/Bloc 状态管理、GoRouter 导航与性能优化claude skills 仓库 flutter expert 技能实战指南Flutter 3 跨平台应用的 Riverpod/Bloc 状态管理、GoRou音视频后端Automatic Ripping Machine (ARM) 入门指南从硬件选型到系统配置Automatic Ripping Machine ARM 入门指南从硬件选型到系统配置 项目概述 Automatic Ripping Machine ARM音视频后端CTF Wiki 实战解析RSA 私钥 d 泄露攻击与 Wiener 攻击的原理与攻防实践CTF Wiki 实战解析RSA 私钥 d 泄露攻击与 Wiener 攻击的原理与攻防实践 本文基于 CTF Wiki 中文仓库中 RSA 私钥 d 相关攻击音视频后端上一篇抖音视频批量下载终极指南douyin-downloader 一套就够无水印全类型保存下一篇抖音下载工具 douyin-downloader 完整上手指南批量去水印下载、直播录制与评论采集一次讲清创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考