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

使用Python MoviePy转换MP4为MP3后音频出现重复问题求助

问题分析与解决方案

你的MP3转换后出现4秒后重复卡顿的问题,根源出在这两个核心点:

  • 直接把Pytube下载的音频流(实际是m4a/webm格式)命名成.mp3文件,MoviePy读取格式错误的文件时会出现解析异常。
  • 用同一个文件路径同时执行读取和写入操作,导致文件内容被覆盖损坏,引发播放异常。

修复后的代码

import os
from pytube import YouTube
from moviepy.editor import AudioFileClip

link = input("Coloque o link: ")
yt = YouTube(link)

def removespecialchars(string):
    allowed_chars = set('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-()[]{}\\:')
    cleaned_string = ''.join(char for char in string if char in allowed_chars)
    return cleaned_string

print("Title: ", yt.title)
print("Views: ", yt.views)

while True:
    formatChoice = input("Você quer mp3 ou mp4? ").upper()
    if formatChoice == "MP4":
        youtubeDownloadMP4 = yt.streams.get_highest_resolution()
        youtubeDownloadMP4.download("D:\\Videos\\YoutubeVideo")
        print("Seu vídeo foi instalado")
        break
    elif formatChoice == "MP3":
        # 优先选择m4a格式的音频流,兼容性更好
        youtubeDownloadMP3 = yt.streams.filter(only_audio=True, file_extension='m4a').first()
        caminho = "D:\\Music"
        clean_title = removespecialchars(yt.title)
        
        # 临时存储下载的原音频(保留m4a格式)
        temp_filename = f"{clean_title}.m4a"
        temp_path = os.path.join(caminho, temp_filename)
        # 最终MP3文件路径
        mp3_path = os.path.join(caminho, f"{clean_title}.mp3")
        
        # 下载原音频到临时文件
        youtubeDownloadMP3.download(caminho, filename=temp_filename)
        
        # 读取临时文件并转换为MP3
        audio_clip = AudioFileClip(temp_path)
        audio_clip.write_audiofile(mp3_path, codec='libmp3lame')
        
        # 转换完成后删除临时文件
        os.remove(temp_path)
        
        print("Seu mp3 foi instalado")
        break
    else:
        print("Escreva 'mp3' ou 'mp4' burro")

关键改动说明

  1. 规范格式处理:优先选择m4a格式的音频流,下载时保留原格式后缀,避免MoviePy解析出错。
  2. 分离读写路径:用临时文件存储原始音频,转换完成后写入新的MP3文件,彻底避免读写冲突导致的文件损坏。
  3. 清理冗余文件:转换完成后自动删除临时m4a文件,避免磁盘空间浪费。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:58:21