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 :-)

cc-by-nc | code (applescript) | ipod | itunes

<<< De la déchéance de l'enseignement (2011-05-12) | PHP : Déterminer la langue d'un visiteur (2011-04-17) >>>