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

使用itunes-dl脚本下载Apple Music专辑时遇ValueError报错求助

解决itunes-dl脚本下载Apple Music专辑时的ValueError: substring not found问题

问题场景

使用itunes-dl脚本下载Apple Music专辑时,触发如下报错:

File "D:\fml.py", line 303, in main
    schema_start_index = album_res.index(schema_start_string)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: substring not found

尝试修改第302行的schema_start_string,将原代码中的name替换为id:

schema_start_string = '<script id="schema:music-album" type="application/ld+json">'

但报错依旧。

可行解决方法

  • 检查页面结构变更:手动打开目标专辑的HTML页面,查看实际包含schema:music-album的script标签属性格式——Apple Music网页结构可能已更新,比如属性改为class而非id,或属性值存在大小写、额外字符等细微改动,需按实际标签内容调整匹配字符串。
  • 改用正则匹配替代精确查找:原代码的index方法依赖精确字符串匹配,容错性差,替换为正则表达式定位标签:
    import re
    # 替换原有的index查找逻辑
    schema_match = re.search(r'<script[^>]*schema:music-album[^>]*type="application/ld\+json">', album_res)
    if schema_match:
        schema_start_index = schema_match.end()
    else:
        raise ValueError("无法找到schema:music-album标签")
    
  • 完善请求头模拟:脚本可能未模拟浏览器请求头,导致Apple Music返回的页面结构与浏览器中看到的不一致。添加User-Agent、Accept等常见浏览器请求头,确保拿到完整的网页内容。
  • 验证专辑访问权限:部分Apple Music专辑需登录才能获取完整页面数据,若脚本未处理登录逻辑,返回的页面可能不含schema数据。检查目标专辑是否需要登录,若需要,给脚本添加对应Cookie或登录凭证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 18:42:09