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

Python CSV转MP3代码出现Index Error问题求助

YouTube转MP3代码IndexError问题排查与修复

你遇到的是IndexError: list index out of range(列表索引越界),本质是代码尝试访问一个空列表的索引,下面是常见原因和解决办法:

  1. 库版本过时
    如果你用的是pytube,旧版本无法适配YouTube的最新反爬策略,导致获取不到音频流列表。执行更新命令:

    pip install --upgrade pytube
    

    要是用的是停止维护的youtube-dl,直接替换为活跃维护的yt-dlp:

    pip install yt-dlp
    
  2. 代码逻辑缺陷
    很多人写代码时会直接用streams[0]取第一个音频流,但如果过滤后的流列表为空,就会触发索引错误。改成安全的写法:

    # 以pytube为例
    from pytube import YouTube
    
    yt = YouTube("你的视频URL")
    audio_streams = yt.streams.filter(only_audio=True)
    # 先判断流是否存在
    if not audio_streams:
        print("无法获取有效音频流")
        exit()
    # 取第一个可用流
    audio_stream = audio_streams.first()
    audio_stream.download(output_path="./downloads")
    
  3. 视频访问限制
    部分视频有地域锁、年龄限制或私有设置,导致库无法拉取流数据。可以尝试:

    • 更换网络环境(比如用对应地域的代理)
    • 确认视频是否为公开可访问状态
  4. 转MP3补充步骤
    下载的音频通常是.mp4格式,要转成MP3可以用pydub(依赖ffmpeg):

    # 先安装依赖
    pip install pydub
    # 系统需安装ffmpeg,Windows可下载后添加到环境变量,Linux/macOS用包管理器安装
    

    转换代码:

    from pydub import AudioSegment
    
    input_file = "./downloads/下载的音频.mp4"
    output_file = "./downloads/转换后的音频.mp3"
    AudioSegment.from_file(input_file).export(output_file, format="mp3")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:35:35