Bonjour/bonsoir à tous,

Alors voilà, cela fait maintenant quelques mois que j'ai un serveur Jellyfin qui tourne sur un serveur à la maison et ça fonctionne plutôt bien. Le disque de 2To est suffisant pour stocker quelques films/séries, mais presque obligé de les supprimer après visionnage pour ne pas tomber trop vite en manque d'espace disque.

Éclair de génie : Je pense à mon espace de stockage Google Drive, ma fibre optique 1Gb/s, Rclone et je me dis qu'il y a sûrement un coup à jouer.

Spoiler Alert :  Ça roule du tonnerre.

Installation et configuration de Rclone

Pour l'installation de Rclone, tout se fait directement avec Aptitude :

sudo apt update
sudo apt install rclone

Passons maintenant à la configuration de Rclone pour monter notre Google Drive distant, il suffit globalement de suivre la documentation à cette adresse : https://rclone.org/drive/#making-your-own-client-id

rclone config

Current remotes:

Name                 Type
====                 ====
rclone               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
name> gdrive

Type of storage to configure.
Enter a string value. Press Enter for the default ("").

Choose a number from below, or type in your own value

12 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
13 / Google Drive
   \ "drive"

Storage> 13
** See help for drive backend at: https://rclone.org/drive/ **

Google Application Client Id
Setting your own is recommended.
See https://rclone.org/drive/#making-your-own-client-id for how to create your own.

If you leave this blank, it will use an internal key which is low performance.

Enter a string value. Press Enter for the default ("").
client_id> xxxxxxxxxxxx           

Google Application Client Secret
Setting your own is recommended.
Enter a string value. Press Enter for the default ("").

client_secret> xxxxxxxxx

Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default ("").

Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1

ID of the root folder
Leave blank normally.

Fill in to access "Computers" folders (see docs), or for rclone to use
a non root folder as its starting point.

Note that if this is blank, the first time rclone runs it will fill it
in with the ID of the root folder.

Enter a string value. Press Enter for the default ("").
root_folder_id> 
Service Account Credentials JSON file path 
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> 

Edit advanced config? (y/n)
y) Yes
n) No
y/n> n

Remote config

Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n

If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=xxxxxxxxstate=xxxxxxxxxx
Log in and authorize rclone for access
Enter verification code> 4/xxxxxxxxxxxx
Configuration de Rclone

Je passe volontairement les explications de la partie du dessus car il suffit de répondre aux instructions posées par le script d'installation.

Authentification Oauth
Authentification Oauth
Récupération du token Google Drive API
Récupération du token Google Drive API
Configure this as a team drive?
y) Yes
n) No
y/n> n

[gdrive]
client_id = xxxxx
client_secret = xxxxx
scope = drive
token = xxxxxx
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name                 Type
====                 ====
gdrive               drive
rclone               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

Si votre configuration est fonctionnelle, vous devriez pouvoir monter votre fichier distant grâce à cette commande (pensez à changer votre gid/uid/umask si besoin) :

rclone -v mount gdrive: test/ --allow-other --allow-non-empty --max-read-ahead 1024k --default-permissions --gid 1000 --uid 1000 --daemon --dir-cache-time=1m --umask 0002

Parfait ! Rclone est installé et opérationnel. On va essayer de créer quelques fichiers qui serviront à notre serveur multimédia, directement depuis l'interface Google Drive.

Et si je retourne sur mon serveur et que je vérifie le contenu de mon dossier test, normalement lié à Google Drive via Rclone :

[email protected]:~/test$ ls -l
total 0
drwxrwxr-x 1 holory holory 0 Jul 24 13:03 Anime
drwxrwxr-x 1 holory holory 0 Jul 24 13:03 Movies
drwxrwxr-x 1 holory holory 0 Aug 12 08:23 Music
drwxrwxr-x 1 holory holory 0 Jul 24 13:03 Shows

On se fait un petit test pour voir la vitesse d'upload/download vers Google Drive ? Upload en premier, download en deuxième.

rclone -v copy "La Haine.mkv" gdrive:

2021/09/25 11:28:43 INFO  : La Haine.mkv
Transferred:        4.275G / 4.275 GBytes, 100%, 31.241 MBytes/s, ETA 0s
Errors:                 0
Checks:                 0 / 0, -
Transferred:            1 / 1, 100%
Elapsed time:     2m20.1s
rclone -v copy gdrive:"La Haine.mkv" /home/holory/

2021/09/25 11:40:31 INFO  : La Haine.mkv
Transferred:        4.275G / 4.275 GBytes, 100%, 90.004 MBytes/s, ETA 0s
Errors:                 0
Checks:                 0 / 0, -
Transferred:            1 / 1, 100%
Elapsed time:       48.6s

Pour un fichier de 4Gb, la moyenne d'upload est donc de 35mb/s et pour le download : 90mb/s ce qui est plutôt bien. En optimisant le fichier config de Rclone, certains utilisateurs réussissent à monter jusqu'à 70mb/s mais ce ne sera pas nécessaire pour ce test.

En lancant mon film dans un des pires scénarios, navigateur web (donc transcodage obligatoire) en 1080p, le film a mis environ 4-5 secondes avant de démarrer.

Aucun problème de buffering par la suite, même en avançant de quelques minutes parfois dans le film

Conclusion

Les résultats sont très concluants et après quelques semaines de tests j'ai finalement basculé toute ma librairie vers Google Drive. Aucun problème de lenteur à déclarer pour l'instant que ce soit en transcodage ou lecture native.


Il est rare que nous soyons plus que deux personnes à regarder en même temps du contenu, alors Google Drive trouvera peut-être ses limites au délà d'un certain nombre d'utilisateurs en simultané.

Sinon je trouve que c'est une très bonne alternative à un disque dur pour qui trouve un moyen d'accès illimité à Google Drive pour trois fois rien. 😉