
Antra智能去重原理ISRC身份索引如何让你的音乐库保持整洁并节省存储【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/AntraAntra 是一款桌面音乐库构建工具能把 Spotify、Apple Music、YouTube Music、Amazon Music、Tidal、Qobuz、Deezer 等平台的链接转成带完整标签的本地无损音乐库FLAC、ALAC、AAC、MP3。它内置的智能去重功能基于ISRC国际标准录音码建立全库身份索引同一首歌无论从哪个歌单、哪个专辑导入都只保留一份文件——音乐库保持整洁硬盘空间也不再被重复歌曲悄悄吃掉。为什么本地音乐库会产生重复文件用 Antra 这类工具建库重复几乎是必然发生的 一首歌同时出现在原专辑和精选集里 单曲下载后又下载了整张专辑 多个歌单引用了同一批歌曲️ 同一首歌在不同平台上的标题、版本写法略有差异如果只按文件名相同就跳过来判断要么漏判换了一个文件夹名就重复下载要么误判同名不同版本被当成同一首。Antra 的解法是给每首歌一张身份证。 什么是 ISRC每首录音的身份证号ISRCInternational Standard Recording Code国际标准录音码是唱片业为每一版录音分配的全球唯一编码。它识别的是这一版具体的录音而不是歌名——《Song (Remastered)》和《Song》拥有不同的 ISRC。这意味着只要拿到 ISRC就能 100% 确认两个文件是同一首录音不依赖标题文本的相似度猜测。这正是 Antra 精确匹配的核心官方特性指南中称为 ISRC-Based Exact Matching详见 FEATURES.md。 ISRC 如何进入你的音乐文件Antra 的处理分两步解析antra/core/isrc_enricher.py 中的ISRCEnricher将 Spotify 曲目 ID 分批每批 50 首查询官方接口换取 ISRC主接口拿不到时会自动降级到备用接口兜底并对限流429做自动换令牌重试。写入标签antra/utils/tagger.py 把 ISRC 持久化到文件标签里——FLAC 写入isrc标签、MP3 写入TSRC帧、M4A 写入免费表单标签。此后任何播放器、任何工具都能读到这首歌的身份证号。 身份索引一次扫描全库查重去重的核心在 antra/utils/organizer.py。启动时LibraryOrganizer会扫描整个音乐库根目录下的所有音频文件从每个文件的标签中提取一组身份键并汇入一个全局索引身份键信号强度说明isrc:xxx⭐ 最强ISRC 相同 同一版录音spotify:xxx很强平台曲目 ID 相同upc:xxx:碟:轨强专辑条码 碟号 轨号专辑级定位title_artist/title_artists兜底归一化后的歌名 艺术家组合没有 ISRC 的老文件也有救歌名 艺术家的归一化键会兜底连 A B、B A 这类不同排序的艺人写法都会被归一成同一个键。这套逻辑定义在 antra/utils/organizer.py。⚡ 下载前查重智能去重模式如何工作每次下载前antra/utils/organizer.py 的is_already_downloaded()会依次检查这条身份键是否已命中索引只要任意一个键指向一个真实存在的文件就判定为已下载直接复用原文件跳过下载。这带来两个直接收益省存储同一首歌不再产生第 2、3 份副本⏱️省时间280 首歌的旧歌单可能只需下载其中没听过的几首Antra 还提供两种去重策略FEATURES.md智能去重默认全库查重同一 ISRC 出现在任何文件夹都会跳过完整专辑模式只查目标路径允许同一首歌在原专辑和精选集里各保留一份适合收藏党️ 只跳过确定相同绝不误伤不确定去重最怕的不是多存一份而是把不同的歌误判成同一首。Antra 在 antra/utils/organizer.py 中严格区分两种情况✅能确证是不同录音标签可读且身份键无交集→ 才允许在旁边生成song (2)副本❓无法判断文件标签损坏、读不出信息→ 一律不产生重复副本此外歌单里出现的歌曲若已存在Antra 优先创建硬链接接入歌单文件夹——同一磁盘上额外占用空间为零跨盘时才退化为复制antra/utils/organizer.py。配合 antra/utils/library_maintenance.py 的专辑合并工具整个库可以始终保持一首歌 一个文件。 ISRC 缓存查重更快还不浪费配额ISRC 解析要调用外部接口每次都查既慢又容易触发限流。Antra 在 antra/core/isrc_cache.py 里建了一个本地 SQLite 缓存isrc_cache.db✅ 已解析成功的 ISRC 缓存30 天——长期有效但到期自动重新验证防止脏数据永远留在库里⏳ 此曲无 ISRC的负结果只缓存 24 小时——目录后来补上了 ISRC 也能很快被捡回来 整个播放清单全部命中缓存时一次网络请求都不会发——连令牌都不申请总结一套索引三份收益收益实现音乐库整洁全局身份索引一首歌全库只存一份节省存储空间下载前查重 歌单硬链接零冗余副本速度快、配额省ISRC 本地缓存命中即免网络请求从 ISRC 解析、标签写入到全库身份索引与下载前查重Antra 的去重链路环环相扣。你只需要粘贴链接、点击 Add to Library重复检测会默默替你完成。相关源码入口身份索引与去重决策antra/utils/organizer.pyISRC 解析与限流处理antra/core/isrc_enricher.pyISRC 持久缓存antra/core/isrc_cache.py标签写入含 ISRCantra/utils/tagger.py专辑/曲目整理维护antra/utils/library_maintenance.py功能特性总览FEATURES.md【免费下载链接】AntraA desktop music library builder that turns Spotify, Youtube Music Apple Music, Amazon Music, Tidal, Qobuz, and Deezer links into fully tagged local library in FLAC, ALAC, Dolby Atmos, AAC, or MP3.项目地址: https://gitcode.com/gh_mirrors/an/Antra创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考