Failbot

Dans l’optique d’avoir la main sur mes données, j’ai fait l’acquisition il y a quelques années d’un petit NAS Synology (DS 213 air pour être précis). Pas une bête de course, mais ça fait bien l’affaire. Un des trucs qui fonctionnaient bien, c’est Filebot, lancé dans un cron. Mais depuis les dernières mises à jour plusieurs problèmes :

  1. Filebot Node demande maintenant NodeJS v4, sauf que Synology ne fourni pas la v4 pour mon DS 213 air, jugé trop vieux… Adieu Filebot Node (pas grave du tout).
  2. Filebot, que j’installais et mettais à jour grâce au package officiel, est maintenant dépendant d’un nouveau package Java « non-officiel ». Avant, il fallait installer Java à la main (chiant) ou utiliser ce package (qui demande de télécharger le fichier manuellement chez Oracle, donc chiant aussi, mais moins). L’avantage du nouveau truc « Unofficial Java Installer », c’est qu’il contient tous les fichiers, on n’a rien à télécharger nous-même. Le désavantage, c’est que ça ne marche pas chez moi. :D Ça n’installe rien, et comme Filebot le demande, bah plus rien ne fonctionne.

Après avoir tout essayé, voici ma solution. Je poste ça ici pour m’en souvenir, et puis ça pourrait aider quelqu’un, on sait jamais. :D

  • J’ai tout viré
  • Repris mon installation précédente de Java (chiant, mais y a pire, et au moins c’est clean)
  • Téléchargé la version portable de Filebot
  • Copié les fichiers sur le NAS
  • Créé un lien symbolique du shellscript vers /var/bin/ (« sudo ln -s TONCHEMIN/filebot.sh /var/bin/filebot » espèce de boulet)
  • Créé un fichier de log avec les bons droits (perso je colle ça dans /var/log/filebot.log)
  • Lancé « filebot -version » WOUHOU ça marche
  • Lancé « filebot -script fn:configure » pour la récup automatique de sous-titres
  • Recollé mon script dans le Task Scheduler – ah non pas besoin il avait pas bougé !

VOILÀ.

Non, pas voilà. J’avais ensuite ces belles erreurs :

Java heap space
java.lang.OutOfMemoryError: Java heap space
at org.tukaani.xz.lz.LZDecoder.<init>(Unknown Source)
at org.tukaani.xz.LZMA2InputStream.<init>(Unknown Source)
at org.tukaani.xz.LZMA2InputStream.<init>(Unknown Source)
at org.tukaani.xz.LZMA2Decoder.getInputStream(Unknown Source)
at org.tukaani.xz.BlockInputStream.<init>(Unknown Source)
at org.tukaani.xz.SingleXZInputStream.read(Unknown Source)
at org.tukaani.xz.XZInputStream.read(Unknown Source)
at net.filebot.media.ReleaseInfo.lambda$resource$18(ReleaseInfo.java:494)
at net.filebot.media.ReleaseInfo$$Lambda$25/23050165.get(Unknown Source)
at net.filebot.MemoizedResource.get(Resource.java:36)
at net.filebot.media.ReleaseInfo.getExcludePattern(ReleaseInfo.java:359)
at net.filebot.media.ReleaseInfo.getClutterFileFilter(ReleaseInfo.java:408)
at net.filebot.media.MediaDetection.getClutterFileFilter(MediaDetection.java:86)
at net.filebot.cli.CmdlineOperations.getSubtitles(CmdlineOperations.java:684)
at net.filebot.cli.CmdlineOperations.getMissingSubtitles(CmdlineOperations.java:799)
at net.filebot.cli.ScriptShellBaseClass.getMissingSubtitles(ScriptShellBaseClass.java:366)

Problème de mémoire. Pour en allouer plus, il suffit d’éditer le fichier filebot.sh, et d’ajouter « -Xmx1024m » à la dernière ligne. Elle commence par « java -Dunixfs=false… », insérez le truc comme ça : « java -Xmx1024m -Dunixfs=false… ».

VOILÀ.

Jusqu’au prochain problème.

Épilogue : en parallèle j’ai cherché de l’aide auprès des responsables de ce changement. D’abord, il ne savent pas pourquoi le package ne s’installe pas (et n’ont pas trop envie de chercher)… Mais même s’il s’installait, ils m’ont fait savoir que ça ne pourrait pas fonctionner, car le package Java n’est pas compatible avec mon NAS. Oui oui vous avez bien compris : ils ont rendu obligatoire un truc qui ne fonctionne pas partout. Et ça n’avait pas l’air de les déranger du tout. (: Après discussion avec eux, pour la prochaine version ils vont feinter le système pour lui faire croire que c’est obligatoire (pour faciliter la vie des noobs), mais ça fonctionnera sans. Donc en gros, je vais revenir au même fonctionnement qu’avant (= MAJ de Java un peu chiante mais le reste automatique). Enfin, si ça fonctionne comme prévu.