Scan­ner et impor­ter faci­le­ment ses livres sur Inven­taire.io

J’ai des livres. Plein. Peut-être trop. On s’en fout. Le truc, c’est qu’une belle collec­tion comme ça, c’est mieux quand elle est cata­lo­guée.

D’où mon inté­rêt pour inven­taire.io : c’est un plate-forme (libre !) sur laquelle on peut impor­ter ses livres, les marquer comme dispo­nibles au don ou au prêt, se connec­ter avec des gens, regar­der les inven­taires des uns et des autres, faire une demande de prêt…

C’est très simple d’em­ploi et si on four­nit l’ISBN d’un livre, la plate-forme va essayer de récu­pé­rer les données (auteur, couver­ture, synop­sis, etc) toute seule via wiki­data et d’autres sources de données. Très pratique donc. Le site propose même un scan­ner de code-barres ! Pile-poil avec un smart­phone, mais ça devrait même aussi fonc­tion­ner avec une webcam. On peut aussi utili­ser une appli­ca­tion de scan­ner de code-barres, on n’est pas obligé d’uti­li­ser celui du site.

Par contre, si scan­ner des codes-barres avec un télé­phone est pratique, véri­fier et vali­der les livres qui résultent du scan­nage sur le télé­pho­ne… c’est un peu bof. Surtout si comme moi vous scan­nez les livres par paquets de 50. L’idéal est donc de scan­ner avec son télé­phone et de vali­der sur l’or­di­na­teur…

KDECon­nect pour la liai­son télé­phone — ordi­na­teur

KDECon­nect est un outil très pratique pour contrô­ler son ordi­na­teur depuis son télé­phone : y envoyer des fichiers, gérer le lecteur multi­mé­dia… Et dans l’autre sens, on peut accé­der à l’es­pace disque de son télé­phone depuis son ordi­na­teur. Mais surtout, la killer feature, pour moi, c’est le partage du presse-papier : je copie un truc sur le télé­phone ou sur l’ordi et son contenu se retrouve dans le presse-papier de l’autre appa­reil.

Pour utili­ser KDECon­nect, il faut l’ap­pli­ca­tion KDECon­nect (dispo­nible sur F-Droid, je ne sais pas si elle est sur le play store) et sur l’or­di­na­teur, il faut instal­ler le paquet kdeconnect et lancer les appli­ca­tions (/usr/lib/x86_64-linux-gnu/libexec/kdeconnectd pour lancer la version ordi­na­teur depuis la ligne de commande pour une Debian). Il y a aussi une version pour Gnome : gscon­nect.

Ensuite, il faut que les deux appa­reils soient dans le même réseau. Après, il n’y a plus qu’à appa­reiller les appa­reils.

Barcode scan­ner sur le télé­phone

Instal­lez Barcode scan­ner (dispo­nible sur F-Droid) sur votre télé­phone et confi­gu­rez-le pour qu’il copie ce qu’il scanne dans le presse-papier.

On y est presque : avec ces deux outils, l’or­di­na­teur peut d’ores et déjà rece­voir dans son presse-papier les codes-barres que vous allez scan­ner.

Surveiller le presse-papier avec Clip­no­tify

J’ai trouvé un projet, Clip­no­tify qui permet de surveiller le contenu du presse-papier. Télé­char­gez la dernière version sur https://github.com/cdown/clip­no­tify/releases.

Enre­gis­trer les codes-barres dans un fichier

Vous aurez aussi besoin de xsel pour accé­der au contenu du presse-papier (Clip­no­tify ne donne pas le contenu de celui-ci, il se contente de regar­der s’il change), ainsi que de tee.

Ensuite vous n’au­rez plus qu’à lancer cette petite commande :

while clipnotify
do
    ISBN=$(xsel)
    echo $ISBN | tee -a /tmp/clip.log
done

Faites Ctrl+C pour arrê­ter.

NB: Je ne pipe pas direc­te­ment xsel vers tee car xsel ne fait pas de retour à la ligne. Notez aussi que vous pouvez vous passer de tee en faisant echo $ISBN >> /tmp/clip.log, mais j’aime bien voir direc­te­ment sur le termi­nal ce qui écrit dans /tmp/clip.log.

Pour une raison que j’ignore, chaque contenu de press-papier se retrouve écrit plusieurs fois dans le fichier /tmp/clip.log. Corri­ger le fichier n’est pas diffi­cile :

uniq /tmp/clip.log  | grep "^97"

Ou (au cas où on scanne le même livre deux fois par inad­ver­tance) :

sort -u /tmp/clip.log  | grep "^97"

Le grep est là pour se déba­ras­ser des codes-barres mal scan­nés : un ISBN comment toujours par 978 ou 979. Pensez à regar­der le numéro que vous indique avoir scanné Barcode scan­ner !

Voilà. Vous avez main­te­nant une belle liste d’ISBN qu’il nous suffit désor­mais de coller sur https://inven­taire.io/add/import 🙂

Et si vous voulez voir ce que j’ai dans ma biblio­thèque, vous pouvez aller voir sur https://inven­taire.io/inven­tory/framasky (mais je suis encore en train d’im­por­ter mes bouquins, j’ai pas fini de tout scan­ner).

EDIT (12/10/2019) : ajout du grep pour enle­ver les codes-barres mal scan­nés.

Crédit : Photo par Eli Fran­cis sur Unsplash

Instal­ler l’ex­ten­sion Netflix sur Kodi

Un vidéo projecteur

Bon… j’aime pas Netflix parce que ça utilise des DRM et que ça pue du cul mais la mère de mon gamin a pris un abon­ne­ment (à deux écrans, pour elle et lui) et comme j’ai pas envie qu’il s’use les yeux à regar­der Netflix sur son télé­phone quand il est chez moi… j’ai installé l’ex­ten­sion Netflix sur le Kodi du rasp­berry pi du salon, qui est relié à un vidéo-projec­teur.

J’ai utilisé ce tuto­riel : https://kwar­tix.word­press.com/2019/05/13/netflix-rasp­berry-et-kodi/. Bien fait, mais j’ai rencon­tré des diffi­cul­tés, donc je refais un article avec tout ce que j’au­rais voulu savoir.

Pré-requis

  1. avoir Kodi en version 18 mini­mum. Ça ne m’a pas posé de problème puisque c’était déjà le cas pour moi, mais c’est bon à savoir ;
  2. avoir au moins 2Gio d’es­pace libre : pour choper le bazar de DRM qui va bien, l’ex­ten­sion va télé­char­ger une image Chrome OS, et c’est volu­mi­neux.

Ce qui va nickel dans le tuto

On installe des dépen­dances :

sudo apt install python-pip python-crypto build-essential \
  python-all-dev python-setuptools python-wheel \
  python-crypto-dbg python-crypto-doc python-pip-whl
pip install pycryptodomex
sudo ln -s /usr/lib/python2.7/dist-packages/Crypto /usr/lib/python2.7/dist-packages/Cryptodome

NB : j’ai fait le pip en root, vu que quand j’ai plusieurs commandes sudo à taper, je m’em­bête pas et je me mets en root. Je ne sais pas si ça peut faire une diffé­rence quel­conque.

Une petite typo

Ça, je l’ai dit en commen­taire de l’ar­ticle : une URL n’est pas bonne. Ça arrive.

wget https://raw.githubusercontent.com/sonpero/Netflix/master/repository.castagnait-1.0.0.zip

L’URL de l’ar­ticle pointe sur la page github du fichier et non sur le fichier lui-même.

Après cela, on installe ce fichier dans Kodi comme une exten­sion via l’ins­tal­la­tion par fichier zip. Ce n’est cepen­dant pas une exten­sion : c’est un dépôt d’ex­ten­sion qu’on installe là.

Les problèmes commencent

Il est tout à fait possible que l’au­teur de l’ar­ticle origi­nel n’ait pas rencon­tré les soucis suivants, mais moi si, ce qui justi­fie cet article.

  1. au moment d’ins­tal­ler l’ex­ten­sion Netflix via le nouveau dépôt, j’ai eu droit, comme sous Android, à un message indiquant que l’ins­tal­la­tion d’ex­ten­sion via des sources incon­nues n’était pas auto­risé. Un petit tour dans les para­mètres (le message a la bonne idée d’in­clure un bouton pour s’y rendre direc­te­ment) et c’est réglé ;
  2. une fois l’ex­ten­sion instal­lée et les iden­ti­fiants rentrés, impos­sible de lire une vidéo : il me manquait l’ex­ten­sion InputS­tream Adap­tive, et impos­sible de la trou­ver dans les dépôts. En fait, ayant installé Kodi à partir des dépôts Deb Multi­me­dia, il me fallait l’ins­tal­ler depuis les paquets Debian (et j’en ai installé un autre avec, il me semble qu’ils sont rela­ti­ve­ment liés) :

    apt install kodi-inputstream-adaptive kodi-inputstream-rtmp

    Puis un petit redé­mar­rage de Kodi pour qu’il voit ces nouvelles exten­sions ;

  3. Après, au lance­ment (enfin !) d’une première vidéo, l’ex­ten­sion m’a proposé l’ins­tal­la­tion de wide­vine… et c’est là que j’ai été averti qu’il fallait 2Gio d’es­pace libre. J’ai du faire un peu de place ;
  4. La place faite, Kodi se plai­gnait du fait qu’il fallait fdisk ou parted sur la machine pour pouvoir extraire wide­vine. Deux outils pour­tant bien instal­lés. J’ai lancé Kodi avec l’uti­li­sa­teur root après avoir fait ln -s /home/kodi/.kodi /root/.kodi (oui, j’ai un utili­sa­teur dédié) et j’ai enfin pu termi­ner l’ins­tal­la­tion de wide­vine ;
  5. Les vidéos ne se lançaient pas pour autant, pour des problèmes de permis­sions d’après les messages d’er­reur. L’ins­tal­la­tion de wide­vine via l’uti­li­sa­teur root mais son utili­sa­tion par l’uti­li­sa­teur kodi avait laissé des traces, en l’oc­cu­rence un lien symbo­lique dont la cible était dans /root/. Pour y remé­dier :
    cd /home/kodi/.kodi/cdm
    rm libwidevinecdm.so;
    ln -s /home/kodi/.kodi/userdata/addon_data/script.module.inputstreamhelper/cdm/libwidevinecdm.so

Et voilà, après ça, ça fonc­tionne 🙂

Bonus

Je suis chez un FAI asso­cia­tif (LDN, pour ne pas le nommer) via un VPN. Ce qui veut dire que :

  1. j’ai un pres­ta­taire qui me permet de monter le VPN, en l’oc­cu­rence Orange ;
  2. si je pompe trop de bande passante, c’est mon FAI qui est péna­lisé.

Enfin mon Turris Omnia, qui monte le VPN et redis­tri­bue Inter­net chez moi, n’a pas un proces­seur de folie : le chif­fre­ment/déchif­fre­ment du trafic VPN ne me permet pas de profi­ter de la pleine puis­sance de la connexion fibre Orange (ça reste plus que correct quand même hein !).

Du coup, pour éviter de péna­li­ser mon FAI et de bour­ri­ner mon Turris, je route direc­te­ment le trafic Netflix via la box Orange avec un simple :

ip route add 45.57.49.131 via 192.168.2.1 dev eth1

La première IP est celle d’un serveur Netflix, la deuxième est celle de la box Orange et eth1 est l’in­ter­face du Turris connec­tée à la box.

Bien sûr, il y a plus d’une adresse IP à router ainsi. J’ai fait une compi­la­tion de ce que j’ai trouvé sur un snip­pet Frama­git : https://frama­git.org/snip­pets/3739.

EDIT : On a porté à ma connais­sance la commande bgpq3 -J AS-NFLX, qui permet de connaître les adresses IPv4 de l’AS de Netflix. Je ne sais pas s’il faut toutes les dévier vers la box orange (j’ai eu des soucis sur certaines adresses que j’avais détec­tées) mais en tout cas ça va simpli­fier le boulot ! Pour les IPv6, il faut utili­ser bgpq3 -6 -J AS-NFLX.

Crédit : Photo par Alex Litvin sur Unsplash