shorTunes : AppleScript pour iTunes + bit.ly > Twitter
Tout le monde (presque…) utilise Twitter, je l’utilise également. Bien souvent pour envoyer un tweet avec autre chose que tu texte il faut associer sont compte Twitter à un service extérieur. S’il faut donner son mot de passe, c’est pas toujours réjouissant et certains en ont déjà fait les frais. Je n’ai pas envie de donner mon mot de passe ou d’utiliser un site externe supplémentaire pour envoyer de temps en temps le titre de la chanson que j’écoute, donc…
shorTunes
Je vous propose ici shorTunes, un AppleScript qui n’a qu’une fonction et plusieurs avantages.
shorTunes vous permet d’envoyer un message sur Twitter, contenant le titre et l’artiste de la chanson qui est à l’écoute dans iTunes. Le tout accompagné d’un lien vers l’iTunes Store, permettant à vos followers d’avoir au moins un aperçu de cette chanson. Le lien est raccourci automatiquement grâce à l’api de Bit.ly.
C’est simple, rapide et pratique.
Notes préalables
Ce script s’inspire de
Installation
- Téléchargez le script ;
- Décompressez le .zip si nécessaire ;
- Copiez
shorTunes.scptdans/Utilisateurs/VotreNom/Bibliothèque/iTunes/scripts/; créez ce dossierscriptss’il n’existe pas déjà.
Utilisation
Lorsqu’un morceau est joué dans iTunes, ouvrez le menu des scripts et lancez shorTunes.
Il fait tout le boulot (↓) et un instant plus tard une boîte de dialogue apparaît. Vous pouvez y personnaliser le message final qui sera envoyé à Twitter. L’URL raccourcie (bit.ly) vers une recherche de la chanson dans l’iTunes Store est déjà créée et insérée. Lorsque vous validez, OSX vous demandera normalement d’autoriser l’utilisation du mot de passe enregistré dans le trousseau par Safari.
Une fois que le tweet a été envoyé, un message vous le confirme.
En allant voir votre compte Twitter vous pouvez voir que le morceau a effectivement été envoyé à Twitter.
Un aperçu de la recherche dans l’iTunes Store après un clic sur l’URL raccourcie fournie par Bit.ly.
Script
Voici le code source du script.
-- -------------------------------------- -- shorTunes (AppleScript) -- Version : 1 -- Auteur : Thibaut Ninove -- Web : www.wooconcept.com -- Licence : Creative Commons -- -------------------------------------- -- Les informations de la chanson tell application "iTunes" set thisTrack to current track set trackArtist to thisTrack's artist set trackName to the name of thisTrack end tell -- Enlever les espaces des noms copy my remove_spaces(trackArtist) to CleanedTrackArtist copy my remove_spaces(trackName) to CleanedTrackName -- Créer l URL de recherche pour iTunes set searchURL to "itms://phobos.apple.com/WebObjects/MZSearch.woa/wa/advancedSearchResults?term=" & CleanedTrackArtist & "%20" & CleanedTrackName & "" -- Préparer l API set curlCMD to ¬ "curl --stderr /dev/null "http://bit.ly/api?url=" & searchURL & """ -- Exécuter le script et obtenir la réponse set bitlyfiedURL to (do shell script curlCMD) -- Assembler le tout dans un message pour Twitter set tweet to "Listening to "" & trackName & "" by " & trackArtist & " ♫ " & bitlyfiedURL & " #music" -- Afficher le message pour permettre de le modifier display dialog "Modifiez le message à envoyer à Twitter :" with title "shorTunes" default answer tweet cancel button 1 default button 2 buttons {"Annuler", "Tweet !"} set tweet to (text returned of result) -- Obtenir les infos de login de Twitter tell application "Keychain Scripting" set twitter_key to first Internet key of current keychain whose server is "twitter.com" set twitter_login to quoted form of (account of twitter_key & ":" & password of twitter_key) end tell -- Envoyer à Twitter set twitter_status to quoted form of ("status=" & tweet) set results to do shell script "curl --user " & twitter_login & " --data-binary " & twitter_status & " http://twitter.com/statuses/update.json" display dialog "Le message a été envoyé à Twitter. " & tweet with title "shorTunes" default button 1 buttons "Fermer" -- Reconnaissance des espaces dans les noms to remove_spaces(x) set a to text of x set b to {} repeat with i from 1 to length of a if character i of a is space then copy "%20" to end of b else copy character i of a to end of b end if end repeat return b as string end remove_spaces
Technique
- Pour faire simple, le script récupère le nom de l’artiste et le titre du morceau qui est à l’écoute. Il enlève les espaces et les remplace par des espaces encodé « %20″. Ceci est indispensable pour que l’URL raccourcie par bit.ly mène à une recherche correcte dans iTunes (Bit.ly impose des restrictions).
- L’URL de base de recherche dans l’iTunes Store est associée au nom de l’artiste et à la chanson puis envoyée à l’API de Bit.ly. On a en retour l’URL raccourcie.
- Le message à envoyer est composé avec les éléments précédents et un peu personnalisé puis il est affiché. L’utilisateur peut le modifier et choisir de l’envoyer ou non.
- Le message est envoyé à Twitter et c’est confirmé visuellement.
Avantages
- Inutile de se servir d’un site extérieur à Twitter ;
- Le message est envoyé sans avoir besoin de quitter iTunes ;
- Pas besoin d’entrer de mot de passe, il suffit d’autoriser son utilisation par OSX ;
- L’URL raccourcie est générée automatiquement et de manière tout à fait transparente ;
- Pour peu que la chanson soit disponible sur l’iTunes Store, vos followers auront un véritable aperçu du morceau ;
- Le script et le message sont 100% personnalisables.
Inconvénients
- Si Twitter décide de planter, le script ne fonctionnera pas ;
- Si Bit.ly décide de planter, le script ne fonctionnera pas ;
- En cas de latence de la part de Twitter, il faut patienter ;
- Il faut confirmer l’autorisation d’utilisation du mot de passe ;
- Si vous en abusez, vos followers vont en avoir marre de vos tweets.
Problèmes
Il s’agit de mon premier AppleScript et de la première version de celui-ci… soyez indulgents.
Par défaut, iTunes n’autorise pas l’utilisation de caractères spéciaux dans les recherches. Si des caractères tels que des parenthèses composent le titre de la chanson ou le nom de l’artiste, la recherche ne donnera aucun résultat. Il faut que j’ajoute une substitution des caractères spéciaux en espaces mais je n’ai pas encore trouvé d’astuce satisfaisante.
Il faut que j’ajoute un time out pour la réponse de Twitter afin qu’iTunes puisse reprendre le dessus plus rapidement si Twitter pose un problème.
Si vous rencontrez un bug avec le script, faites-le moi savoir afin que je le corrige au plus vite, en commentaire à cet article ou par email.














En tout cas chez moi ça fonctionne!
Merci bcp pour ce ptit bout de code!!
Avec plaisir.
J’espère que tu ne seras pas la seule chez qui ça fonctionnera !
testé et approuvé!
nice job, merci!
Parfait, merci pour le retour