Skip to main content
Glama
eduardoddddddd

youtube-music-mcp

README.md
# YouTube Music MCP

[![CI](https://github.com/eduardoddddddd/youtube-music-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/eduardoddddddd/youtube-music-mcp/actions/workflows/ci.yml)
[![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB.svg)](https://www.python.org/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

Servidor MCP y plugin personal de Codex para consultar YouTube Music de forma local y de solo
lectura. Permite explorar favoritos, playlists y el catálogo sin incorporar credenciales ni datos
privados al repositorio.

## Funciones

- Listar y filtrar canciones marcadas con **Me gusta**.
- Listar playlists de la biblioteca.
- Obtener el contenido de la playlist de favoritos (`LM`).
- Buscar canciones, vídeos, álbumes, artistas y playlists.
- Buscar por género incorporándolo a la consulta del catálogo.
- Resumir favoritos por artista, álbum y año.
- Exportar favoritos a CSV o JSON.
- Trabajar con API en vivo o con snapshots privados capturados desde Chrome.

## Privacidad y arquitectura

El servidor tiene dos modos de lectura:

1. **`live_api`**: usa una sesión local de `ytmusicapi`.
2. **`browser_snapshot`**: usa snapshots de metadatos generados desde una sesión de Chrome ya
   iniciada, sin guardar cookies, cabeceras ni contraseñas.

Los archivos privados se almacenan fuera del repositorio:

```text
~/.config/youtube-music-mcp/browser.json
~/.config/youtube-music-mcp/liked-snapshot.json
~/.config/youtube-music-mcp/playlists-snapshot.json
```

El MCP no expone herramientas que modifiquen la cuenta.

## Herramientas MCP

| Herramienta | Descripción |
| --- | --- |
| `auth_status` | Comprueba la fuente de datos disponible. |
| `list_liked_songs` | Lista y filtra canciones favoritas. |
| `list_library_playlists` | Lista playlists guardadas. |
| `get_playlist` | Obtiene canciones de una playlist. |
| `search_music` | Busca en el catálogo por texto, artista o género. |
| `summarize_liked_library` | Resume artistas, álbumes y años. |
| `export_liked_songs` | Exporta favoritos a CSV o JSON. |

## Instalación local

Requisitos: Python 3.11 o posterior y [uv](https://docs.astral.sh/uv/).

```bash
git clone https://github.com/eduardoddddddd/youtube-music-mcp.git
cd youtube-music-mcp
uv sync
./scripts/configure-local-path.sh
```

El último comando adapta `.mcp.json` a la ruta absoluta del clon.

### Autenticación API opcional

```bash
./scripts/setup-auth.sh
```

No introduzcas contraseñas: el asistente acepta las cabeceras de una sesión ya iniciada. Si Codex
captura la biblioteca desde Chrome, este paso no es necesario.

## Desarrollo

```bash
uv sync
uv run ruff check .
uv run pytest
```

## Limitación de género

YouTube Music no entrega un campo de género por pista. `search_music(..., genre="jazz")` añade el
género a la consulta del catálogo, pero no intenta clasificar automáticamente cada favorito.

## Licencia

[MIT](LICENSE) © 2026 Eduardo Arias Bravo.

TDQS

A3.6/5.0

Scored across 7 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: authentication status, listing liked songs, listing playlists, fetching a specific playlist, searching, summarizing, and exporting. There is no meaningful overlap; even similar-sounding tools like list_liked_songs and summarize_liked_library serve different functions (enumeration vs. aggregation).

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (list_, get_, search_, summarize_, export_). The exception is auth_status, which lacks a verb and disrupts the otherwise uniform style. This minor deviation prevents a perfect score but the pattern is still highly readable.

Tool Count5/5

Seven tools is well within the ideal range for a library-oriented MCP server. Each tool addresses a core function (authentication, listing, searching, exporting, summarizing) without redundancy or bloat. The count feels appropriately scoped for the server's purpose.

Completeness5/5

The server covers the full lifecycle of interacting with a user's YouTube Music library: authenticate, list liked songs, list playlists, fetch playlist contents, search, summarize, and export. There are no obvious dead ends for typical workflows like browsing, analyzing, or exporting favorites. Minor operations like adding/removing likes are outside the apparent scope, so no gaps are evident.

Maintenance

ActivityStale
ResponsivenessNo issues