Témoignage : abandonner iTunes après 15 ans de service

Nicolas Furno |

Benjamin, notre développeur iOS, avait déjà partiellement abandonné OS X en faveur de Linux, mais il restait encore un élément de son quotidien qui l’empêchait de couper les ponts : iTunes. C’est désormais chose faite, comme il l’explique sur son blog. Après quinze ans de plus ou moins bons loyaux services, il a réussi à se passer totalement du jukebox d’Apple. Comment a-t-il fait ? C’est ce que nous allons voir !

Crédits : fdecomite CC BY

Avertissement en préambule : la solution mise en place ici n’est pas du tout « user-friendly », elle implique de manipuler un minimum le Terminal et des lignes de commande.

Pourquoi abandonner iTunes ?

Il est indéniable qu’iTunes a connu son heure de gloire, pendant un moment c’était peut-être même mon logiciel favori, mais force est de constater qu’aujourd’hui il n’est plus que l’ombre de lui-même.

Qu’est-ce qui pousse un utilisateur de Mac à abandonner iTunes ? La question mérite d’être posée, surtout lorsque la personne en question gère sa musique avec cet outil depuis des années, accumulant quelques dizaines de milliers de titres. D’ailleurs, notre développeur l’exploite depuis la toute première version, sortie il y a exactement quinze ans.

À l’époque, en 2001, Apple venait tout juste d’acheter SoundJam MP. Un lecteur audio devenu très populaire sur Mac, qui servait à gérer sa musique numérique et à la synchroniser avec les baladeurs MP3 Rio. Le constructeur était en train de préparer l’iPod et il lui fallait rapidement une application pour l'accompagner.

SoundJam MP, le logiciel acheté par Apple et transformé en iTunes (via)
SoundJam MP, le logiciel acheté par Apple et transformé en iTunes (via)

Il n’y avait pas de films ni d’applications, il n’y avait pas même d’iTunes Store et encore moins de nuage ou de streaming. En ces temps reculés, iTunes ne servait qu’à une chose : gérer, écouter et synchroniser sa musique. Comme tant d’autres, Benjamin regrette la simplicité de cette époque, qui s’accompagnait aussi d’une certaine fiabilité que l’on a peut-être perdue aujourd’hui.

Mais sa critique ne concerne pas que les ajouts apportés au logiciel. Le principal problème d’iTunes, c’est qu'il n’a jamais fondamentalement changé en 15 ans. Certes, l’interface a bien évolué, perdant le métal brossé des débuts au profit des aplats de couleurs et des effets de translucidité qui ont maintenant la cote. Mais le moteur, lui, est resté ancré dans les années 2000 et cela commence à devenir un vrai problème.

La toute première version d’iTunes (via)
La toute première version d’iTunes (via)

Notre développeur n’a pas besoin d’argumenter longtemps pour démontrer qu’iTunes aurait besoin d’un gros travail de fond. Le problème, ce n’est pas tant l’interface que le stockage des données associées aux fichiers. Rappelons que le logiciel liste tous les morceaux présents dans un dossier, puis génère un fichier XML contenant toutes les métadonnées.

On y trouve la liste de tous les artistes et de tous les albums en sa possession. Mais aussi des informations associées à chaque titre : l’année, le compositeur ou encore le genre. Le logiciel collecte également des données produites par l’utilisateur : les notes étoilées ou encore le compteur du nombre de lectures d'un morceau. De quoi organiser sa bibliothèque musicale différemment, en créant par exemple des listes de lecture intelligentes basées autour de multiples critères de tris.

La dernière version d’iTunes
La dernière version d’iTunes

Pour stocker toutes ces informations, le choix logique serait d’utiliser une base de données, mais iTunes s'appuie toujours sur un fichier XML. Évidemment, cela fonctionne, mais ce choix technique pose de nombreux problèmes. Pour commencer, toutes les données reposent uniquement sur un seul fichier qui peut se corrompre relativement facilement. Lorsque cela arrive, il n’y a aucun recours possible, alors qu’une base de données intègre des mécanismes pour limiter la casse.

Ensuite, ce fichier XML n’est pas fait pour être régulièrement interrogé et mis à jour. À l'inverse, ce sont les deux points forts d’une base de données traditionnelle. Quand on cherche un album, iTunes doit analyser ce document, chose qu'il ferait beaucoup plus rapidement dans une base dédiée. Mais il y a pire : la mise à jour des données. Si vous utilisez iTunes, vous l’avez sûrement remarqué, changer le nom d’un artiste sur une poignée d’albums prend quelques secondes. Et dans l’intervalle, l’interface est totalement bloquée… ce qui n’est franchement pas génial en 2016, comme le note Benjamin.

Chaque fichier stocké dans iTunes est enregistré dans un long document XML qui devient vite un goulot d’étranglement pour le logiciel. — Cliquer pour agrandir
Chaque fichier stocké dans iTunes est enregistré dans un long document XML qui devient vite un goulot d’étranglement pour le logiciel. Cliquer pour agrandir

Notre développeur a d’autres griefs à faire valoir, comme la conversion obligatoire du FLAC en ALAC, ou bien encore la méthode utilisée par iTunes pour enregistrer les pochettes. Au lieu d’associer la même image à chaque morceau d’un album, le logiciel d’Apple duplique le fichier pour le sauvegarder avec chaque morceau. Avec des pochettes de bonne qualité, on peut facilement se retrouver avec des centaines de méga-octets inutiles car redondants…

Pour Benjamin, abandonner iTunes lui a permis de gagner environ 11 % de place rien qu’avec cette seule histoire de pochettes d’albums. Après migration en dehors d'iTunes, le dossier contenant toute sa musique est passé de 1 To à 890 Go… un progrès indéniable, pour un résultat identique.

Gérer sa collection musicale : beets

Par quoi remplacer iTunes alors ? Benjamin voulant s’éloigner des ordinateurs d’Apple, il a cherché une solution multi-plateforme, capable de fonctionner aussi bien sur OS X que sur Linux. Et son choix s’est porté sur beets, un outil libre disponible depuis quelques années, qui a la particularité de ne pas reposer sur une interface graphique.

En effet, pour indexer son contenu, on utilise uniquement le terminal. Voilà qui aura de quoi rebuter un grand nombre d’utilisateurs, et pourtant cette solution a un avantage indéniable : elle est légère et surtout extrêmement souple. En tapant beet import dans le terminal, puis en glissant un dossier, beets peut analyser chaque fichier pour trouver et corriger les bonnes informations (il se base sur MusicBrainz) puis déplacer les morceaux à l’emplacement défini auparavant (éventuellement en les convertissant au passage si vous le souhaitez).

Import d’un album avec beets
Import d’un album avec beets

Pour parvenir à un tel résultat, il ne faut pas le cacher, beets nécessite plus d’efforts qu’avec un logiciel comme iTunes. Pour commencer, l’installation de l’outil doit se faire via le terminal, et il faut d’abord installer quelques dépendances. L’utilitaire repose sur Python, un langage de programmation qui est livré par défaut avec OS X comme avec Linux. Malheureusement, la version fournie par Apple est ancienne et mieux vaut la mettre à jour.

Pour cela, le plus simple sur Mac est de passer par Homebrew, un gestionnaire de paquets que l’on installe avec cette première commande :

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Puis il faut installer Python avec cette deuxième commande :

brew install python

On peut enfin installer beets, avec cette dernière commande :

pip install beets

Si tout va bien, beets sera alors installé sur votre Mac… ce qui ne veut pas dire que vous pouvez l’utiliser dès à présent. Il faut encore le configurer, ne serait-ce que pour lui indiquer où stocker les fichiers musicaux. Pour cela, vous pouvez taper cette ligne de commande dans le terminal et le fichier de configuration s’ouvrira dans l’éditeur par défaut :

beet config -e 

Au départ, le fichier de configuration est totalement vide. Pour le remplir, il faut se référer à la documentation et trouver les bonnes commandes. Par exemple, l’emplacement où sera stocké la musique est défini par directory: puis le chemin d'accès. Avec paths:, on peut changer l’organisation des fichiers à l’intérieur de ce dossier.

Extrait de la configuration beets de Benjamin — Cliquer pour agrandir
Extrait de la configuration beets de Benjamin — Cliquer pour agrandir

C’est une contrainte, c’est vrai, mais cette solution est beaucoup plus souple et puissante qu’un logiciel comme iTunes, où tout est fait en fonction d’une méthode imposée. En changeant un seul paramètre, beets peut organiser différemment la bibliothèque. Et puis on peut très bien stocker les fichiers d’un côté et la base de données ailleurs : dans le cas de Benjamin, elle est stockée sur sa Dropbox, et ainsi synchronisée facilement avec d’autres appareils.

Cet outil offre aussi bien plus d’options que son concurrent graphique. On pourrait consacrer plusieurs articles uniquement à la configuration de beets, mais ce n’est pas l’objet de celui-ci. Indiquons simplement qu’en plus de ses fonctions de base, l’outil repose sur un système d’extensions qui permettent d’aller très loin dans la personnalisation. On peut ainsi convertir les fichiers lors de l’import, créer des listes de lecture intelligentes comme avec iTunes, ou bien encore chercher les paroles des morceaux.

Extrait de la collection musicale, organisée par beets. L’organisation des fichiers est ici identique à celle d’iTunes, mais vous pouvez choisir une toute autre organisation si vous le souhaitez.
Extrait de la collection musicale organisée par beets. Il n'y a pas de différence avec celle d'iTunes mais vous pouvez choisir une toute autre organisation si vous le souhaitez.

Benjamin a ainsi configuré très précisément beets pour qu’il fonctionne comme lui le souhaite. Prenons un exemple : pour tous les morceaux d’un artiste ou d’un groupe qui font intervenir un invité (un « featuring »), notre développeur exploite cette extension pour insérer les noms de ces artistes dans le nom du titre, plutôt que de les garder dans le champ dédié au nom de l’artiste. Par l'entremise de cet outil, tout se fait automatiquement à l’import et Benjamin n’a pas à gérer cet aspect manuellement, comme cela aurait été le cas avec iTunes.

C’est bien la force de beets : l’installation et la configuration peuvent effrayer, mais une fois que c’est fait, son utilisation peut devenir (presque) aussi simple qu’avec iTunes. Il faut toujours en passer par le terminal, c’est vrai (même si on peut le masquer en utilisant un peu d’AppleScript et les dossiers surveillés d’OS X), mais en contrepartie, on a un outil bien plus puissant, capable d’importer et de gérer la musique plus rapidement et plus efficacement.

L’intégration de MusicBrainz est un allié solide pour tous les fichiers mal (ou pas) renseignés, la recherche automatisée de pochettes est un avantage tout aussi indéniable… Avec un petit effort au départ, on peut avoir un système très efficace et les données sont stockées dans une base de données SQLite, bien plus rapide quand il s’agit de chercher une information.

Écouter sa musique : Swinsian, Clementine et Volumio

Ce que beets ne fait pas très bien en revanche, c’est lire la musique. On peut utiliser une extension dédiée à la lecture et choisir un logiciel capable de jouer les fichiers musicaux — sur Mac, Vox est un excellent choix —, mais il faut utiliser le terminal pour choisir un album, ce qui n’est pas forcément le plus agréable. Même Benjamin, qui n’a jamais reculé devant une ligne de commande, préfère se tourner vers une interface graphique pour écouter sa musique.

La bibliothèque gérée par beets peut très bien fonctionner avec un logiciel alternatif, ici Swinsian. — Cliquer pour agrandir
La bibliothèque gérée par beets peut très bien fonctionner avec un logiciel alternatif, ici Swinsian. — Cliquer pour agrandir

Et cela tombe bien, ce ne sont pas les alternatives à iTunes qui manquent, sur OS X, comme sur Linux. Sur sa machine de travail, un Mac donc, notre développeur utilise Swinsian (18,7 €) qu’il pointe simplement sur le dossier (géré par beets) contenant toute sa musique. Côté Linux, il utilise Clementine, un gestionnaire de musique libre et gratuit, disponible sur toutes les plateformes.

Ça, c’est quand il écoute de la musique devant un ordinateur. Mais la force de beets, c’est qu'il peut servir de base pour écouter aussi sa musique dans le salon. Benjamin avait un Raspberry Pi qui ne servait à rien, il a mis dessus Volumio, une distribution allégée spécialisée dans la musique et conçue pour être installée très facilement sur ces mini-ordinateurs ARM. On peut l’utiliser avec un disque dur local, ou connecter un volume réseau, ce que fait Benjamin à partir de son serveur musical, un ancien Mac Pro. Précisons qu’il a connecté un DAC en USB qui transfère ensuite la musique sur les enceintes.

Volumio peut se contrôler depuis une interface web assez simple.
Volumio peut se contrôler depuis une interface web assez simple.

Volumio propose une interface de contrôle depuis un navigateur, mais on peut aussi utiliser une application iOS. C’est ce que fait notre développeur, avec MPoD sur iPhone et MPaD sur iPad. N’importe quel contrôleur compatible avec Music Player Daemon, l’application sur laquelle se base Volumio, pourra faire l’affaire.

Au passage, Volumio est compatible avec les accessoires AirPlay, vous ne perdrez pas cette fonction si vous en avez besoin. Par ailleurs, on peut très bien imaginer un accès à distance à cette bibliothèque. Sans avoir un équivalent parfait à une fonction comme iTunes Match, il y a moyen d'ouvrir le serveur musical chez soi et y accéder depuis internet.

Une alternative plus grand public : Plex

Pour finir, un mot rapide sur une alternative moins geek et plus accessible à la iTunes. Plex est un logiciel de media-center chargé à l’origine uniquement d’indexer films et séries, mais il est aussi capable de gérer la musique et il le fait plutôt bien. Il suffit d’indiquer le dossier où les fichiers sont stockés, il analysera le tout et construira une base de données aussi complète qu’on peut l’espérer.

L’interface web de Plex, affichant la fiche d’un artiste.
L’interface web de Plex, affichant la fiche d’un artiste.

La grande force de Plex, c’est précisément l’accès à distance. Vous installerez le module serveur sur l’ordinateur qui contient la musique, chez vous par exemple, et vous y aurez accès depuis n’importe quel appareil sur le réseau local. On peut écouter de la musique dans le navigateur, ou en utilisant l’une des applications sur un appareil mobile ou même sur la télévision.

Mieux, si vous payez l’abonnement Plex Pass, vous pourrez même accéder à ce contenu à distance, depuis n’importe quel ordinateur connecté à internet. Dans le cas de la musique vous aurez d’autres avantages, comme la recherche automatisée des clips vidéo associés à vos morceaux préférés. C’est une solution pour remplacer iTunes qui est assez complète, même si elle n’a pas la souplesse de beets. La transition est aussi plus douce, puisqu'on peut commencer par indexer simplement la bibliothèque iTunes et aller plus loin dans un second temps.

avatar alan1bangkok | 

remplacer une usine à bois par une usine à gaz , faut aimer .....
Tout comme il faut oser utiliser Vox et son agent user espion consommateur de ressources
( j'utilise une vieille version de Vox )
Pas trouvé mieux que iTunes après avoir désactivé tout ce qui ne concerne pas la musique . ( en outre pas de iTunes Match ou  Music )

avatar lezardon | 

Moi j'utilise Itunes uniquement pour sa fonction de "rangement automatique" en dossiers par artistes et ses listes de lecture intelligentes.
Pour la partie "player", j'utilise Logitech Media Player, qui a l'avantage d'etre multiroom (comme Sonos) et compatible Itunes.

avatar digitalscreen | 

Tout ceux qui n utilise pas ou plus iTunes n ont jamais testé the washing machine .....

avatar Sokö | 

Utiliser autre chose qu'iTunes, pourquoi pas, mais pas avec le terminal. Déjà, ce n'est ce pas qu'on fait de plus simple, mais surtout, ça fait « je m'la pète ».

avatar iDanny | 

J'ai pas pigé le coup des pochettes qui prennent trop de place: c'est normal vu que chaque fichier MP3 contient sa propre pochette !
Idem pour les autres formats, a priori.

J'ai p'têt loupé une option d'iTunes pour stocker les pochettes à part, auquel cas en effet ça serait pratique de les mutualiser, mais quand on copie un fichier seul vers un autre appareil, il faut bien qu'il contienne sa propre pochette au final...

avatar Powerdom | 

Utilisateur de soundjam puis de iTunes depuis sa première version, je ne comprends pas le reproche que vous faites au fichier qui enregistre les métadonnées.
Il a suivi chez moi toutes les évolutions système et changement de Mac sans sourciller.

avatar Almux | 

Etant totalement réfractaire à l'usage du "cloud", iTunes me reste primordial dans son rôle de synchronisation. Je ne l'ai jamais vraiment utilisé comme "juke box" et je n'ai jamais eu à pâtir de son éventuel aspect "usine à gaz". Il arrive que j'écoute 1 heure de musique, en arrière fond, 1 à 2 fois par semaine et c'est bien un max… De fait, Apple pourrait inventer un "iTunes" modulable qui permettrait de choisir uniquement les fonctions voulues par l'utilisateur. Le risque serait qu'avec la volonté de tout fourguer dans les nuages, un module réservé à la simple synchronisation locale disparaîtrait, obligeant le quidam à investir dans un NAS externe…

avatar karayuschij | 

Je gère près de 10 000 albums avec iTunes. Je n'ai jamais eu de problème et je n'ai jamais trouvé aucun logiciel qui me satisfasse autant pour gérer ma discothèque

avatar Mathias10 | 

iTunes répond à mes besoins (synchro iPhone simple + sauvegarde + notation + ITunes Match(!!!!) , gestion de mes vidéos et poadcast)

avatar Wolf | 

En ce qui me concerne, j'utilise iTunes couplé à iTunes Match, pour synchroniser mes Macs et iphones/iPad avec la même Bibliothèque qui fait aux alentours de 80/100Go, ce qui est déjà pas mal.
La plupart de mes titres sont soit achetés sur iTunes, soit rippés à partir des CDs et au format AAC. Dans certains cas j'ai récupéré les albums au format FLAC car je n'ai pas de platine usb pour ripper mes vinyles.
Le tout est sauvegardé sur Google Music (qui au passage me remet tout en mp3) et sur un serveur chez OVH sous owncloud.
Pour l'instant je n'ai pas trouvé mieux qu'iTunes pour gérer mes musiques, apps, films et séries simplement.

avatar marc_os | 

@ Wolf
Si Google machin te compresse tes fichiers en mp3, tu ne peux pas alors dire qu'ils sont sauvegardés.
C'est comme si tu disais protéger tes toiles de maître en mettant des Polaroïds de ces peintures au coffre !

avatar Wolf | 

@marc_os : Gogle ne compresse pas mes fichiers en MP3, mais les remplace par les équivalents en MP3 disponibles sur leur store. Petite nuance mais pour le résultat, comme avec Music Match on a des fichiers "clans"

avatar marc_os | 

@ Wolf
Tu confirmes donc ce que je disais : Ce n'est pas une sauvegarde.

avatar Jacti | 

Google retarde avec ses mp3. Compte tenu de l'espace disque dont on dispose aujourd'hui pour un prix dérisoire, le mp3 ne se justifie plus surtout pour les vrais mélomanes.
Qaunt au "cloud", très peu pour moi.

avatar Un Type Vrai | 

Si c'est un dév, avec une application Applescript de 6 lignes, il peut lancer beets par glisser-déposer

Sinon avec Automator, ça doit être encore plus simple (mais le code fera plus que 6 lignes).

Et y'a encore mieux !
On peut lancer des action lors d'un changement dans un dossier.
Donc un dossier "MusicIn" on glisse dessus et hop, ça range, ca renomme, ça organise et ça vide le dossier d'import.

Comme ça on peut même imaginer copier des fichiers depuis FTP...

Et puis si le dossier rangé est sous un OwnCloud (comme sur mon NAS) ...

Bref, cet article me donne envie de peaufiner mon glisser/déposer en vrac dans Owncloud...

avatar legallou | 

J'ai abandonné iTunes depuis un bon moment. J'utilise Audirvana sur mes différents Mac. Mes dossiers musique sont sur mon NAS.

avatar jeserkrugger | 

@legallou :
Tu en es content d'audivarana? Véritable plus en terme de son?

avatar marc_os | 

beets affiche les pochettes dans le Terminal ?

avatar Pieromanu | 

Pauvre Benjamin, qu'est-ce qui se prend pas là avec vos commentaires, bande de railleurs (je dis ça sur le ton de la plaisanterie, hein, ça vaut le coup de le préciser des fois).
Il est le premier à dire que c'est pas pour tout le monde sur son blog: "Il y a quelque temps j’ai découvert beets, un gestionnaire de bibliothèque musicale en ligne de commande, multiplateforme et open source. Alors oui ce n’est clairement pas pour tout le monde, mais pour les geeks maniaques comme moi c’est la solution de rêve."
Ça marche pour lui, et je peux voir l'avantage à avoir une base de donnée gérée indépendamment du logiciel de lecture, quitte à en passer par le terminal. Étant développeur, utiliser le terminal doit devenir une seconde nature et être plus rapide que de passer par certaines interfaces graphiques (je remets toujours le nettoyage de ma bibliothèque iTunes à plus tard, tellement l'idée m'excite). Honnêtement, si j'étais un familier du terminal, je prendrais l'usage de Beets en considération.
je suis avec toi Benjamin!

avatar pat3 | 

@Pieromanu :
La base de données c'est très bien quand ça marche, mais vraiment galère quand ça se corrompt (et là, vaut mieux être dev pour s'en sortir), et dans la pratique, l'indépendance de la base et du logiciel qui y puise ses données, ça marche quand la base est vraiment élaborée pour ça.
Mais je ne suis pas dev. et fondamentalement, une solution a base de terminal et de lignes de commande pour un logiciel usuel… ben c´est pas une solution.

avatar pat3 | 

Dommage de commencer un tel billet par l'avis de votre développeur qui quitte le Mac pour Linux. Parce que bon:
- c'est un dev, forcément , il peux être intéressé par un outil en ligne de commande, mais la plupart d'entre nous ne serait pas devant un ordinateur sans la métaphore WIMP et les interfaces WYSIWYG. La supposition de départ est déjà erronée ;
- sans remuer le couteau dans la plaie béante, il n'est pas non plus irréprochable en termes de fonctionnement et d'ergonomie des apps qu'il gère pour MacG (app iPad, suivez mon regard),
- son usage en termes de bibliothèque numérique est tellement marginal que c'est un peu capilotracté de le prendre comme exemple d'utilisateur iTunes (fichiers FLAC exclusivement, bibliothèque d'1 to, etc.).

Utilisateur d'iTunes depuis le déni et de SoundJam avant, je en vois toujours pas de logiciel aussi fiable et efficace dans le temps pour gérer ma bibliothèque musicale. Je n'ai aucune intention de mettre ma discothèque sur le Cloud, ceci explique sans doute cela, et je n'ai nul besoin non plus de trimballer partout avec moi 100 Go de musique (10 Go y suffisent largement, et j'ai mon iPhone pour ça). Je fais mes listes intelligentes sur iTunes et je peux les synchroniser avec l'iPhone, et je tiens ma discothèque à jour sans y passer trois heures par semaine non plus.
Bref, je ne comprends toujours pas ce qu'on reproche à iTunes, et surtout pourquoi continuer à le lui reprocher quand on dit ici même qu'on ne l'utilise plus depuis des lustres…

avatar supermars | 

Personnellement, j'utilise iTunes depuis 2010, couplé avec Apple Music aujourd'hui. Dès fichier aiff ou alac sont nombreux, 80 Go et tout, 5 heures de musique par jour en moyenne
À part quelques pochettes qui ont été changées, l'ensemble fonctionne sans anicroche. J'utilise beaucoup AirPlay avec ma chaîne Hi-Fi et 2 autres appareils, parfois en multiroom.
J'attends juste une évolution de la qualité pour Apple Music.

avatar marc_os | 

« mais iTunes s'appuie toujours sur un fichier XML. [...] Pour commencer, toutes les données reposent uniquement sur un seul fichier qui peut se corrompre relativement facilement. Lorsque cela arrive, il n’y a aucun recours possible, alors qu’une base de données intègre des mécanismes pour limiter la casse »
Mouais.
Une base SQL pour remplacer le fichier XML ne comportera également qu'un seul fichier ou pas beaucoup plus selon l'organisation.
Un fichier SQL peut très bien se corrompre. Et contrairement au fichier XML et ce qui est dit dans la brève, un fichier SQL corrompu peut être irrécupérable (vu au boulot avec des fichiers sqlite d'apps sous OS X). Un fichier XML au moins est un fichier texte pur qu'on peut ouvrir et réparer (ou flinguer encore plus) avec TextEdit.

avatar patrick86 | 

Bref. Benjamin est un geek. :-)

avatar kubernan | 

Linux... toujours aussi avenant :-)

Pages

CONNEXION UTILISATEUR