J’ai testé Plex Cloud, ou l’accès à ses médias depuis n’importe quel appareil

Cela fait environ 3 ans que j’utilise Plex au quotidien. Plex est un serveur de médias comme Kodi (ex-XBMC). Il analyse les médias audio, vidéo et même image en les triant et en permettant une diffusion via internet ou le réseau local sur n’importe quel appareil équipé d’un navigateur web ou de l’application adéquate.

Si au départ, j’avais installé Plex sur une machine virtuelle avec 1 To de stockage, je suis arrivé au bout d’un moment plutôt à court d’espace. Je suis passé l’année dernière sur une solution de stockage sur OneDrive : étant abonné à Office 365, je possède 1 To en ligne sur les serveurs de Microsoft pour y stocker ce que je souhaite. Je me servais donc de l’espace pour y loger mes films et séries en sauvegarde, rapatriant ce que je regardais en temps voulu sur le serveur. Puis est arrivé Amazon Cloud Drive avec son stockage illimité à 70 euros à l’année. A l’aide d’outils comme acd_cli puis rClone (voir les deux billets précédents, ici et ), mon serveur Plex installé sur un système GNU/Linux lisait les médias stockés directement en ligne et non plus en local sur la même machine, ce qui m’enlevait l’épine du pied qui est le stockage local. Cependant, ces outils ont fini par être interdits par Amazon pour des raisons diverses, et j’ai donc dû trouver un workaround afin de pouvoir continuer de profiter de mon contenu multimédia en ligne sans avoir à stocker ces éléments sur la machine virtuelle.

Depuis quelques temps, Plex propose pour les abonnés à Plex Pass (un sorte de compte premium offrant des fonctionnalités supplémentaires) la fonction Plex Cloud. Dans un fonctionnement normal, Plex est installé sur une machine que vous possédez : l’encodage de la vidéo si nécessaire pour l’appareil de lecture et l’analyse de la bibliothèque est réalisé à partir des ressources de cette machine ; ressources demandées qui peuvent être élevées en cas de multiples lectures (3 lectures à décoder en 1080p, par exemple). Et là, le petit PC que l’on a recyclé en Plex ou le Raspberry Pi peuvent être un peu courts en termes de puissance CPU nécessaire. L’intérêt de Plex Cloud est de s’affranchir de cette nécessité d’avoir une machine de traitement chez soi ou loué chez un prestataire comme OVH par exemple, car ce sont les serveurs de Plex qui s’occupent du décodage et du traitement de la bibliothèque, ainsi que de l’acheminement réseau. J’ai donc basculé sur Plex Cloud il y a quelques jours, en connexion avec Google Drive.

Les points forts de Plex Cloud :

  • Le fait de ne plus avoir à se préoccuper des ressources CPU ou réseau du serveur Plex. Dans mon cas, mon serveur Plex était installé sur une machine virtuelle équipé de 4 vCPU (AMD Opteron 4334) et 4 Go de mémoire vive – ce qui permettait de tenir sans faiblir une utilisation de 2 ou 3 films décodés en 1080p pour des tablettes ou des appareils mobiles transmettant sur une Chromecast, par exemple.
  • L’intégration avec OneDrive, GoogleDrive ou Dropbox, en natif. Il n’est plus nécessaire d’utiliser des outils pour monter ces accès sur le disque, que ça soit sous Windows ou GNU/Linux. Il suffit de se connecter avec son compte sur l’interface de Plex Cloud afin que l’association se fasse, et ensuite, l’ajout des répertoires pour les diverses bibliothèques est naturel.
  • La fiabilité du système. Cela fait quelques jours que je me sers de Plex Cloud (un peu plus d’une semaine), et je n’ai rencontré aucun dysfonctionnement. La mise à jour des bibliothèques est plutôt rapide, la lecture des médias ne pose pas de problèmes, les temps d’accès plutôt faibles, et le débit correct, sans saccade ni coupure pour mettre en tampon, même en 1080p. Il est évident que cela n’est pas aussi rapide qu’avec un accès local, mais malgré tout les avance et retour rapides ne posent pas de soucis majeurs.
  • La possibilité de partager les bibliothèques Plex Cloud comme les bibliothèques d’un serveur standard. Encore une fois, cette possibilité permet une transparence d’utilisation et de fonctionnement identique à celle d’un serveur Plex standard installé sur une machine propre.
Les points faibles de Plex Cloud :
  • Plex Cloud nécessite un Plex Pass. Il s’agit d’un compte premium, que l’on peut prendre soit au mois, à l’année, ou à vie. Bien qu’il apporte des fonctionnalités plutôt intéressantes dans le cadre d’une utilisation nomade, en utilisation simple il n’a pas nécessairement d’intérêt. La fonctionnalité n’est pas gratuite, même si cela est compréhensible, la solution revient plus chère sur le papier que l’installation d’un serveur Plex sur une machine à la maison.
  • 3 connexion maximales possibles. Plex Cloud est limité à trois diffusions de médias ; même si cela est suffisant dans l’absolu, il n’est pas possible de faire lire toute la famille par exemple un média différent sur Plex Cloud, alors que cela est possible par exemple sur un serveur Plex standard (si bien sûr, les ressources CPU et réseau sont suffisantes).
  • Dépendance à la plateforme Plex et aux fournisseurs associés. Plutôt évident : si les serveurs de Plex rencontrent des difficultés, ou le fournisseur de Cloud auquel vous êtes rattaché, la diffusion peut être problématique.
  • 3 fournisseurs supportés pour l’instant : Google Drive, Dropbox et OneDrive. Même si ils sont les plus connus du marché, il est dommage que d’autres acteurs comme Amazon Drive (qui était présent en bêta mais qui a été retiré) ou Hubic ne soient pas disponibles.
  • Certains formats de sous-titres non reconnus. Certaines vidéos peuvent ne pas être lues si des sous-titres externes (format .srt) sont sélectionnés. Je n’ai pas rencontré ce cas de manière systématique, mais cela est arrivé, alors que la diffusion ne pose pas de problème avec un serveur Plex classique.
Pour ma part, j’ai choisi Google Drive comme espace de stockage. Si j’utilise actuellement Plex Cloud pour mes médias, j’attends que le transfert depuis Amazon Drive sur lequel était stocké mon contenu soit terminé afin de monter sur ma machine virtuelle Plex un accès à Google Drive avec rClone afin de pouvoir bénéficier, si défaillance de mon serveur ou de Plex Cloud, d’une infrastructure secondaire. De plus, cela me permettra d’avoir l’assurance de ne jamais être à court de ressources qu’elles soient réseau ou processeur pour profiter de mon contenu.

    Utilisation de rClone avec Amazon Drive

    Mise à jour du 18 mai 2017 : à partir de ce jour, Amazon Cloud Drive a décidé de bannir rClone des applications autorisées à se connecter à l’API, ce qui signifie qu’il n’est plus possible à ce jour d’utiliser rClone pour se connecter et accéder aux fichiers stockés sur un compte Amazon Cloud Drive. J’ai rédigé un billet concernant le dysfonctionnement en date du 19 mai 2017 (cliquez pour y accéder).

    J’utilise deux serveurs Plex pour mes séries, films, musiques et autres contenus multimédias, afin que je puisse y accéder depuis tous mes appareils sans perdre la continuité de ceux-ci. Le stockage est déporté sur Amazon Cloud Drive et non en local, pour sa capacité « illimitée » (en réalité, elle semble être de 100 To, ce qui laisse tout de même une marge plus qu’énorme). Cependant, afin que Plex puisse voir les fichiers d’Amazon Cloud Drive (abrégé ACD par la suite), il faut une application sur le système – non pas pour synchroniser les fichiers auquel cas le stockage en ligne est inutile – mais pour simuler leur présence afin que Plex puisse les détecter et y accéder si la lecture est demandée.

    Jusqu’à hier, j’utilisais une application nommée acd_cli. Cependant, depuis hier soir, elle ne semble plus fonctionner, car il semblerait que le quota de requêtes fixé par Amazon a été dépassé. En effet, Amazon applique un quota de requêtes par heure sur l’API en fonction du nombre d’utilisateurs d’une application donnée. Il y a plusieurs workarounds proposés par le développeur d’acd_cli mais j’ai préféré sauter sur l’occasion pour abandonner cette solution temporairement (elle est toujours installée sur le système, mais je ne monte plus ACD avec acd_cli) et passer sur rClone, qui fait exactement la même chose, mais qui peut fonctionner avec bien plus de fournisseurs de stockage en ligne.

    Je vais partir du principe que vous possédez déjà un système GNU/Linux Debian prêt à l’utilisation et que vous avez obtenu une élévations de droits, avec su ou en précédant les instructions de sudo. J’ai procédé à l’installation sur un serveur équipé de 4 vCPU, 4 Go de mémoire vive et avec un disque dur de 60 Go.

    1. Prérequis

    Tout d’abord, mettre à jour le système, puis installer FUSE ainsi que screen – si vous ne connaissez pas screen, il s’agit d’un outil permettant de simuler un terminal pour une application – puisqu’il nous sera utile lorsqu’on aura monté ACD avec rClone. rClone étant compressé au format zip, unzip sera nécessaire.

    apt-get update && apt-get dist-upgrade
    apt-get install fuse screen unzip

    2. Téléchargement et installation de rClone

    Le lien de la version peut évoluer avec le temps, mais un autre lien existe pour référence dans un script par exemple, il est possible d’utiliser l’un des deux liens, au choix (à noter qu’il est également possible d’installer rClone via git) :

    wget https://downloads.rclone.org/rclone-v1.36-linux-amd64.zip

    ou

    wget https://downloads.rclone.org/rclone-current-linux-amd64.zip

    Une fois que le fichier est récupéré, on va le décompresser (bien sûr, adapter le nom du fichier à la version récupérée, ou à current si vous avez pris le deuxième lien) :

    unzip rclone-v1.36-linux-amd64.zip

    On va se placer dans le répertoire extrait, puis copier le contenu vers /usr/sbin/rclone afin de pouvoir commencer à configurer l’application et à l’exécuter :

    cd rclone-v1.36-linux-amd64
    cp rclone /usr/sbin

    L’installation est terminée, il faut désormais configurer l’application.

    3. Configuration de rClone

    On peut lancer l’assistant de configuration en saisissant :

    rclone config

    Si cela ne marche pas (ce qui m’est arrivé avec un autre utilisateur que root…), il faut simplement rajouter /usr/sbin devant rclone :

    /usr/sbin/rclone config

    L’assistant apparaît, et c’est là qu’on va déclarer notre compte ACD. On créé donc un nouveau « remote ». Plusieurs paramètres vont être à saisir, il faut être vigilant lors de cette partie sous peine d’avoir à reconfigurer le compte :

    • Le nom : dans cet exemple, je l’ai appelé amazondrive. Ce nom sera utilisé dans l’instruction permettant de monter ACD.
    • Le type de compte à monter : plusieurs choix sont disponibles, mais le « 1 » est Amazon Cloud Drive, il faut donc saisir 1.
    • Les Amazon Application Client ID et Client Secret sont utiles si vous êtes développeur Amazon et que vous utilisez votre propre application. Etant donné que rClone n’est pas votre propre application, les champs sont à laisser vides.
    • On refuse la configuration automatique : en effet, on a besoin d’une clé d’authentification qui permet de lier rClone à ACD : clé qu’on récupère lorsqu’on s’identifie sur ACD et qu’on autorise rClone à lire et écrire sur ACD, lors de l’étape suivante.
    L’étape qui consiste à récupérer la clé d’authentification peut être un peu plus chiante si vous n’avez pas d’environnement graphique sur le serveur sur lequel vous installez rClone.

    Si vous avez un environnement graphique avec un navigateur web : ouvrez un terminal avec le même utilisateur que vous avez utilisé jusqu’ici, puis saisissez : rclone authorize amazon cloud drive.
    Si vous n’avez pas d’environnement graphique : répétez la procédure d’installation de rClone sur un système Windows, GNU/Linux ou encore OS X, mais sans la configuration. Saisissez simplement rclone authorize amazon cloud drive.
    Dans les deux cas, une fenêtre de navigateur va s’ouvrir, avec un prompt d’identification. On va donc saisir l’identifiant et le mot de passe du compte ACD, et autoriser rClone à accéder à ACD. Une fois que la manipulation est faite, la fenêtre va afficher un « Success » et la clé sera affichée dans le terminal. Il est possible de la copier-coller temporairement dans un fichier texte, mais il faudra surtout la coller une fois que l’assistant de configuration le demande, c’est-à-dire, juste après avoir demandé de saisir « rclone authorize amazon cloud drive ». Il est très important de prendre toute la clé, c’est-à-dire accolades comprises.
    Il ne reste plus qu’à confirmer la clé, et la configuration est terminée. rClone peut se connecter à ACD sans problèmes, il ne reste plus qu’à monter ACD.

    4. Montage d’ACD

    Il est nécessaire d’avoir un répertoire vide dans lequel on va monter ACD. Dans cet exemple, on va lancer rCloud avec l’utilisateur amazon, on va donc monter ACD dans son répertoire personnel :
    rclone mount amazondrive: /home/amazon/
    Le problème, c’est que rClone occupe le terminal. Ce qui peut être gênant si il n’est pas possible de laisser le terminal SSH ouvert par exemple. C’est pourquoi on va utiliser screen qui va nous permettre de simuler un terminal pour rClone afin qu’on puisse quand même couper la connexion SSH sans pour autant tuer le processus rClone.
    On créé le nouveau terminal, que l’on va nommer rcloneacd :
    screen -S rcloneacd
    Une fois dans ce screen – lorsque l’on a validé la commande précédente – on peut donc saisir de nouveau la commande de montage. Attention, il n’est pas possible sans workaround de créer un screen si vous avez utilisé une élévation de droits ou un changement d’utilisateurs avec su. Il faut donc lancer le screen en tant qu’utilisateur simple et ensuite effectuer une élévation de droits si besoin, dans le screen. Lorsque rClone est lancé et le partage monté, il suffit de presser CTRL+A puis D pour quitter le screen sans le fermer.
    Il est possible d’y accéder de nouveau au terminal exécutant rClone en saisissant cette commande :
    screen -R rcloneacd

    Enfin, pour démonter ACD :

    fusermount -u /home/amazon

    Normalement, le répertoire /home/amazon/ contient tous les fichiers de votre ACD, mais virtuellement. Cela signifie que grâce à FUSE, votre système voit les fichiers comme si ils étaient présents, et une bonne majorité d’applications sont également bernées. En cas d’accès en lecture ou en écriture, rClone se charge de télécharger les données, et FUSE de les rendre exploitable comme si ils étaient disponibles sur un système de fichiers standard.