Skip to content

Repository files navigation

dragsify

Transfiere tus listas de reproducción y watchlists entre plataformas de streaming.

Música: Spotify ↔ Apple Music ↔ YouTube Music
Películas/series: Trakt.tv (Netflix, HBO, Disney+ etc. no tienen APIs públicas — Trakt funciona como puente)

Stack

  • Monorepo npm workspaces — client/ (React + Vite), server/ (Express), shared/ (types)
  • Node 26, TypeScript, Podman containers

Quick start

cp .env.example .env        # completa credenciales (ver abajo)
npm install
npm run dev                  # servidor :3001 + cliente :5173

O con contenedores:

podman-compose build
podman-compose up -d         # http://localhost:5173

Plataformas y credenciales

Cada plataforma necesita registrarse como aplicación OAuth:

Plataforma Qué necesitas Dónde crearlo
Spotify SPOTIFY_CLIENT_ID + SPOTIFY_CLIENT_SECRET https://developer.spotify.com/dashboard
YouTube Music GOOGLE_CLIENT_ID + GOOGLE_CLIENT_SECRET (con YouTube Data API v3) https://console.cloud.google.com
Apple Music Apple Developer account + MusicKit Key (.p8) https://developer.apple.com
Trakt.tv TRAKT_CLIENT_ID + TRAKT_CLIENT_SECRET https://trakt.tv/oauth/applications

Todas las redirect URIs apuntan a http://localhost:3001/auth/:platform/callback.

Comandos

Comando Descripción
npm run dev Servidor + cliente en simultáneo
npm run dev:server Solo servidor (hot reload)
npm run dev:client Solo cliente (Vite)
npm run build Build de todos los workspaces
npm run typecheck TypeScript check completo
podman-compose up -d Contenedores

Cómo funciona

  1. Conecta tus cuentas desde el dashboard
  2. Explora las listas de una plataforma origen
  3. Selecciona una lista y elige el destino
  4. La app lee el contenido y lo recrea en la plataforma destino

El matching entre plataformas es best-effort: por ID en Spotify ↔ Apple, por búsqueda (título + artista) en YouTube.

Proyecto

client/src/pages/     — Dashboard, PlatformPage, TransferPage
server/src/services/  — spotify, youtube-music, apple-music, trakt
server/src/routes/    — auth, platforms, transfer
shared/               — tipos compartidos TypeScript

Licencia

MIT

About

Transfiere tus playlists y watchlists entre Spotify, Apple Music, YouTube Music y Trakt.tv — Dragsify

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages