Voici un billet un peu spécial dans lequel je vais vous parler d’une application Android que j’ai réalisée et qui n’a finalement pas pu être publiée pour des raisons de droits. Une application “maudite” qui m’a néanmoins demandé beaucoup de travail et dont je suis assez fier du résultat.

Durant l’été 2014, j’ai décidé de développer une application mobile destinée à diffuser des vidéos localement et à distance via Google Cast. Cette technologie permet notamment de diffuser des contenus vidéo sur grand écran au moyen d’un téléviseur compatible ou d’une clé HDMI Chromecast, la lecture étant contrôlée directement par votre smartphone, tablette ou PC. Ici en l’occurrence, mon objectif était de créer une application Android pour smartphones et tablettes afin de gagner en expérience dans ce domaine. Si elle pouvait être utile au plus grand nombre, ce serait encore mieux.

Mon choix pour la source du contenu s’est porté sur la chaîne nationale francophone, la RTBF. En tant que service public disposant d’un site web bien fourni en vidéos encodées dans un format non protégé et compatible Chromecast, cela me paraissait le candidat idéal.

J’ai donc commencé par créer du code permettant d’extraire les données du site web RTBF Vidéo. Je me suis focalisé sur le contenu à la demande et non sur le Live Center. La tâche fut relativement simple et lorsque j’ai pu vérifier que j’avais bien toutes les données requises, j’ai pu passer à l’étape suivante consistant à créer un lecteur vidéo local dans l’application, offrant une expérience de lecture optimisée en plein écran sur smartphones et tablettes. Sur le site de la RTBF, les vidéos sont disponibles dans 3 qualités différentes: basse, moyenne et élevée. J’ai décidé de permettre à l’utilisateur de choisir la qualité vidéo maximale désirée en WiFi et en 3G, ce qui lui permet de contrôler sa consommation de données mobiles lorsqu’il est en déplacement. Ce n’est pas tout: j’ai également programmé une fonction dans l’application permettant de détecter la qualité vidéo maximale supportée par son appareil. En effet, certains modèles plus anciens ne sont pas compatibles avec la qualité élevée. L’écran des options reflète également cette compatibilité.

Lecteur vidéo

Une fois le lecteur vidéo local au point, j’ai attaqué la partie la plus intéressante: la diffusion sur Chromecast en respectant au mieux les directives proposées par Google. Pour cela, j’ai voulu utiliser la Cast Companion Library, une bibliothèque de code créée par un employé de Google afin de faciliter aux développeurs l’intégration de la lecture audio et vidéo via Google Cast dans leurs applications Android. Malheureusement, j’ai rapidement déchanté quant à la qualité du code de cette bibliothèque à l’époque (je crois qu’elle s’est un peu améliorée depuis). Bugs et complexité superflue m’ont convaincu de ré-écrire environ la moitié du code ce qui m’a pris un mois supplémentaire sur mon temps libre. Si vous désirez plus de détails, le fruit de ce travail est également disponible sur GitHub.

Finalement j’ai réussi à tout faire fonctionner à la perfection. La lecture vidéo sur Google Cast utilise toujours la qualité vidéo élevée fournie par la RTBF étant donné que ces appareils sont compatibles avec ce format et sont connectés via WiFi.

Au niveau de l’usage de l’application, j’ai conçu une interface graphique très simple dont les deux points d’entrée pour accéder au contenu sont une grille de vidéos mises en avant classées par catégorie, ainsi qu’une liste des émissions avec leurs dernières vidéos. Une recherche par nom est également possible et se branche sur la fonction recherche du site web.

La grille de vidéos mises en avant

La liste des émissions

Cerise sur le gâteau, cliquer sur un lien pointant vers une vidéo sur le site web de la RTBF permet de lire celle-ci directement dans le lecteur vidéo de l’application, qui à son tour permet de rediriger la lecture sur l’appareil compatible Google Cast.

Une fois que tout était au point, j’ai publié l’application sur le Play Store juste avant la rentrée télé et les premières réactions furent très positives. Malheureusement, quelques jours plus tard un responsable de la RTBF me demanda de dépublier immédiatement l’application et m’invita à discuter avec lui dans les bureaux de la chaîne.

Tout d’abord il crut à un vol de code étant donné que mon ancien employeur avait développé la première version de l’application officielle de la RTBF. Cette rumeur fut rapidement écartée lorsque j’ai expliqué le fonctionnement de l’application: toutes les données sont extraites directement des pages web du site, ce qui peut être facilement vérifié en observant les requêtes sur le réseau. Je lui ai également rappelé qu’il n’existait aucun mécanisme de protection (DRM, chiffrement ou clé d’accès) pour empêcher le libre accès aux fichiers vidéo du site ce qui a rendu ma tâche relativement simple. J’ai ensuite voulu faire la démonstration de l’expérience optimisée de lecture vidéo sur Chromecast que j’avais implémentée mais je n’ai pas été en mesure de le faire étant donné que l’appareil Chromecast a purement et simplement refusé de se connecter au réseau WiFi de la RTBF. Difficile alors de le convaincre de l’utilité de mon application…

J’étais prêt à adapter celle-ci aux exigences de la RTBF, cependant le responsable m’a expliqué pendant le restant de notre entrevue qu’une application non officielle ne pouvait tout simplement pas être autorisée pour des raisons de droits télévisés. Concrètement, il craignait que des ayants-droits tels que les pontes de la F1 ne fassent un procès à la chaîne. Tout cela est évidemment très flou juridiquement: l’application n’altère pas le contenu des vidéos, elle ne les stocke pas et elle ne les récupère pas depuis une source non autorisée; elle fait simplement office de surcouche par-dessus le site web. Les vidéos géobloquées sur le site sont également indisponibles dans l’app. Elle est en quelque sorte un navigateur web conçu spécialement pour ce site. À cet égard, je leur ai rappelé que le navigateur web Google Chrome sur Android permet lui aussi de diffuser toutes les vidéos HTML5 sur Chromecast dont celles de la RTBF, avec une expérience moins optimale que ce que fournit mon app. Au final, si un contenu est publié via des technologies ouvertes, il ne sera jamais possible de contrôler la façon dont les gens consomment ce contenu. Mais ce débat ne semblait pas intéresser la RTBF qui a préféré jouer la carte de la sûreté et interdire toute initiative indépendante touchant de près ou de loin à ses contenus. C’est triste mais compréhensible.

Ceci est d’autant plus dommage qu’il existe une application Android similaire pour la VRT créée par un développeur indépendant et que celle-ci est tolérée, avec déjà plusieurs milliers de téléchargements au compteur. On aurait pu croire à une politique similaire étant donné que les bureaux de la VRT (chaîne nationale néerlandophone) sont situés sur le même site que ceux de la RTBF. Par le passé, j’ai également utilisé un plug-in non officiel destiné à lire le contenu vidéo RTBF sur le défunt logiciel libre Elisa Media Center, que vous pouvez voir en action dans cette vidéo.

La RTBF a récemment publié la nouvelle version de son application officielle sur Android et iPhone, en retirant au passage toutes ses fonctionnalités en dehors des actualités. J’ai rarement eu l’occasion de voir autant de réactions négatives d’utilisateurs suite à une mise à jour, autant sur le Play Store que sur l’App Store. Il est clair que ce que les utilisateurs de smartphones attendent avant tout d’une application native créée par un grand média, c’est une diffusion audio et vidéo optimisée de ses contenus sur leur appareil et non des boutons qui les redirigent vers un site web. C’est un fait: nombreux sont ceux qui utilisaient avant tout l’app officielle pour écouter la radio et regarder le dernier journal télévisé, choses qu’ils doivent maintenant faire avec le site mobile qui offre une expérience et une compatibilité inférieures. Le plus incompréhensible étant que la RTBF a publié dans le même temps une nouvelle application pour Xbox One qui, à l’inverse des autres, est destinée uniquement à la lecture de leurs vidéos dans des conditions optimales.

Cela signifie aussi que les gens sont maintenant d’autant plus demandeurs d’une application iPhone ou Android comme RTBF Vidéo, que je ne suis hélas pas autorisé à publier. Espérons que la RTBF se mette rapidement à l’écoute de son public et corrige le tir. En attendant, à défaut de pouvoir l’utiliser je vous propose en guise de conclusion une petite vidéo de démonstration de l’application que j’ai créée.

Christophe Beyls