Rendez-vous sur Arrakis

C'est lorsque nous croyons savoir quelque chose qu'il faut justement réfléchir un peu plus profondément. F. Herbert

Regarder des vidéos pendant leur téléchargement torrent

Lorsqu'on est fan d'une série, on a parfois envie d'aller regarder les derniers épisodes sur le web. Mais quelle horreur, les sites de streaming que l'on peut y trouver son insupportables :

On peut alors se fier au protocole bittorrent pour télécharger ses vidéos puis les regarder tranquille. Encore faut-il trouver un site pas trop mauvais qui les recense... Là aussi, on trouve des publicités parfois.
De plus, il faut être patient et attendre que le téléchargement soit terminé... Ou alors, on peut être astucieux et télécharger en priorité les premiers et derniers morceaux du fichier vidéo. De cette façon, le lecteur vidéo fonctionne, et on peut regarder le film alors qu'il est en train d'être téléchargé.

C'est sur ce principe que fonctionne dontpanic dont j'ai déjà parlé ici, et certainement webtorrent. Mais ces outils m'agacent car ils ont un tas de dépendances, et il faut en plus compter sur les moteurs de recherche de torrents...

J'ai donc eu envie de reprendre les morceaux de code qui m'intéressaient dans dontpanic pour créer un outil minimaliste me permettant de regarder mes torrents "en streaming", SANS PUB. En plus, je ne parvenais plus à compiler python-libtorrent et trouvait inutile les dépendances à sqlite. Bref, l'outil en question s'appelle torstream.

Installation
Récupérez l'archive ici.
Décompressez-là, puis lancez torstream :

wget http://git.yeuxdelibad.net/torstream.tgz
 tar xvzf torstream.tgz
 cd torstream
 python3 torstream.py

Pour l'utiliser, vous aurez besoin des dépendances suivantes : python3-beautifulsoup4, aria2 .

Utilisation
Lorsque vous lancez torstream, il vous demande ce que vous voulez regarder. Indiquez votre recherche, il se charge de chercher sur différents moteurs :

$ python3 torstream.py
 What do you want to watch ? 
 > vikings vostfr
 ---
 ### Search results with alphareign
 1 - Vikings S04E19 FASTSUB VOSTFR HDTV XviD-T9
     size: 366.76 MB  seeds: 482  leeches: 6
 2 - Vikings.S04E17.FASTSUB.VOSTFR.HDTV.XviD-T9
     size: 367.25 MB  seeds: 468  leeches: 7
 3 - Vikings.S04E18.FASTSUB.VOSTFR.HDTV.XviD-T9
     size: 367.28 MB  seeds: 381  leeches: 13
 4 - Vikings.S04E15.VOSTFR.HDTV.Xvid-EXTREME
     size: 353.03 MB  seeds: 353  leeches: 10
 5 - Vikings.S04E16.FASTSUB.VOSTFR.HDTV.Xvid-EXTREME
     size: 321.49 MB  seeds: 285  leeches: 11
 6 - Vikings.S04E13.FASTSUB.VOSTFR.HDTV.Xvid-EXTREME
     size: 374.57 MB  seeds: 272  leeches: 8
 7 - Vikings.S04E12.FASTSUB.VOSTFR.HDTV.XViD-EXTREME
     size: 371.83 MB  seeds: 243  leeches: 4
 8 - Vikings.S04E14.VOSTFR.HDTV.XViD-EXTREME.www.torrent9.biz.avi
     size: 0.00 B  seeds: 238  leeches: 4
 9 - [www.Cpasbien.me] Vikings.S01E01.FASTSUB.VOSTFR.HDTV.XviD-MiND
     size: 365.18 MB  seeds: 182  leeches: 6
 10 - Vikings.S01E02.VOSTFR.Gillop.avi
     size: 0.00 B  seeds: 4  leeches: 1
 11 - [nextorrent.net] Vikings S04 XviD VOSTFR
     size: 7.50 GB  seeds: 38  leeches: 36
 12 - Vikings.S01E01.VOSTFR.Gillop.avi
     size: 0.00 B  seeds: 2  leeches: 0
 What is your choice : 
 (Number, Enter for more results, ctrl-c to cancel) 

Une fois que vous avez le fichier que vous voulez, entrez son numéro puis validez avec Entrée.
Le téléchargement commence alors avec aria2.


 Let's watch Vikings.S04E18.FASTSUB.VOSTFR.HDTV.XviD-T9
 Press Enter to play the video when you're ready
 (Enter to play)  02/14 15:23:01 [NOTICE] Downloading 1 item(s)
 
 (Enter to play)  02/14 15:23:01 [NOTICE] DHT IPv4 : En écoute sur le port UDP 6948
 
 (Enter to play)  02/14 15:23:01 [NOTICE] IPv4 BitTorrent: listening on TCP port 6935

Lorsque la progression du téléchargement vous semble suffisante (quelques %), appuyez de nouveau sur entrée pour lancer la lecture.

Configuration

Vous pouvez choisir que lecteur vidéo sera utilisé en modifiant le fichier ~/.torstream. La configuration par défaut est :

[DEFAULT]
 videoplayer = mpv


Moteurs supportés

Les moteurs de recherche suivants sont actuellements supportés. Toutes suggestions sont les bienvenues :

.
Amusez-vous bien :)

le 14/02/2017 à 16:44:15, Péhä a dit :

Tu es mon héros

In Thuban we trust

le 14/02/2017 à 17:00:29, arpinux a dit :

coucou :)

testé et approuvé ;)
juste : pour Debian, c'est 'python3-bs4' qu'il faut :)
et aussi : comment modifier le dossier de téléchargement par défaut ? possible de le coller en argument ?

merci pour le codage/partage :P

le 14/02/2017 à 17:05:14, arpinux a dit :

@arpinux : arf ... il veut pas play en cours @home :/ la lecture depuis mpv fonctionne nickel, mais pas depuis la fenêtre principale torstream. il me dit "Let's play!" mais kdalle le coquin :P
et pas d'erreur en sortie... allez ... encore un peu de taf pour ces vacances ;)

le 14/02/2017 à 17:11:17, thuban a dit :

@Péhä : :)

@arpinux : Oui, je n'ai pas précisé exactement le nom du paquet, pensant que ça allait de soi mais merci, heureusement que tu précises car ce n'est pas évident en fait :)

Pour changer le dossier de téléchargement par défaut, ce n'est pas encore implémenté ^^

Et zut pour le bug, mais ce n'est pas très surprenant vu que c'est très jeune comme bouzin. Pour déboguer, j'aurais besoin de savoir ce qu'il a téléchargé comme fichiers. C'est la partie embêtante car certains torrents n'ont que le fichier vidéo, et d'autres gardent le fichier qui nous intéresse dans un dossier voire des sous-dossiers.
Donc le lien magnet ou un ls -l de ton répertoire courant et hop ;)

le 14/02/2017 à 17:19:30, thuban a dit :

@arpinux : J'ai ajouté l'option pour aria qui permet de télécharger dans un autre dossier que le dossier courant. Donc tout va dans le dossier temporaire /tmp, mais torstream te dira exactement où en commençant le téléchargement ;)

le 14/02/2017 à 17:41:25, thuban a dit :

@thuban : nouvelle option possible dans le fichier de configuration : "downloaddir" afin de préciser où vont les downloads.
Par exemple :

$ cat .torstream
 [DEFAULT]
 videoplayer = mpv
 downloaddir = /home/coco/Telechargements
 

le 16/02/2017 à 06:39:44, PengouinPdt a dit :

@thuban: grand fou, va :p

On va tester, ça ... avec ma station oBSD ;)

le 16/02/2017 à 06:42:20, PengouinPdt a dit :

@thuban: Mets donc le format recherché aussi dans ton fileconfig : 'vostfr' ... ça évitera de le répéter à chaque fois ... et si on veut un autre format momentanément, on aura plus qu'à le spécifier en option :p

le 16/02/2017 à 06:47:02, PengouinPdt a dit :

@thuban: autre point de détail : mets ton fichier de config dans le répertoire prévu pour cela, stp, à savoir ~/.config/ ;)

le 16/02/2017 à 06:57:56, PengouinPdt a dit :

@thuban: j'ai cette erreur :

(Enter to play) 02/16 07:56:34 [ERROR] Exception caught while loading DHT routing table from /home/xyz/.cache/aria2/dht.dat

(Enter to play) Exception: [DHTRoutingTableDeserializer.cc:83] errorCode=1 Failed to load DHT routing table from /home/xyz/.cache/aria2/dht.dat

Tu en dis quoi ?

le 16/02/2017 à 09:47:08, thuban a dit :

Merci pour les idées.

Ton erreur vient du fait qu'aria a un souci avec la table DHT. Je parie que ça vient de ton pf.conf ultra sécurisé ;)

le 16/02/2017 à 11:39:25, PengouinPdt a dit :

@thuban: de rien.
Concernant l'erreur d'aria, on peut discuter de mon pf, si tu veux, mais de manière plus personnelle ... mais je ne pense pas que cela vienne de là.

le 17/02/2017 à 08:35:52, thuban a dit :

@PengouinPdt : C'est pourtant bien un souci dht. Essaie en désactivant le pf pour voir :)

le 20/02/2017 à 19:14:37, arpinux a dit :

re :)

testé la dernière version et ça passe nickel maintenant :)

comment fait-on pour changer/choisir le moteur de recherche ? là il cherche avec un moteur différent à chaque fois et forcément, des fois, il n'y a pas de résultats, donc relance de torstream pour que le moteur change et avoir des résultats.

deuxième demande : un filtre pour (if video > mpv, if pdf > mupdf, if image > ... ) possible ? ou c'est pas dans l'esprit kiss de torstream ? :P

le 26/02/2017 à 08:58:36, thuban a dit :

@arpinux : Coucou :)
Pour changer le moteur de recherche, il n'y a pas d'options pour l'instant. Il faut appuyer sur entrée pour passer d'un moteur à un autre jusqu'à tomber sur ce qui t'intéresse.

La deuxième demande pourrait être pas mal, il faut que j'y réfléchisse.