HOWTO · Python

Reproducir archivo MP3 usando Python

Aprende cinco formas de reproducir un archivo MP3 con Python, con orientación sobre instalación, rutas y plataformas.

En esta página

Para reproducir un archivo MP3 con Python, usa playsound para un script de reproducción breve, pygame para controlar el mezclador o python-vlc si VLC está disponible. Python también puede pedirle a un navegador que abra el archivo con webbrowser o iniciar un reproductor del sistema instalado. En cada ejemplo, sustituye sample.mp3 por la ruta de tu archivo de audio. Las rutas relativas se resuelven desde el directorio de trabajo actual del proceso.

Reproducir un archivo MP3 con playsound

Instala el paquete de terceros playsound con python -m pip install playsound. Después, llama a su función de reproducción e indica la ruta del archivo. Admite formatos de audio comunes, como MP3 y WAV; la reproducción depende del backend de audio disponible en la plataforma para el paquete.

Este script completo reproduce sample.mp3 desde el directorio de trabajo actual. Primero instala el paquete y coloca allí el archivo, o cambia track para que apunte a la ruta correcta. Para reproducirlo, necesitas un dispositivo de audio funcional y un backend de audio de la plataforma compatible con el paquete.

from pathlib import Path

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

    playsound(str(track))

Reproducir un archivo MP3 con pygame

Instala pygame con python -m pip install pygame. Su API de mezclador carga la pista e inicia la reproducción. La decodificación de MP3 depende de la compilación de pygame y SDL_mixer que uses; si la compilación instalada no puede decodificar tu MP3, un archivo WAV es una alternativa práctica. Consulta cómo convertir un archivo MP3 a WAV.

Este script carga sample.mp3 desde el directorio de trabajo actual. Instala primero pygame y asegúrate de disponer de un backend de audio. La llamada play() del mezclador inicia la reproducción de forma asíncrona; el bucle mantiene el script en ejecución hasta que termina la pista. La decodificación de MP3 depende de la compilación de pygame y SDL_mixer que uses, así que un archivo WAV es una alternativa práctica si la compilación instalada no puede decodificar la pista.

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)

Reproducir un archivo MP3 con python-vlc

python-vlc es el nombre de la distribución de pip; el módulo que se importa en Python es vlc. Instala el enlace con python -m pip install python-vlc. Como este enlace utiliza el framework multimedia nativo de VLC, instala también un entorno de ejecución compatible de VLC y comprueba que el proceso pueda acceder a él. La configuración necesaria puede variar según el sistema operativo.

Este script usa el archivo sample.mp3 del directorio de trabajo actual. Antes de ejecutarlo, instala tanto el enlace python-vlc como un entorno de ejecución compatible de VLC. player.play() inicia la reproducción de forma asíncrona, por lo que la solicitud mantiene el proceso en ejecución mientras suena la pista; pulsa Intro cuando quieras detenerla. También necesitas salida de audio.

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 un archivo MP3 con webbrowser

webbrowser forma parte de la biblioteca estándar de Python, así que no hace falta instalarlo con pip. Este ejemplo completo pide al navegador configurado en el sistema que abra una URL de archivo correspondiente a sample.mp3, situado en el directorio de trabajo actual. Resolver la ruta y convertirla en una URI permite manejar espacios y otros caracteres de la ruta.

from pathlib import Path
import webbrowser

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

Esto pide al navegador o al controlador registrado que abra el archivo. No garantiza que el audio se reproduzca en una pestaña del navegador: el comportamiento depende del navegador y del sistema operativo.

Iniciar un reproductor del sistema desde Python

Usa subprocess.run con una lista de argumentos para iniciar un reproductor de línea de comandos instalado. Así evitas construir un comando de shell a partir de la ruta del archivo. Instala el reproductor por separado; su disponibilidad y el nombre del comando dependen del sistema operativo. Los ejemplos siguientes usan mpg123 en Linux y afplay en macOS.

Este script completo usa mpg123 en Linux o afplay en macOS para reproducir sample.mp3 desde el directorio de trabajo actual. Instala el reproductor elegido por separado. La lista de argumentos pasa la ruta como un solo argumento, incluso si contiene espacios. check=True hace que un código de salida distinto de cero del reproductor se notifique como un error de Python, lo que resulta útil para diagnosticar un fallo al iniciarlo.

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 comprobar una ruta antes de elegir un método de reproducción, este ejemplo independiente de Python imprime el nombre del archivo indicado por una ruta del directorio de trabajo actual:

from pathlib import Path

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