iPod di Milla

Da playlist Spotify a un iPod classico, in locale.

Interfaccia pubblica di iPod di Milla

Applicazione web locale per scaricare playlist e album da Spotify, organizzare la libreria musicale e sincronizzare direttamente tracce e database nativo su iPod.

Il problema

Gli iPod classici non supportano lo streaming moderno e richiedono formati audio compatibili, metadati accurati, copertine incorporate e un database iTunesDB proprietario firmato. Gestire manualmente il download di brani da playlist o profili Spotify, la conversione in MP3 o AAC ad alta qualità e il trasferimento sulla memoria dell'iPod richiede passaggi complessi, frammentati e soggetti a errori di sincronizzazione.

Il lavoro

Ho progettato e sviluppato un'applicazione web locale con un'interfaccia ispirata all'iPod Nano di quarta generazione. L'app si collega a spotDL per scaricare tracce a 320 kbps o M4A/AAC con metadati e cover art, organizza i file in una cartella artista/album deduplicata e usa iOpenPod per scrivere le cartelle native iPod_Control e aggiornare il database firmato iTunesDB. Prima di ogni scrittura viene eseguito un backup automatico dei metadati del dispositivo.

Download e normalizzazione della musica

Supporto per link di singole playlist, album o profili Spotify completi. Il download estrae tracce in MP3 a 320 kbps o M4A con tag ID3, numeri di traccia e copertine incorporate, sfruttando fallback su più provider per recuperare brani mancanti ed evitando riscaricamenti duplicati.

Scrittura nativa sul database dell'iPod

Integrazione con la libreria iOpenPod per mappare i brani nella struttura iPod_Control/Music/Fxx e generare l'indice binario iTunesDB con checksum hardware compatibile con iPod Nano 4G, preservando le tracce già presenti sul dispositivo.

Sicurezza, backup e retro-interfaccia

Backup automatico preventivo delle directory iTunes, Artwork e Device dell'iPod prima di ogni modifica al database. L'interfaccia riproduce fedelmente scocca, schermo e selettore di colori dell'iPod Nano 4th Gen, funzionando esclusivamente in locale su localhost.

Il risultato

Uno strumento funzionante ed elegante distribuito con licenza open source MIT su GitHub. Include preflight di FFmpeg, rilevamento automatico delle unità e degli iPod connessi (testato su Nano 4G da 8 GB), fallback multi-provider per recuperare tracce non disponibili e un'architettura interamente local-first vincolata a 127.0.0.1 per proteggere privacy e dati personali.

Ruolo e strumenti

Ideazione, architettura e sviluppo completo: backend Flask, integrazione spotDL e iOpenPod, rilevamento dispositivi, gestione concorrente dei job di sincronizzazione e interfaccia frontend retrò.

Python, Flask, spotDL, iOpenPod, JavaScript