07/05/11

Afficher les albums par ordre chronologique sur un iPod

J'utilise iTunes pour la gestion de ma librairie musicale, et Ecoute pour la lecture. Ecoute a une interface légère, disponible de partout, et a la chouette possibilité d'afficher les albums d'un même artiste par ordre chronologique. Par contre, sur mon iPod, les albums d'un même artiste sont affichés dans l'ordre alphabétique, ce qui franchement n'a aucun sens.

Aucune option de présentation sur l'iPod ne permet de changer cela, par contre en sachant que l'iPod trie ses morceaux comme iTunes, je peux utiliser les champs "sort machin" pour forcer un critère de tri qui soit différent du champs affiché. Si dans le champs "sort album" je mets l'année de sortie suivie du nom de l'album, j'arrive à un tri d'abord par année de sortie, ensuite par ordre alphabétique au sein d'une même année. Exactement ce qu'il me faut.

Par contre c'est fastidieux, donc j'ai écrit un petit AppleScript, à placer dans ~/Library/iTunes/Scripts pour pouvoir l'appeler depuis le menu Script d'iTunes quand on a sélectionné les morceaux d'un même album :


-- Fix albums display order
-- Changes the "sort album" field, to ensure that albums get displayed in chronological order on iPods.
-- CC-BY-NC 2011, Jean-Karim Bockstael,
tell application "iTunes"
-- input checking
if selection is {} then
display dialog "You must select at least a track"
return
else
set selected_tracks to selection
repeat with a_track in selected_tracks
if a_track's album = "" then
display dialog "All tracks must have their Album field filled"
return
end if
if a_track's year = "" then
display dialog "All tracks must have their Year field filled"
return
end if
end repeat
if length of selected_tracks > 1 then
set cur_album to album of item 1 of selected_tracks
set cur_year to year of item 1 of selected_tracks
repeat with a_track in selected_tracks
if a_track's album is not equal to cur_album then
display dialog "All tracks must share the same album name"
return
end if
if a_track's year is not equal to cur_year then
display dialog "All tracks must share the same release year"
return
end if
set cur_album to a_track's album
set cur_year to a_track's year
end repeat
end if
-- actual work
repeat with a_track in selected_tracks
set a_track's sort album to (a_track's year as string) & " " & (a_track's album as string)
end repeat
end if
end tell



Hope this helps :-)

5 commentaires:

  1. Salut, c'est exactement ce qu'il me faudrait, sauf que je ne comprends pas comment insérer ton script dans Itunes, pour que tout cela se fasse tout seul.

    Merci de me répondre, j'en serais ravi
    .
    En tout cas sacré beau boulot !

    RépondreSupprimer
  2. Ah j'aurais du préciser, en effet.
    1) copier-coller le source du script dans l'AppleScript Editor, qui se planque dans /Applications/Utilities
    2) enregistrer ce script dans ~/Library/iTunes/Scripts (créer ce répertoire si nécessaire, dans Lion le répertoire ~/Library est masqué donc il faut passer par le menu Go -> Go to Folder…)
    3) dans iTunes une icône de parchemin s'ajoute entre les menus "Window" et "Help", permettant de lancer le script
    4) il suffit de sélectionner les morceaux d'un même album et de lancer le script, il vérifie si on n'a pas sélectionné trop large ;-)

    RépondreSupprimer
  3. Ah oui, mais tu fais tout ça sur Mac, est-ce que tu aurais la façon de le faire sur un windows 7.
    Désolé de te déranger, mais je te l'avoue ton script serait vraiment très pratique :)

    Louis

    RépondreSupprimer
  4. Sous Windows je n'en ai aucune idée, désolé :(

    RépondreSupprimer
  5. Ah mince, ben si jamais tu as un renseignement ou quelque chose du genre que tu découvres, tu pourras me l'envoyer en mail ?

    Sur louis.germain6@live.fr

    Merci à toi

    Louis

    RépondreSupprimer