Pour les amoureux de Twitter et de Mac OS et plus particulièrement d'iTunes, je vous présente un petit script qui vous permettra de balancer votre morceau en cours sur votre stream Twitter quelque chose comme ci-dessus.

Script orginalement pické sur l'article de Tilman, j'ai téléchargé le script et fait quelques essais.
Tout fonctionne bien (d'ailleurs ceux qui me suivent sur Twitter peuvent être témoins de mes essais) mais évidement c'était pas parfait (à mon goût). Donc j'ai commencé à bidouiller un peu pour obtenir le résultat que je voulais.

Une fois installé, vous pouvez ouvrir le répertoire de script d'iTunes par un script proposé par défaut avec iTunes et zou vous êtes face au script TwiTunes.scpt. Double-cliquez dessus pour l'ouvrir dans l'éditeur de scripts.

Pour ma part, j'ai viré la boîte de dialogue qui me gonflait parce que normalement si vos morceaux sont bien taggés (ID3) les informations ne devraient pas manquer. Le script utilise la librairie cURL pour envoyer à l'API de Twitter et donc la chaîne est envoyée en ligne de commande.

Le problème que j'ai rencontré fut celui des morceaux contenant un « & » car comme vous devriez le savoir, ce caractère permet de séparer les paramètres dans une URL. Donc, quand le nom du morceau passait dans la moulinette, il était coupé au premier « & ».

N'ayant jamais fait d'Apple Script, j'ai du chercher sur le Net pour un genre de strtr() mais en Apple Script. Je me suis arrêté sur cette fonction :

-- script to find and replace a string
on snr(the_string, search_string, replace_string)
	tell (a reference to my text item delimiters)
		set {old_tid, contents} to {contents, search_string}
		set {the_string, contents} to {the_string's text items, replace_string}
		set {the_string, contents} to {the_string as Unicode text, old_tid}
	end tell
	return the_string
end snr

Pour dire que si ça vous tente de balancer ce que vous étoutez sur Twitter, je vous file la source de mon script qui fonctionne très bien et qui corrige entre autre le problème des « & » dans vos remixs.

Donc voici un script que quand tu cliques dessus il envoie ton morceaux à ton Twitter sans dialogue ou erreur :D :

-- script to find and replace a string
on snr(the_string, search_string, replace_string)
	tell (a reference to my text item delimiters)
		set {old_tid, contents} to {contents, search_string}
		set {the_string, contents} to {the_string's text items, replace_string}
		set {the_string, contents} to {the_string as Unicode text, old_tid}
	end tell
	return the_string
end snr

-- get properties of the playing track
tell application "iTunes"
	set thisTrack to current track
	set trackName to the name of thisTrack
	set trackArtist to thisTrack's artist
end tell

-- change the status message to your liking here:
set tweet to "♫ " & trackArtist & " - " & trackName

-- get login from keychain
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

-- post to twitter
set twitter_status to quoted form of ("status=" & snr(tweet, "&", "%26"))
set results to do shell script "curl --user " & twitter_login & " --data-binary " & twitter_status & " http://twitter.com/statuses/update.json"

Bon weekend !


Joris Berthelot