HOWTO · Python

Como tocar arquivo MP3 usando Python

Aprenda cinco maneiras de reproduzir um arquivo MP3 com Python, com orientações sobre instalação, caminhos e plataformas.

Nesta página

Para reproduzir um arquivo MP3 com Python, use playsound para um script de reprodução curto, pygame para controles do mixer ou python-vlc quando o VLC estiver disponível. O Python também pode pedir a um manipulador do navegador para abrir o arquivo com webbrowser, ou iniciar um reprodutor do sistema instalado. Em cada exemplo, substitua sample.mp3 pelo caminho do seu arquivo de áudio. Caminhos relativos são resolvidos a partir do diretório de trabalho atual do processo.

Reproduzir um arquivo MP3 com playsound

Instale o pacote de terceiros playsound com python -m pip install playsound. Em seguida, chame sua função de reprodução com o caminho do arquivo. Ele oferece suporte a formatos de áudio comuns, incluindo MP3 e WAV; a reprodução depende do backend de áudio da plataforma usado pelo pacote.

Este script completo reproduz sample.mp3 a partir do diretório de trabalho atual. Instale o pacote primeiro e coloque o arquivo nesse diretório, ou altere track para o caminho correto. A reprodução requer um dispositivo de áudio funcional e um backend de áudio de plataforma compatível com o pacote.

from pathlib import Path

track = Path("sample.mp3")
if track.is_file():
    from playsound import playsound

    playsound(str(track))

Reproduzir um arquivo MP3 com pygame

Instale o pygame com python -m pip install pygame. Sua API de mixer carrega a faixa e inicia a reprodução. A decodificação de MP3 depende da compilação do pygame e do SDL_mixer em uso, portanto, um arquivo WAV é uma alternativa prática se a compilação instalada não conseguir decodificar o seu MP3. Consulte como converter um arquivo MP3 para WAV.

Este script carrega sample.mp3 a partir do diretório de trabalho atual. Instale o pygame primeiro e forneça um backend de áudio. A chamada play() do mixer inicia a reprodução de forma assíncrona; o loop mantém o script ativo até a faixa terminar. A decodificação de MP3 depende da compilação do pygame e do SDL_mixer em uso, portanto, um arquivo WAV é uma alternativa prática se a compilação instalada não conseguir decodificar a faixa.

from pathlib import Path

track = Path("sample.mp3")
if track.is_file():
    import time

    import pygame

    pygame.mixer.init()
    pygame.mixer.music.load(str(track))
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        time.sleep(0.1)

Reproduzir um arquivo MP3 com python-vlc

python-vlc é o nome da distribuição no pip; sua importação em Python é vlc. Instale a ligação com python -m pip install python-vlc. A ligação usa o framework de mídia nativo do VLC, portanto, instale também um runtime VLC compatível e garanta que ele esteja disponível para o processo. A configuração necessária pode variar de acordo com o sistema operacional.

Este script usa o arquivo sample.mp3 no diretório de trabalho atual. Instale tanto a ligação python-vlc quanto um runtime VLC compatível antes de executá-lo. player.play() inicia a reprodução de forma assíncrona, de modo que o prompt mantém o processo ativo enquanto a faixa é reproduzida; pressione Enter quando quiser interrompê-la. A saída de áudio também é necessária.

from pathlib import Path

track = Path("sample.mp3")
if track.is_file():
    import vlc

    player = vlc.MediaPlayer(str(track))
    player.play()
    input("Press Enter to stop playback.\n")
    player.stop()

Abrir um arquivo MP3 com webbrowser

webbrowser faz parte da biblioteca padrão do Python, portanto, não precisa de instalação via pip. Este exemplo completo pede ao navegador configurado no sistema para abrir uma URL de arquivo para sample.mp3 no diretório de trabalho atual. Resolver o caminho e convertê-lo em URI trata espaços e outros caracteres do caminho.

from pathlib import Path
import webbrowser

track = Path("sample.mp3")
if track.is_file():
    webbrowser.open(track.resolve().as_uri())

Isso pede ao navegador ou ao manipulador registrado para abrir o arquivo. Não há garantia de que uma guia do navegador reproduza o áudio; o comportamento depende do navegador e do sistema operacional.

Iniciar um reprodutor do sistema a partir do Python

Use subprocess.run com uma lista de argumentos para iniciar um reprodutor de linha de comando instalado. Isso evita construir um comando de shell a partir do caminho do arquivo. Instale o reprodutor separadamente; a disponibilidade e os nomes dos comandos dependem do sistema operacional. Os exemplos abaixo usam mpg123 no Linux e afplay no macOS.

Este script completo usa mpg123 no Linux ou afplay no macOS para reproduzir sample.mp3 a partir do diretório de trabalho atual. Instale o reprodutor escolhido separadamente. A forma de lista de argumentos passa o caminho como um único argumento, mesmo quando ele contém espaços. check=True relata uma saída diferente de zero do reprodutor como um erro do Python, o que é útil ao diagnosticar uma inicialização com falha.

from pathlib import Path
import subprocess
import sys

track = Path("sample.mp3")
if track.is_file():
    if sys.platform.startswith("linux"):
        player = "mpg123"
    elif sys.platform == "darwin":
        player = "afplay"
    else:
        raise SystemExit("Choose a player command for this operating system.")

    subprocess.run([player, str(track)], check=True)

Para uma verificação simples de caminho antes de escolher um método de reprodução, este exemplo independente em Python imprime o nome do arquivo de um caminho no diretório de trabalho atual:

from pathlib import Path

track = Path("sample.mp3")
print(track.name)
sample.mp3