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.

Note préalable

Il faut que vous ayez autorisé au moins une fois Safari à enregistrer le mot de passe de votre compte Twitter pour que le script fonctionne et puisse envoyer le message à Twitter.

Installation

    Téléchargez le script ;
    – Décompressez le .zip si nécessaire ;
    – Copiez `shorTunes.scpt` dans `/Utilisateurs/VotreNom/Bibliothèque/iTunes/scripts/` ; créez ce dossier `scripts` s’il n’existe pas déjà.

Utilisation

Lorsqu’un morceau est joué dans iTunes, ouvrez le menu des scripts et lancez shorTunes.

menu

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.

shortunesprompt

Une fois que le tweet a été envoyé, un message vous le confirme.

shortunessent

En allant voir votre compte Twitter vous pouvez voir que le morceau a effectivement été envoyé à Twitter.

twitter

Un aperçu de la recherche dans l’iTunes Store après un clic sur l’URL raccourcie fournie par Bit.ly.

itunesstore

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

  1. 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).
  2. 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.
  3. 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.
  4. 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.

3396bd9bbd9f1c62618d087f9af6909fkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk