Scripts pour permuter rapidement entre iTunes 10 et iTune

  • Créateur du sujet Créateur du sujet -anonyme-
  • Date de début Date de début
A

Anonyme

Invité
:coucou:

Peut être rencontrez vous le même 'problème' que moi : ne pas vouloir utiliser iTunes 11 pour écouter de la musique (recherche lente, nouveaux modes d'affichages moins détaillés, disparitions des fléchés iTunes Store qui peuvent être convertit en outils de recherche rapide, etc.), tout en ayant un appareil que vous devez synchroniser avec votre ordinateur : musique, applications, documents dans les applications, etc.
Dans mon cas, l'appareil en question est un iPad mini sous iOS 7.

Alors j'ai créée un script pour automatiser le changement d'un iTunes à l'autre et permettre aux deux versions de cohabiter.

Il réalise les tâches suivantes :
- verrouille le ou les dossiers qui contiennent les bibliothèques iTunes 10 : si iTunes 11 en ouvre une, il la convertit !
- bloque le lancement d'iTunes 11 lorsque vous êtes en 'lecture', c'est à dire lorsque que vous utilisez iTunes 10 car vous n'avez pas besoin de synchroniser.
- permute trois frameworks qui diffèrent entre iTunes 10.7 et iTunes 11 (iTunesLibrary, CoreFP, iTunesAccess). Le premier est obligatoire. Les deux autres concernent l'iTunes Store où des erreurs peuvent apparaître au lancement d'iTunes.

Au lancement, il permet de choisir si iTunes 11 doit être lancé une fois avant de redéfinir iTunes 10.7 une fois iTunes 11 quitté, ou alors définir iTunes 11 pour une période indéfinie jusqu'à ce que le script soit relancé.

Mais le script ne fait pas tout, il reste des points plus ou moins pénibles !
- si vous mettez à jour votre bibliothèque iTunes 10 (ajout de musique, playlist...), la bibliothèque iTunes 11 n'est pas synchronisée. Et vice versa. Rien de nouveau ici, mais autant le rappeler.
- au lancement de l'autre version d'iTunes, iTunes 11 se plaindra que la bibliothèque (la dernière utilisée sous iTunes 10) est inaccessible. Ceci est du au verrouillage du répertoire. Il suffit d'en sélectionner une autre via le menu donné par iTunes. A l'inverse, lorsque iTunes 10 se lancera après avoir ouvert iTunes 11, il se plaindra que la bibliothèque est trop récente et qu'il faut mettre à jour iTunes. Il suffit de quitter iTunes et de le relancer en appuyant sur 'alt/option' puis sélectionner une bibliothèque iTunes 10.
- l'appui sur la touche 'play' essaye de lancer iTunes 11 (qui quittera automatiquement lorsqu'il est verrouillé.

A cela près, le reste est automatique !

Maintenant, pour mettre en place la cohabitation des différentes de frameworks évoquées au dessus, il faut le faire à la main en utilisant Pacifist et le terminal. Il se peut que j'automatise le processus dans le futur, sachant qu'iTunes 11 est mis à jour de temps en temps.
Pour chacun des frameworks, il faut d'abord changer le nom du framework courant. Si vous avez iTunes 10 actuellement, il suffira de :
Bloc de code:
sudo mv /System/Library/Frameworks/CoreFP.framework /System/Library/Frameworks/CoreFP_107.framework
Attention, ne pas changer '107' par une autre valeur ! Il faut répéter l'opération pour les deux autres frameworks. Les chemins sont disponibles dans moveFW.pl

Une fois les trois frameworks renommés, il faut ouvrir Pacifist et installer chaque framework de iTunes 11 manuellement. Il ne faut pas installer l'ensemble du paquet ! Une fois les différents frameworks installés, répétez l'opération qui consiste à renommer les différents frameworks, mais cette fois ci en changeant la valeur du suffix par 113. Vous devez maintenant avoir les deux versions des frameworks côte à côte.

Une fois que les différentes versions des frameworks sont installés, il faut s'occuper des faire cohabiter les deux versions d'iTunes. Pour cela, renommez 'iTunes' en 'iTunes 10' en passant par le Terminal :
Bloc de code:
sudo mv /Applications/iTunes.app /Applications/iTunes\ 10.app
Il faut installer iTunes 11.app de la même manière que pour les frameworks, c'est à dire en utilisant Pacifist, en sélectionnant 'iTunes.app' et en demandant l'installation de cet élément spécifiquement. Une fois installé, il faut le renommer 'iTunes 11.app'.

Il faut maintenant installer les trois scripts nécessaires. Copier le dossier 'bin' du répertoire d'installation vers votre maison ($HOME). Bien sur, si vous avez déjà un répertoire ' bin', ne faites glisser que le contenu... Copier l'application 'Change iTunes version' vers le dossier application.

Voilà, maintenant tout est installé ! Allez faire un tour dans 'itunesmediaUN_LOCK.pl' pour y définir les chemins des bibliothèques que vous souhaitez verrouiller avant de lancer iTunes 11.
Vous pouvez maintenant ouvrir l'application que vous venez de copier dans le dossier Applications et l'utiliser. Une fois que vous avez effectué le choix de version, l'application demande un mot de passe. Celui ci est nécessaire pour modifier les liens pour les versions de frameworks ainsi que le changement de nom du binaire d'iTunes 11.

Je n'ai pas décrit la méthode dans le cas ou n'auriez que iTunes 11 installé, mais elle est la même en inversant les suffixes et en utilisant le paquet d'installation d'iTunes 10 pour les frameworks.

Si vous n'aimez pas les noms donnés aux suffixes, le nom des scripts, l'emplacement des scripts, si vous aimeriez plus de fonctionnalités, que vous souhaitez le rendre plus 'sur', etc. libre à vous de modifier ! Dans le répertoire d'installation, j'ai aussi inclus le script (AppleScript) version 'texte'.
Il n'y a pas d'installation automatisée même si cela est possible. Je ai pas cherché à le faire (étant donné qu'une fois installé ça fonctionne :p)
Un script 'check.sh' permet de voir l'état des différents éléments modifiés en un clin d'œil. Il est à modifier pour y inclure vos chemins de bibliothèque iTunes 10 (les mêmes que ceux que vous avez renseigné dans 'itunesmediaUN_LOCK.pl').

Je n'ai pas essayé de faire l'application la plus complète possible, (ni forcément la plus simple), mais elle fonctionne pour mon besoin (et est assez sûre pour ne pas tout flinguer :D) et je la met à disposition.

Je ne connais pas l'effet des modifications des versions de frameworks sur d'autres éléments du système (CoreFP). Néanmoins je n'ai rien remarqué d'anormale et il se peut très bien qu'elles ne soient utilisées que par iTunes.

Si vous avez un commentaire ou une question, n'hésitez pas, je passe de temps en temps et je tâcherai d'y répondre.

Vous pouvez trouver l'ensemble des fichiers ici :
https://dl.dropboxusercontent.com/u/4616009/Change iTunes version release.zip

Bonne synchronisation !

P.S : combien d'entre vous sont encore sur iTunes 10 de toute façon ? ... :rateau: