You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用最新版JS MediaTags无法读取歌曲年份信息的技术咨询

解决JS MediaTags无法获取歌曲年份的问题

你的问题出在ID3标签的字段差异上:JS MediaTags默认只读取旧版ID3v1的TYE字段,但你的歌曲年份可能存在ID3v2的其他字段里(比如TDRC录制时间、TYER年份,或是自定义TXXX字段),而Mp3tag会自动兼容解析这些不同的年份字段,所以能正常显示。

给你几个具体的解决方法:

  • 先排查自定义字段TXXX:你的元数据里包含TXXX(用户自定义文本字段),年份可能藏在这里。可以打印TXXX.data的具体内容,看看有没有类似"year"的键值对,比如:

    console.log(tag.tags.TXXX.data); // 查看所有自定义字段
    
  • 读取ID3v2标准年份字段:如果歌曲用的是ID3v2标签,年份通常存在TDRC(录制时间,格式一般是YYYY-MM-DD)或TYER字段里,直接在回调里手动读取:

    jsmediatags.read('目标歌曲路径', {
      onSuccess: function(tag) {
        let year = null;
        // 优先取TDRC的年份部分
        if (tag.tags.TDRC) {
          year = tag.tags.TDRC.data.split('-')[0];
        }
        // 再尝试TYER字段
        else if (tag.tags.TYER) {
          year = tag.tags.TYER.data;
        }
        // 最后检查TXXX自定义字段
        else if (tag.tags.TXXX) {
          for (let key in tag.tags.TXXX.data) {
            if (key.toLowerCase().includes('year')) {
              year = tag.tags.TXXX.data[key];
              break;
            }
          }
        }
        console.log('获取到的年份:', year);
      },
      onError: function(err) {
        console.error('读取失败:', err);
      }
    });
    
  • 确认Mp3tag里的对应字段:在Mp3tag中开启「显示标签原始ID」的选项,就能直接看到年份对应的具体字段名,再对应到JS MediaTags里读取即可。

内容的提问来源于stack exchange,提问作者Toniq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 20:02:39