Steve-xmh / amll-ttml-tool

A brand-new syllable lyric editor for Apple Music-like lyrics! 一个全新的逐词歌词编辑器!针对 Apple Music-like Lyrics 设计!
https://steve-xmh.github.io/amll-ttml-tool/
GNU General Public License v3.0
101 stars 10 forks source link

从 Apple Music 中获取 Apple Syllable 逐词歌词 #14

Closed SteamFinder closed 11 months ago

SteamFinder commented 11 months ago

Apple Music拥有丰富的TTML歌词库,专业性和准确性都极高 目前获取Apple Music中TTML歌词较方便的途径是通过Apple Music网页版使用的api接口获取 https://amp-api.music.apple.com/v1/catalog/cn/songs/歌曲id/syllable-lyrics

使用GET请求,带上headers即可获取到含有TTML歌词的JSON数据 headers示例(数据已脱敏)

    'Host': 'amp-api.music.apple.com',
    'Connection': 'keep-alive',
    'sec-ch-ua': '',
    'DNT': '1',
    'Media-User-Token': 'Media-User-Token',
    'sec-ch-ua-mobile': '',
    'Authorization': 'Authorization',
    'User-Agent': '',
    'sec-ch-ua-platform': '',
    'Accept': '*/*',
    'Origin': 'https://music.apple.com',
    'Sec-Fetch-Site': 'same-site',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Dest': 'empty',
    'Referer': 'https://music.apple.com/',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'

返回值

{
    "data": [
        {
            "id": "1587649590",
            "type": "syllable-lyrics",
            "attributes": {
                "ttml": "TTML歌词信息",
                "playParams": {
                    "id": "AP_1587649590",
                    "kind": "lyric",
                    "catalogId": "1587649590",
                    "displayType": 3
                }
            }
        }
    ]
}

使用Python写了个小程序,实测可以正常获取到TTML歌词。 但是目前存在的问题是Apple Music音乐库里的歌曲id未知,不像网易云那样直接写在url里,新歌曲需要抓包获取id

Steve-xmh commented 11 months ago

获取 AM 逐词歌词已经列入了待做事项,但是介于跨域请求的限制可能不能在网页端实现这样的功能。 最后可能会通过 Tauri 的桌面端实现,日后有空补充吧。