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

Musixmatch API无法获取官网已存在歌曲的歌词问题咨询

Musixmatch API无法获取官网已存在歌词的问题

我正在使用Musixmatch API获取歌曲歌词,大部分歌曲能正常返回结果,但部分在Musixmatch官网明确存在歌词的歌曲,API却无法返回内容。例如Lana Del Rey的《Ride》,官网可查,但API调用时要么返回"No lyrics found",要么返回404状态码。

以下是我使用的代码:

import requests
import time

def get_lyrics(track_title, artist_name):
    base_url = "https://api.musixmatch.com/ws/1.1/"
    lyrics_url = f"{base_url}matcher.lyrics.get"
    
    params = {
        'q_track': track_title,
        'q_artist': artist_name,
        'apikey': 'mykey'  # Replaced with my actual API key
    }
    
    for attempt in range(3):  # Retry up to 3 times
        response = requests.get(lyrics_url, params=params)
        
        if response.status_code == 200:
            try:
                json_response = response.json()
                body = json_response['message']['body']
                
                if isinstance(body, dict) and 'lyrics' in body:
                    lyrics = body['lyrics'].get('lyrics_body', 'No lyrics found.')
                    return lyrics
                else:
                    return "No lyrics found."
            
            except ValueError:
                return "No lyrics found or invalid response format."
        
        elif response.status_code == 404:
            return "Lyrics not found for this track."
        
        elif response.status_code == 500:
            print("Server error (500): Retrying...")
            time.sleep(2)
        
        else:
            return f"Error: API request failed with status code {response.status_code}"
    
    return "Error: Could not retrieve lyrics after multiple attempts."

# Testing the function
lyrics = get_lyrics("ride", "lana del rey")
print(lyrics)

注:我了解API无法返回完整歌词,此问题仅针对完全无法获取歌词的情况。

咨询问题

  1. Musixmatch API是否存在官网有但API无法获取歌词的已知问题?
  2. 这是否与区域限制或官网与API的数据同步问题有关?
  3. 有无可行的解决办法或额外步骤可确保获取这些歌词?

问题解答

  1. Musixmatch API是否存在官网有但API无法获取歌词的已知问题?
    是的,这是Musixmatch API的公开限制。根据官方文档,API可访问的歌词库与官网并不完全一致——部分歌词因版权授权协议、合作伙伴专属权限等原因,仅对官网开放,API无法调用。这类情况在主流歌手的部分作品中较为常见。

  2. 这是否与区域限制或官网与API的数据同步问题有关?

  • 区域限制是核心原因之一:部分歌词的授权范围仅限特定地区,API会根据请求来源IP过滤内容,即使你所在区域能在官网看到歌词,API也可能因授权规则返回无结果。
  • 数据同步问题概率极低:Musixmatch官网与API共享底层数据,但少量歌词会先在官网上线,待完成API侧的授权流程后才开放调用,不过这种延迟通常不会超过数天。
  1. 有无可行的解决办法或额外步骤可确保获取这些歌词?
  • 优化匹配精度:尝试使用更精确的查询参数,比如在q_track中添加版本信息(如"ride (ultraviolence version)");或先通过matcher.track.get接口获取歌曲的track_id,再用lyrics.get接口直接通过ID查询,避免字符串匹配误差。
  • 检查套餐权限:免费版/基础版API的访问范围有限,升级到高级套餐可解锁更多歌词内容,建议核对你的API密钥所属套餐的权限说明。
  • 规避区域限制:若因IP区域受限,可尝试使用目标授权地区的代理服务器发起请求,但需严格遵守Musixmatch的API使用条款,避免账号封禁。
  • 注意:解析官网页面获取歌词属于违反服务条款的行为,存在被封禁的风险,不建议采用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 07:46:01