Apple/Amazon : Perdez votre vie numérique en 30mn

Mat Honan est un journaliste chez Wired à qui il est arrivé la désagréable mésaventure d’être la cible d’un hacker qui voulait prendre le contrôle de son compte Twitter. Ce hacker a pu, par un enchaînement de recherches et de coups de fils, pu réinitialiser les mots de passe des comptes de sa victime suivants :
– Amazon
– Apple (Apple ID : iCloud, iTunes…)
– Google (Gmail)
– Twitter

Le hacker n’a effectué aucun achat avec les comptes Amazon ou Apple ou Google, mais il aurait pu par exemple commander des télés sur Amazon ou des applis sur les App Store… Par contre, en accédant au compte iCloud, il a pu effacer toutes les données que le journaliste stockait en ligne ET sur son Macbook via le service « Find My Mac » d’Apple (qui permet de bloquer le Mac à distance et d’y effacer toutes les données). Le journaliste a perdu un an et demi de données personnelles, notamment toutes ses photos qu’il n’avait pas sauvegardé ailleurs, car il avait trop confiance dans iCloud.

Son aventure et ses recherches sont toutes expliquées ici (en anglais).

Cet article explique de façon détaillée comment le hacker s’est introduit dans ses différents comptes. Et contrairement à ce qu’on pourrait penser, c’est vraiment à la portée de tous. Je n’ai pas moi-même effectué les manipulations mais Mat Honan a pu les vérifier lui-même. Je les traduis ici pour les non-anglophones afin de vous montrer que malgré tout ce que vous pouvez penser, vous n’êtes pas à l’abri de ce genre de mésaventure.

À l’origine, le hacker veut donc avoir accès au compte Twitter de Mat Honan. Tout d’abord il va prendre comme hypothèse que le journaliste a utilisé son adresse e-mail normale pour ouvrir le compte Twitter. Il trouve l’adresse du site web du journaliste, et sur ce site web, trouve l’adresse mhonan@gmail.com. Si le hacker veut accéder au compte Twitter, il doit avoir accès à ce compte Google pour faire un changement de mot de passe du compte Twitter.

Comment avoir accès au compte Gmail ? De la même manière, le hacker va chercher un moyen de changer le mot de passe de ce compte. Pour cela, il va lancer une procédure de récupération de mot de passe oublié. Google propose alors d’envoyer un e-mail à une des adresses e-mail alternatives que le journaliste avait indiquées à Gmail. Une de ces adresses est m****n@me.com (Google cache volontairement certains caractères). Il ne faut pas être informaticien pour deviner que cette adresse est mhonan@me.com, celle d’un compte iCloud (anciennement Mobile Me) de chez Apple. Le hacker va donc devoir avoir accès au compte Apple Me pour changer le mot de passe du compte Google.

C’est là que tout va se jouer car changer le mot de passe d’un compte iCloud n’est pas très compliqué. Le hacker, qui a par la suite contacté le journaliste, a indiqué qu’il était systématiquement possible de rentrer dans un compte Apple. Cette adresse de récupération qui devait sauver le journaliste a en fait entraîné sa perte.

Pour récupérer un mot de passe d’un compte iCloud, Apple ne demande « que » l’adresse de facturation du compte ainsi les 4 derniers chiffres du numéro de carte de crédit enregistrée sur ce compte. Comment faire pour obtenir ces deux informations très privées ?

Pour ce qui est de l’adresse, il faut faire jouer Google et toutes les bases de données possibles. Le journaliste ayant acheté un nom de domaine, son adresse était dans le Whois. Première étape terminée.

Deuxième étape, les 4 derniers chiffres du numéro de carte bleue. Le hacker a pris comme hypothèse que le journaliste avait déjà acheté sur Amazon et va rajouter une carte bancaire sur le compte Amazon de Mat Honan. Il suffit pour cela d’appeler Amazon, de leur donner un nom de détenteur de compte, une adresse e-mail, l’adresse de facturation (qu’on a déjà), et le numéro de la carte bancaire que l’on veut rajouter. Le hacker a pour cette dernière utilisé un générateur de faux numéro de carte bancaire.

Ensuite, une fois la conversation terminée, le hacker rappelle Amazon et dit qu’il a oublié le mot de passe de son compte Amazon. Il donne le nom de Mat Honan, l’e-mail, l’adresse de facturation, et Amazon demande en plus un numéro de carte bancaire associée au compte. Il a suffit au hacker de donner le numéro de la carte qu’il venait d’ajouter et bingo, Amazon lui donne accès au compte.

Une fois sur le compte Amazon, le hacker liste les moyens de paiements enregistrés : il y a en dernier la fausse carte qu’il vient de rajouter, et au-dessus, la carte bancaire du journaliste. Bien sûr, Amazon masque les numéros de cartes bancaire, sauf… les 4 derniers chiffres.

Notre hacker appelle donc Apple en donnant l’adresse e-mail de l’Apple ID, le nom, l’adresse de facturation et les 4 derniers chiffres de la carte bancaire du journaliste. Apple réinitialise le mot de passe, et le hacker a accès au compte Apple du journaliste. Au passage, il accède à distance au Mac du journaliste, y efface tout et le bloque (en rajoutant un code PIN sur le Mac), afin de bloquer toute tentative pour le journaliste de comprendre ce qui se passe.

Ensuite, il lance la procédure de changement de mot de passe de Google grâce au compte Apple, et fait de même avec le compte Twitter. Sur ce dernier, il fait de la merde et Twitter bloque le compte du journaliste.

Que nous apprend cette mésaventure ?

Tout d’abord qu’il faut éviter de lier les comptes les uns aux autres. Le hacker aurait eu beaucoup plus de peine à hacker le compte Gmail si l’adresse e-mail de restauration n’avait pas été une adresse d’un autre service facilement hackable.

Au passage, Google propose maintenant un système de « validation en deux étapes » vraiment, vraiment plus strict, qui demande un code envoyés par SMS pour toute connexion à partir d’un ordinateur inconnu. Je vous conseille fortement de l’activer : si Mat Honan avait activé la validation en deux étapes, le hacker n’aurait jamais pu pénétrer le compte Gmail.

Ensuite, on apprend aussi avec stupéfaction que les comptes Apple se hackent en deux coups de cuillère à pot. Interrogé, Apple a répondu que ses procédures de sécurité n’avaient pas été respectées, ce que le hacker et le journaliste démentent (Mat Honan a tenté plusieurs fois la manipulation et ça a marché à chaque fois).

Enfin, que Amazon aussi a une sécurité de merde qu’on peut faire sauter en 5mn, ce qui est TRÈS inquiétant. C’est pas comme si la moitié de la planète y avait enregistré son n° de carte bleue.

Je rappelle que Google, Apple et Amazon sont tous les trois des marchands et que le hacker aurait vraiment pu faire pleins d’achats pour foutre la merde.

Et, enfin, évidemment, les services clients des différentes sociétés ont été incapables de comprendre ce qui se passait.

Un autre résumé en français sur 01net

J’en profite pour signaler au passage que toutes les protections à base de questions du genre « Comment s’appelle votre mère ? » sont DE LA MERDE. Dans la majorité des cas, il suffit d’aller sur Facebook pour trouver ces informations.

Pensez-y.

Modification du 10/08 : Remplacement des références à Mobile Me par iCloud.
À priori Apple a bloqué toutes les procédures de récupération de mot de passe depuis hier, le temps de refaire un audit de leurs procédures de sécurité.

Free Mobile : Moi aussi ! Moi aussi !

Oui, moi aussi je veux mettre mon grain de sel pour dire ce que je pense des nouvelles offres de Free.

En fait ce qui m’a fait réagir, c’est cet article d’UFC Que Choisir qui détaille certains frais des offres de Free Mobile. Loin de moi l’idée de les critiquer, ils sont parfaitement dans leur rôle d’aller éplucher les offres de Free et de les comparer avec ceux de la concurrence : d’ailleurs, ladite concurrence devrait s’en inspirer au lieu de mentir comme des arracheurs de dents.

Pour ma part je me suis penché sur le coût du changement de mobile et celui, que l’on étudie plus rarement, des appels non pas À l’international mais DE l’international (quand vous êtes en déplacement à l’étranger). Le fait d’avoir eu une facture avec un surcoût de 70€ parce que j’ai eu à utiliser Google Maps pendant 5mn m’a définitivement convaincu de vérifier systématiquement ces tarifs avant de partir à l’étranger – et accessoirement, de préférer prévoir son trajet AVANT de se perdre aux USA.

En ce qui concerne le renouvellement de mobile, vous pouvez trouver des exemples un peu partout sur internet, mais le calcul est vite fait :
– Prenez un abonnement TOUT ILLIMITÉ avec engagement chez un opérateur X : ajoutez le prix que vous allez payer pour le mobile (exemple : 199€) à la totalité de ce que vous allez payer d’abonnement pendant toute la durée de votre engagement (tarif au mois x 12 ou x24). C’est ce que le tout vous coûtera.
– Prenez le forfait Free (ex. 19,99€) que vous multipliez par le même nombre de mois (x12 ou x24). Ensuite, trouvez votre mobile au meilleur prix, dans une version SANS ABONNEMENT, dans une boutique quelconque (ex. The Phone House, Apple…).

Comparez les deux. Souvent, la différence est minime, voire nulle. De plus vous pouvez souvent payer le mobile en 3 ou 10 fois sans frais. Attention par contre, il y a un piège : ce crédit sera compté dans l’endettement de votre ménage, ce qui n’est pas le cas des offres avec mobile et engagement.
Prenez aussi en compte le fait que si vous cassez votre mobile (comme le signalait UFC Que Choisir), vous avez perdu votre argent si vous l’achetez vous-même. Cependant c’est souvent aussi le cas lorsque vous l’achetez avec un abonnement : si vous cassez un iPhone 4S SFR au bout d’un mois, je vous assure que vous aurez peu de chance d’en obtenir un autre gratuitement…

edit : On me signale toutefois qu’avec les points de fidélité il est souvent moins cher de changer de mobile en se réengageant. Franchement, j’ai une faible consommation (= peu de points de fidélité) et je change de terminal tous les 18 mois environ. Et pour moi, les points de fidélité, ça ne m’a jamais été rentable. Après, à vous de faire le calcul.

En ce qui concerne les forfaits, rappelez-vous que celui de Free est tout illimité : voix, SMS, MMS, Internet (sans aucun bridage, uniquement un fair use). Les forfaits à 20€ de la concurrence, même illimités, ont souvent mis en place des bridages abusifs qui ne sont indiqués nulle part ; par exemple, Bouygues bride la taille maximale des fichiers que vous pouvez télécharger et interdit certains usages (UDP…), et ce depuis des années, et malgré les plaintes répétées de leurs abonnés.

Venons-en maintenant aux tarifs à l’international. Pour ça j’ai comparé le forfait Eden de Bouygues avec le forfait Free à 20€ sur quelques-unes de mes destinations de ces dernières années.

Vous l’aurez compris hein, j’ai mis en vert ce qui est bien, et en rouge ce qui est caca.

Ce qui saute aux yeux, c’est le prix de la data : Free est souvent plus de deux fois moins cher que Bouygues ! Même si, encore une fois, je vous déconseille plus que fortement d’y avoir recours – le simple fait d’activer la data en roaming et si vous avez un smartphone il va se mettre à télécharger tous vos e-mails, synchroniser vos contacts, télécharger des mises à jour… ou comment vider votre compte bancaire en 30s.

Du point de vue des SMS, Free est légèrement plus cher que Bouygues sauf pour les USA. On peut mettre ça sur le fait qu’ils ont dû réussir à négocier un meilleur tarif de gros.

Au niveau de la voix, pour tout ce qui est Europe on est dans du gros « c’est tout pareil » (à 1 centime près). Pour certains pays comme l’Afrique du Nord, comme le signalait UFCQC, Free est beaucoup plus cher, alors que – enfin ! – pour les USA et le Japon, on commence à avoir des tarifs humains : 0,50 € par minute en appel local ou vers la France.
Free est aussi jusqu’à 3x moins cher sur les appels reçus, ce qui est une bonne nouvelle : combien de fois ai-je du décrocher mon téléphone juste pour expliquer à la personne au bout du fil d’arrêter de m’appeler en boucle et que si je ne décrochais pas c’est que j’étais à l’étranger (je rappelle que quand vous appelez un numéro en 06 ou 07 alors que la personne se trouve à l’étranger, c’est votre destinataire qui paye la différence). Dans ce cas, aux USA par exemple, vous payez 1 € direct chez Bouygues, alors chez Free vous n’en aurez que pour 30 centimes.

Les appels d’étranger à étranger sont eux particulèrement chers dans tous les cas, donc là aussi appeler un pays autre que la France ou le pays dans lequel vous vous trouvez est à proscrire complètement (ce n’est pas 60 centimes de différence qui sauveront votre facture). Notez que chez Bouygues vous devez activer cette possibilité, si vous êtes partis à l’étranger sans avoir activé l’option correspondante, vous ne pourrez pas appeler d’autre pays que la France (et celui où vous vous trouvez).

Enfin, pour les MMS, j’ai pris comme hypothèse la taille maximale d’un MMS (100Ko), car Bouygues facture à la taille. Donc si vous recevez un MMS vide cela ne vous coûtera rien, mais avouez que cela a peu de chance d’arriver !

Conclusion : les communications de l’étranger restent toujours chères et doivent rester l’exception plutôt que la règle. Certaines destinations sont clairement de gros TRAPS quand on est chez Free, et je ne saurais que vous conseiller de consulter les tarifs de Free Mobile à l’international. Mais la bonne nouvelle, c’est qu’ils sont clairs et lisibles ! La seconde bonne nouvelle, c’est que même si vous vous retrouvez avec une facture de 100€ au lieu de 20€, pensez que cela reste ponctuel… comparé à un forfait Eden à 35~50 € PAR MOIS…

Nolife, les outils (5) : Papoum

Après Marvin, Logolife et Time Attack, au tour d’un autre logiciel propriétaire de Nolife de se voir dévoilé ici : Papoum. Ce sera un peu plus long… car le sujet est plus complexe 🙂

La situation mi-2008, plus d’un an après le début de la diffusion de Nolife, était que la chaîne avait un sérieux soucis à la diffusion : les personnes en charge de la conduite antenne (à l’époque, principalement Alex Pilot) n’avaient aucun moyen automatisé de vérifier qu’un programme était actuellement online sur la régie de diffusion ou pas. Le seul moyen était manuel : il fallait y accéder par ftp et vérifier, parmi des centaines de fichiers, que les émissions qui avaient dernièrement été uploadées étaient bien présentes.

Tout le problème résidait dans le système d’upload, qui n’était pas trivial : la première étape était d’uploader les fichiers par FTP dans un dossier dans lequel Nolife possédait des droits d’écriture. Ensuite lorsque l’upload était terminé, un script distant était sensé détecter que le fichier était uploadé (en réalité que sa taille ne changeait plus…) et faisait une vérification d’intégrité de la vidéo. Si la vidéo était ok, elle était copiée automatiquement dans le dossier contenant tous les fichiers disponible pour la diffusion (vidéos dites « PAD » pour « Prêt À Diffuser »), sur lequel Nolife n’avait qu’un droit en listing+lecture, une règle imposée par Cognacq-Jay pour des raisons de sécurité. Sinon, le fichier partait dans un dossier « quarantaine » de vidéos non-viables pour la diffusion.

Le système s’arrêtait là : pas d’alerte, pas d’avertissement. Si jamais il y avait une interruption lors de l’upload (ce qui était fréquent…), le script se lançait, en concluait que la vidéo était incorrecte et la mettait en quarantaine. De plus, un autre script était régulièrement lancé qui allait nettoyer le dossier en effaçant des vidéos PAD en fonction de règles prédéfinies (exemple : les 101% qui ont plus d’un mois), car la place disque était extrêmement limitée.

Au niveau de la diffusion à proprement parler, lorsqu’un fichier de la playlist courante n’était pas présent, la régie passait simplement au fichier suivant – un comportement qui est normalement interdit en diffusion télé : les régies génèrent normalement un noir équivalent à la durée du programme manquant pour ne pas décaler le reste de la programmation. Lorsqu’il s’agissait de clips ou de rediffusions de courtes rubriques, ce n’était pas grave. Mais lorsqu’il s’agissait du 101% du jour, c’était un problème évidemment très gênant, et en général la saute d’une émission se traduisait par un décalage catastrophique de l’enchaînement des playlists (se terminant souvent, encore une fois, par un coup de fil à Cognacq-Jay pour sauter un programme).

Autrement dit, il fallait absolument trouver un moyen de vérifier automatiquement si tous les programmes d’une playlist étaient bien « online » en régie. L’idée a commencé à germer en juin 2008 : en effet, sur la fin de saison l’équipe de Nolife est en général très fatiguée et les erreurs humaines se multiplient, ce qui a été le cas à cette période. Peu de temps auparavant, si mes souvenirs sont bons, Sébastien avait développé Time Attack, dont on a déjà parlé ici. À la rentrée de septembre 2008, après de nouvelles erreurs d’émissions non diffusées, je me suis mis au travail.

Ce fût ma première contribution à la création des outils de Nolife. Ça n’était pas si évident que ça : ma dernière vraie expérience de développement datait de 7 ans plus tôt. De plus, j’ai choisi de travailler en C# (.NET 3.0 à l’époque) et en WPF, ce qui n’était pas répandu (le WPF sont les nouvelles API d’interface homme-machine de Microsoft qui ont été introduites avec Windows Vista). Seb n’ayant pas l’expérience du WPF, il n’a pas pu m’aider et je me suis souvent bien fait chier pour comprendre la logique du bouzin. Mais au final je ne l’ai pas regretté… comme vous pourrez le voir plus tard.

Papoum 0.1 – L’origine
(septembre 2008)

Papoum, dans sa version 0.1, avait été développé sur le modèle d’interface de Time Attack que je trouvais très pratique et qu’Alex connaissait déjà.

Le fonctionnement était relativement simple : Papoum téléchargeait au lancement la liste des fichiers par FTP sur la régie de diffusion. Ensuite, il suffisait de glisser sur la fenêtre un m3u généré par Marvin et retouché par Alex. Papoum affichait alors la playlist à la façon de Time Attack, sauf qu’il vérifiait que le fichier était bien en ligne sur la régie. Dans le cas contraire, la ligne apparaissait en rouge. C’était tout, mais cela a suffit pour qu’Alex l’utilise immédiatement ! Évidemment, à partir de fin septembre 2008, les erreurs de diffusion dues à des fichiers offline ont baissé de façon spectaculaire (c’est toujours un peu gratifiant de voir un résultat quasi-immédiat ^^).

(Je fais une petite parenthèse sur le nom : au départ ce devait être un tout petit projet et je m’étais imaginé mettre un petit son qui faisait « Papoum ! » lorsqu’on droppait une playlist. Le son n’est jamais arrivé mais par contre le nom est resté. C’est toujours un peu délicat du coup quand on le présente à des professionnels :))

Papoum 0.1 permettait aussi d’afficher la liste complète des fichiers disponibles en régie (bouton « Afficher CJI » sur l’interface), ce qui évitait d’avoir à utiliser un client FTP pour vérifier des uploads manuellement.


Version 0.2a de Papoum. Ici, tous les fichiers de la playlist apparaissent offline. Je ne peux plus le faire fonctionner car ses paramètres sont entièrement hardcodés et la configuration de Nolife a changé.

Dès le départ, Papoum intégrait certains bout de code de Marvin, comme celui qui permettait de déduire la durée d’une vidéo de la taille du fichier, ce qui lui donnait un air de « Time Attack ++ ». Puis Alex a commencé à demander plus de fonctions, comme par exemple éviter de charger le listing du ftp à chaque lancement.

La version 0.3 (renommée ensuite 0.30) permettait de scanner les fichiers stockés localement à Nolife afin de les comparer avec ceux en ligne. Cela permettait de détecter les différences de versions car les émissions étaient parfois recompressées ; c’est notamment arrivé lorsque Nolife a commencé à être diffusée sur Neufbox, car la compression utilisée par Nolife jusque-là était incompatible avec ce réseau.

Pour éviter le scan des fichiers systématique à chaque lancement, les metadatas des médias de Nolife étaient sauvegardés en XML : la base de données de Papoum était née. Cela permettait de faire des stats (du genre : tous les 101% additionnés font tant d’heure, etc), mais surtout cela a eu une incidence notable par la suite sur le fonctionnement de Nolife.

Papoum a ensuite continué à évoluer avec deux mises à jour majeures.


Papoum 0.31 : les stats de durée totale des émissions, disponibles pour la première fois, ont également servi pour faire la promotion de Nolife.

Papoum 0.40 – Rock the Playlist
(décembre 2008)

La version 0.40 a intégré une véritable simulation de la diffusion des playlists par IPPlay. Pour résumer, au lieu de glisser une seule playlist, on pouvait désormais en glisser plusieurs ; Papoum affichait ensuite ce qui allait effectivement être diffusé à l’antenne en simulant le comportement de la régie, y compris les enchaînement foirés et les playlists qui bouclaient (avec un avertissement quand ça arrivait).
Cette fonctionnalité est, après encore bien des améliorations, celle qui sert encore actuellement pour checker les playlists et les envoyer en régie (cf les screenshots en fin d’article).

Papoum 0.50 – De bien belles assets
(janvier 2009)

La seconde étape majeure a été la transformation de logiciel de vérification de playlist à celle de MAM (Media Asset Management), fin janvier 2009.

Je m’étais en effet rendu compte que je pouvais récupérer les infos de Marvin (via une passerelle intégrée à Papoum) et en faire une espèce de base de données un peu mieux foutue. De plus, je disposais d’informations supplémentaires : par exemple, la simulation de playlists implémentée dans Papoum 0.40 me permettait de déduire les heures de premières et dernières diffusions d’un programme.
Je me suis donc dit qu’en structurant un peu tout ça, il serait peut-être possible de centraliser un minimum les informations que l’on avait sur les émissions de Nolife tout en ajoutant d’autres, comme par exemple lier un titre à chaque type d’émission (CU : « 101% », CM : « Chez Marcus », etc), donner des numéros, des sous-titres, des descriptions, la couleur du logo, etc.

Donc, d’une base stockée sur un fichier XML, Papoum est passé à plusieurs. Comme je viens de le dire, il était possible de rentrer des informations sur chaque émission. Une autre nouveauté, plus discrète mais essentielle, était que ces metadatas n’étaient plus liées au fichier media mais à une entité de plus haut niveau : l’émission (« show »). À la base, l’idée était de préparer Papoum à la connexion avec une vraie base de donnée relationnelle (type MySQL). De plus je caressais l’espoir de pouvoir envoyer les infos un jour ou l’autre aux différents EPG (guide des programmes), et également d’indiquer sur le site web les programmes en cours de diffusion ; la centralisation des informations était essentielle pour cela.

D’autres fonctions sont apparues dans cette version : la recherche, la possibilité de donner un niveau d’importance aux émissions…

Bien sûr un travail de nettoyage et de réécriture a dû également être fait en parallèle pour supporter tout ça, et c’est à ce moment-là par exemple que la maintenance (debuggage…) a commencé à prendre du temps, et que la configuration via des fichiers externes est apparue (fin du paramétrage « en dur » dans le code).


Papoum 0.50. Beaucoup de choses étaient déjà prévues dans la structure de cette version, qui ont été implémentées dans les versions 0.5x suivantes.

Papoum 0.60 – L’apogée
(mars 2009)

La base de code de la version 0.60 de Papoum a été la plus stable et la plus aboutie techniquement, ce qui a fait d’elle la version qui a le mieux fonctionné, et ce pendant 15 mois. Je crois que c’est un record dans la vie de ce logiciel !

Principalement il s’agissait de grosses améliorations techniques ou la réutilisation de fonctionnalités déjà existantes. Par exemple est arrivée la possibilité de « lier » virtuellement plusieurs médias pour en faire une émission (principalement pour le J-Top et Ami Ami Idol). Mais la première fonctionnalité « publique » de Papoum, celle qui l’a un peu fait connaître des gens suivant assidûment la chaîne, fût NoAir, en avril 2009 (Papoum 0.63).

NoAir part du principe qu’on pouvait faire un « guide des programmes » avec tout ce que j’avais déjà dévelopé pour Papoum. Cela consistait tout simplement à aller chercher les playlists déjà entrées en régie (on en a toujours conservé une copie en local), et faire une simulation de diffusion sur celles correspondants aux 12 dernières et 24 prochaines heures. De là on garde les programmes uniquement marqués comme « importants », et hop ! On a la liste des programmes qu’on peut partager avec les téléspectateurs. Ceci s’est fait par l’upload d’un XML sur le site web (qu’il fallait déclencher via un bouton dans Papoum). NoAir existe toujours à l’heure actuelle même s’il n’est plus généré de la même manière : vous pouvez en avoir un exemple et apprendre comment créer votre propre client.


L’implémentation de Nolife de NoAir, disponible sur le site officiel.

Un autre amélioration technique concernait le scan des médias car le format de compression avait encore changé pour s’adapter à des modifications dans IPPlay. Du coup, on se retrouvait avec une multitude de formats différents (MPEG2 en 544×576 4/3 et 16/9, 720×576 16/9, upper field first, lower field first et deux bitrates différents) et le scan « à l’arrache » ne suffisait plus. Papoum a donc intégré un vrai scan des médias grâce à l’excellent mediainfo.dll et pouvait sonner l’alerte dès qu’un fichier non compatible avec la diffusion était programmé, car chaque type de fichier était reconnu et classifié. L’algorithme de scan a dû être pas mal affiné à cette occasion car mediainfo prend son temps et il est hors de question de rescanner intégralement 16000 fichiers à chaque fois.

La version 0.60 a aussi introduit le multi-utilisateur qui était TRÈS bancal. En fait les XML étaient centralisés sur le réseau et au démarrage, Papoum en chargeait une copie. L’utilisateur pouvait ensuite centraliser les informations de son poste vers le réseau (en écrasant les anciennes)… j’ai dit que c’était bancal ?

Ensuite, et c’est plus subtil, la terminologie a évolué. Par exemple on a vu apparaître la notion de « stocks » pour définir les emplacements des médias. Ce changement vient du fait que Nolife, avec l’aide d’Ankama, avait déposé des dossiers pour la reprise sur le câble et le satellite ; or IPPlay n’était pas une régie suffisamment fiable pour ces réseaux – de toute façon, IPPlay était une bonne solution pour démarrer, mais pas sur le long terme. Ankama avait donc lancé l’achat d’une nouvelle régie pour Nolife, construite par la société MBT et avec laquelle, à terme, Papoum devait s’interfacer. La terminologie s’est donc adaptée à celle en vigueur dans le milieu.

Pour finir, une sombre version 0.70 est sortie mi-juillet 2009. En fait la seule vraie nouveauté était une passerelle écrite pour récupérer toutes les informations concernant les clips japonais et français qui étaient stockées dans un tableau Excel et que Seb recopiait à la main dans Marvin (comme vous le voyez, on partait de loin). Le but était de centraliser toutes les informations concernant les émissions de Nolife dans Papoum, car la véritable base de données à été construite durant l’été 2009 à partir des XML de ce dernier.

Papoum 0.90 – Adieu IPPlay… Adieu Papoum ?
(octobre 2009)

Mais, mais mais, où est la version 0.80 ?

En fait, la 0.80 n’a jamais été déployée sous ce nom. Il s’agit d’un « fork », une branche parallèle dans le développement de Papoum qui s’est créée mi-2009. Elle sera mise en production durant l’été mais déployée sur l’ensemble des postes de Nolife uniquement début 2010. Je vous laisse deviner ce qui a motivé cette bifurcation soudaine ! 🙂

La branche 0.60 de Papoum a tout de même continué à évoluer sous le numéro « 0.9x » pour la différentier de la nouvelle branche (qui sera finalement numérotée 1.0). Au départ, la 0.60 devait être abandonnée, mais elle est restée, jusqu’à ce jour, le seul outil que l’on avait pour vérifier les playlists avant diffusion. Elle est donc encore en production et curieusement, est revenue à sa fonction de base.
Les autres fonctions de Papoum ont été progressivement désactivées ou modifiées car Papoum et ses XML n’était plus la référence. Par exemple, les métadatas des émissions sont désormais automatiquement récupérés de la nouvelle base de données, mais Papoum ne peut pas les renvoyer dans l’autre sens. C’est en quelque sorte devenu une « impasse » logicielle.

Entre temps, les choses avaient pas mal changées au niveau de la diffusion.

Car même si Nolife n’a finalement pas été reprise sur le câble et le satellite, Médiamétrie a commencé à mesurer l’audience sur l’ADSL dès février 2010… mais le signal envoyé par IPPlay interdisait à Nolife de se faire mesurer. Donc la régie de MBT (le « Chameleon »), qui était restée en sommeil, a finalement été mise en production en juin 2010, et IPPlay complètement abandonné.

Or, le Chameleon ne fonctionne pas du tout comme IPPlay ! Le principe est absolument contraire : le player vidéo est asservi par un logiciel (« Phoenix ») qui gère une seule playlist (dite « playlist antenne »).
Autrement dit, c’est la playlist antenne qui définit à quelle moment précis chaque média doit être joué, et à quel moment il doit s’arrêter, et ce, à l’image près. Il faut évidemment que ces données correspondent au média qu’on veut jouer… donc on ne peut plus simplement donner une liste de fichiers, il faut aussi donner un timecode de début de lecture (par exemple le 20/05/2011 à 14:35:24:12, soit 14h 35mn 24s et 12 images) et une durée précise pour chaque média. Le player qui joue le média est dans une couche plus basse et si le média joué est en réalité plus long que ce qui est indiqué dans la playlist, il sera coupé ; s’il est plus court, il y aura un écran noir à l’antenne.

Du coup, impossible de balancer nos m3u moisis dans ce système. La solution, encore une fois, a été d’utiliser la simulation IPPlay intégrée à Papoum et tout simplement d’exporter une playlist antenne au bon format, avec tous les TC, pour la nouvelle régie. Pour être vraiment précis sur cette partie, MBT nous a aussi aidé en développant de leur côté une autre passerelle pour nous permettre de fusionner la playlist exportée de Papoum dans la playlist antenne de Phoenix.

C’est donc Papoum qui fait la passerelle entre Marvin et le Chameleon, alors qu’au départ il avait un simple rôle de vérification. Ce qui explique en partie sa longévité en production, car il est assez difficile de changer un composant critique de la diffusion.

Enfin (ouf !), la dernière modif a concerné l’arrivée toute récente de la publicité, le challenge ici étant que les noms des médias et leur durée nous sont communiqués par France Télévision Publicités bien avant leur diffusion, mais que Papoum n’a pas accès aux médias pour les scanner. Or ce dernier n’a pas été prévu pour gérer des émissions sans média (par défaut quand ça arrive la durée est ramenée à 0).

Le problème là-dedans, c’est que la nouvelle régie, la publicité et d’autres changement structurels à Nolife n’étaient pas du tout prévus dans la mécanique originale de Papoum. Du coup depuis début 2010 les patchs s’enchaînent, le rendant de moins en moins stable, et chaque nouveau patch génère des comportement imprévisibles. La branche 1.0 ayant considérablement évolué depuis, sa retraite est donc très proche et il sera vraisemblablement entièrement remplacé dans le courant de l’été 2011 par… Shin Papoum !

Et pour finir, voici quelques screenshots de Papoum 0.98 :


Papoum 0.98, qui devrait être la version finale.
Notez le fichier offline (non disponible en régie pour une diffusion immédiate) et les petites images dans l’interface qui sont là grâce à la souplesse de WPF ! De plus, un clic droit sur un média ouvre un menu contextuel permettant soit de localiser le média sur le réseau, soit de le jouer dans VLC. La colonne de gauche est la liste des types d’émissions, générée à partir des noms de l’ensemble des médias trouvés.


Un exemple de recherche qui s’effectue en live, « à la iTunes ». Le niveau de vert des émission correspond à leur niveau de visibilité publique (pour NoAir). Notez qu’un scan des médias est effectué en parallèle (en bas).


Les metadatas d’émissions sont désormais principalement importées d’une source extérieure mais sont toujours dispo dans l’ancienne fenêtre d’édition pour consultation. Le rouge indique que toute modification sera perdue.


Voici le fameux simulateur de conduite antenne IPPlay, introduit dans Papoum 0.40.
Ici il y a trois playlists, et on voit que la simulation est correcte (la playlist de 18h33 commence à 18h55 à cause du Chez Marcus). Les pubs sont en violet pour qu’elles soient bien visibles (Nolife a l’obligation de les diffuser dans certaines plages horaires). Trois fichiers sont actuellement offline sur la régie, mais la playlist antenne peut tout de même être générée avec les bons timecodes et les médias copiés plus tard. Enfin, le bouton « Exporter vers Phoenix » permet d’exporter ce que l’on voit vers la nouvelle régie de diffusion.

Diverses infos. Le switch entre régie a été désactivé une fois la migration de la diffusion effectuée.

Nolife, les outils (4) : Time Attack

Cet article est la suite de…
Le défi du m3u
Marvin
LogoLife

Donc, continuons sur la liste des outils spécifiquement développés pour Nolife. Jusqu’à présent je vous ai présenté Marvin, qui génère les playlists au format texte en suivant certaines règles (comment sont définies ces règles sera l’objet d’un autre article… et oui, c’est pas fini). Puis LogoLife, le petit bijou de PixelPhil qui permet d’incruster les habillages de chaîne à la volée lors de la compression des vidéos.

Tout ceci est bien joli, mais à la fin, il fallait dès le 1er juin 2007 reprendre les playlists à la main pour vérifier les enchaînements entre elles.

Je rappelle succinctement le fonctionnement de la première régie de Nolife (IPPlay) :

  1. Une playlist est chargée et commence à jouer à une heure donnée (heure extraite du nom de fichier de la playlist).
  2. La playlist suivante est, elle aussi, chargée, mais pas jouée.
  3. La régie est comme un gros Winamp, elle va jouer le premier fichier et attendre qu’il soit fini de jouer.
  4. Une fois que le fichier est terminé, IPPlay compare l’heure actuelle avec l’heure de la playlist suivante. Si l’heure de la playlist suivante est inférieure à l’heure actuelle…
    —> alors IPPlay bascule sur cette nouvelle playlist et retourne au (2).

  5. Si la fin de la playlist est atteinte sans qu’il n’y ait de playlist suivante :
    —> alors IPPlay revient au début de la playlist courante, charge le premier fichier et retourne au (4)
    —> Sinon, IPPlay charge le fichier suivant et retourne au (4).

En gros, ce système simplissime avait pour but la diffusion de chaînes extrêmement simples, du genre Astro center (je crois que Freenews TV l’utilisait aussi).

On peut dire que Nolife, dès le départ, a explosé les limites du logiciel, vu que d’une playlist qui bouclait toutes les heures et qui ne changeait pas très souvent, on est passé à 48 playlists par jour contenant parfois jusqu’à une vingtaine de médias différents. (ce qui n’a pas manqué de déclencher certains bugs dans IPPlay).

Une des problématiques de faire les playlists était donc de connaître, au moins approximativement, la durée des médias joués à l’avance et si possible, la durée d’une playlist entière. En effet une playlist trop courte ou une émission trop longue pouvait décaler complètement la diffusion. Par exemple, si dans la playlist de 19h on mettait une bande-annonce et un 101%, si le 101% faisait 35mn et que la playlist suivante démarrait à 19h30, en réalité cette dernière allait démarrer à 19h35 au moins et tout fonctionnait. Par contre, si le 101% faisait par exemple 27mn, IPPlay arrivait en bout de playlist, bouclait sur la playlist de 19h et rejouait une deuxième fois le 101%, ce qui décalait la playlist de 19h30 à 19h54. Le soucis ici, c’est qu’on n’avait absolument pas la main sur IPPlay et que ça se soldait par un coup de fil à Cognacq-Jay pour demander à un technicien de cliquer sur le bouton « next » pour sauter le 101% en trop (Cognaq-Jay a reçu beaucoup de coup de fils en trois ans).

Bref, c’est devenu rapidement pas tenable du tout, et Alex a demandé à Seb d’essayer de faire un logiciel pour lui indiquer la durée d’une playlist. Dont acte, avec Time Attack.



Le principe de Time Attack est simple : on glisse un ou plusieurs fichier(s) média au(s) format de la régie dans l’une des 4 cases (à l’époque, des MPEG2 Transport Stream à 3Mbps), et il donne la durée de chaque fichier.

On peut aussi glisser une playlist et Time Attack va alors calculer l’heure de diffusion de chaque média, ce qui était extrêmement pratique pour faire des simulations mentales de ce qui risquait approximativement de se passer à l’antenne. Comme il y avait 4 case, cela permettait d’avoir de la visibilité sur au maximum 4 playlists. Cette fonctionnalité ne marche plus car Time Attack devait alors aller chercher lui-même les médias qui étaient stockés sur le réseau, or l’emplacement réseau a changé et l’adresse est codée en dur dans le logiciel.

L’autre petit défaut est que Time Attack ne scannait pas vraiment les médias pour en connaître la durée : comme on travaillait en CBR, Seb avait calculé un débit moyen et pouvait déduire la durée approximative d’une fichier à partir de sa taille. Ce système implémenté dans Marvin à l’origine fonctionnait plutôt bien et a d’ailleurs été conservé pendant deux ans.

Preuve que Time Attack était utile, Alex l’a immédiatement adopté. C’est aussi en voyant Time Attack que je me suis dit qu’on pouvait faire un autre logiciel du même type pour détecter les médias mal (ou pas) uploadés sur la régie, ce qui se soldait par des émissions non diffusées. Et ce sera pour la prochaine fois !

Audiences : Tout le monde a gagné

Les plus anciens reconnaîtront cette phrase extraite d’un des plus fameux programmes du PAF (et pouf !) : l’école des fans. « Tout le monde a gagné, allez chercher vos cadeaux » qu’il disait le Jacques aux petits enfants qui avaient bien ou mal chanté à nous en faire péter les oreilles pendant une heure.

Pour les résultats Médiamétrie du câble/satellite/ADSL/TNT payante, cette mesure appelée « Mediamat’Thématik » (anciennement MediaCabSat), c’est un peu la même chose. Le jour où les résultats tombent, deux fois par an, les communiqués pleuvent dès le milieu d’après-midi. Et les résultats sont invariablement les mêmes : tout le monde a gagné, tout le monde est n°1 quelque part. Il n’y a pas de perdant.

Pour comprendre ce qu’il se passe, il faut savoir que les chaînes ne reçoivent pas une grande feuille Excel avec le classement des chaînes (comme celui que donne Médiamétrie dans son propre communiqué officiel). En réalité, Médiamétrie fournit un logiciel propriétaire ainsi qu’un fichier de données contenant toutes les mesures effectuée pendant la période de l’étude. Ensuite, à charge de la chaîne d’utiliser ce logiciel pour sortir tout un tas de chiffres qui lui seront utiles pour éventuellement modifier sa grille (y compris publicitaire), voir comment sa chaîne se comporte sur telle ou telle tranche d’âge, réseau, jour, heure, etc.
Les possibilités sont assez vastes, par exemple on peut sortir un pourcentage d’audience par rapport à la totalité des individus regardant la télé sur une période donnée, ou par rapport à l’audience d’une autre chaîne. On peut sortir l’audience brute en nombre de téléspectateurs, ou bien en % par rapport à plein de choses. On peut savoir, sur un mois, combien de personnes uniques auront regardé telle tranche horaire, etc. La seule limitation est qu’on ne peut pas sortir les audiences d’un jour particulier de la période : au plus fin, on ne peut travailler que sur des moyennes par « jour nommé » (moyenne de tous les lundi, de tous les mardi, etc), et la précision horaire la plus fine est de 15mn.

À partir de là, le but du jeu est de sortir l’indice qui mettra la chaîne le plus en avant pour faire un joli communiqué. Tout en sachant que pour la publicité, ça ne changera strictement rien : les régies pub ne prennent en compte que les chiffres bruts (nombre de téléspectateurs) et jamais les part d’audience. La part d’audience, c’est surtout classer les chaînes les unes par rapport aux autres sur une période donnée, et donc, pouvoir éventuellement se la péter.

Je rappelle que la part d’audience (pda) se mesure simplement en prenant le nombre de téléspectateurs regardant la chaîne à un moment donné, divisé par le nombre de téléspectateurs regardant la télévision au même moment. On multiplie par 100, et hop, on trouve la pda.

Si vous vous êtes un peu intéressé aux communiqués sortis mardi, vous aurez pu donc remarquer que chaque chaîne est la meilleure. Mais par contre, aucune chaîne n’est la meilleure au même endroit : une communiquera sur le fait qu’elle est très bonne sur les 4-50 ans, une sur les hommes 15-34, une sur les CSP+… C’est normal : on parle ici de chaînes thématiques. Vivolta n’a pas les mêmes téléspectateurs que Nolife, qui n’a pas les mêmes téléspectateurs que Gulli. Donc comparer toutes les chaînes ensemble sans restreindre l’âge, c’est très compliqué et ça donne des résultats au final pas très parlants pour la majorité des chaînes qui se battent plutôt sur des tranches d’âges bien précises (cf le classement de Médiamétrie). Au final, le but, c’est évidemment d’essayer de ramasser la plus grosse part du marché publicitaire sur la tranche d’âge qui concerne la chaîne.

Cependant, lorsqu’on est dans le milieu professionnel de la télévision, on est au courant de tout ça, et évidemment, on sait que les communiqués de presse sont à prendre avec (beaucoup) de pincettes. De toute façon, toutes les chaînes mesurées par Médiamétrie reçoivent les mesures de tout le monde, donc on peut facilement vérifier les dires des communiqués. Parfois, la surprise est toutefois au rendez-vous…

Comme par exemple, avec ce communiqué de Lagardère.

Avec 0.1% de part de marché et près de 5 millions de téléspectateurs par mois, MCM, diffuseur du Top 50, enregistre une progression de 100% auprès des hommes de 15/34 ans. Elle se partage la première place des chaînes musicales aux côtés de NRJ Hits et MTV, auprès de cette cible.

La première phrase est aisément vérifiable lorsqu’on a accès au logiciel d’interprétation des mesures. Par contre, la seconde phrase est plus discutable. Il s’agit d’une interprétation des résultats via le filtre du service marketing & communication de Lagardère, qui est beaucoup plus sujet à caution. Vous en trouverez pas mal, des phrases de ce genre, dans les communiqués (ex. : « chaîne très forte chez les jeunes » -> définissez « jeunes » ?). Comme c’est l’exemple qui m’a le plus frappé, je vous donne les résultats tels que les donnent Médiamétrie. Je vous laisse deviner comment ils les ont interprétés, en sachant que généralement on enlève les chaînes TNT gratuites qui font des chiffres de toute façon bien supérieures aux chaines cab/sat/ADSL/TNT payante (ici, dans cette étude, l’audience des chaînes TNT gratuite n’est mesurée que sur leur part câble+satellite+ADSL, on n’a pas les chiffres d’audience sur la TNT gratuite, donc c’est un peu biaisé. On considère généralement que les 18 chaînes TNT gratuite seront toujours au-dessus des autres).

Part d’audience Hommes 15-34 ans, univers complet (câble/satellite/adsl)
Mediamat’Thematik vague 20 (30 août 2010 – 13 février 2011)
6 premières chaînes musicales :
1. Direct Star (1,1%)
2. Nolife (0,7%)
3. NRJ Hits (0,5%)
4. Trace Urban (0,3%)
5. MCM (0,2%)
6. MTV (0,2%)

« (MCM) se partage la première place des chaînes musicales aux côtés de NRJ Hits et MTV »

…savent-ils seulement que Nolife et Trace Urban sont des chaînes musicales ?