2

👨‍💻 PHP et les trackers à ratio (2020)

Introduction aux trackers à ratio

Sur les trackers publics, l’utilisateur est anonyme. Il downloade sans restriction et supprime du partage puisque ça n’a aucune utilité pour lui.
Sur les trackers à ratio, l’utilisateur est authentifié. Il downloade s’il le peut (ratio >1) et laisse à disposition les fichiers puisque tant que son ratio (Upload/Download) reste inférieur à 1, il ne peut plus télécharger.

Les trackers à ratio sont donc beaucoup plus restrictifs. Mais où est l’intérêt alors ?

  • Le catalogue est nettement plus fourni.
  • Les fichiers ont davantage de sources (de seeders) et vous aurez toujours ce que vous demandez sous huitaine (en minutes).

Sur les trackers à ratio, il est par conséquent essentiel de savoir quels fichiers vous rapportent du ratio, et lesquels sont négligeables et prennent de la place pour rien sur vos disques. Le client Torrent (uTorrrent ou BitTorrent) n’apporte pas nativement cette information. On va donc faire autrement pour l’obtenir. Avec PHP.

La méthode (avec PHP)

Le client Torrent a la possibilité d’émettre sur localhost la liste des fichiers qui le composent et toutes leurs informations (volume, quota, status…). uTorrent fait ça et ça s’appelle le plugin WebUI dans les options avancées. BitTorrent le fait aussi.

PHP va récupérer ce contenu de localhost et le mettre en page dans un nouveau tableau qui sera consultable en ligne, en temps réel et sans aucune base de données.

Qu’est ce que ce tableau généré en PHP apporte de plus à la liste de fichiers que le client Torrent n’affiche déjà ? Avec PHP on va pouvoir calculer pour chaque fichiers son efficacité en terme de ratio, et lui attribuer un score. En fonction de ce score (qui n’est pas exprimé en natif dans le client Torrent), on pourra gérer finement les Seeds et supprimer ceux qui ne rapportent pas assez (score trop bas).

Ce score est calculé en fonction du ratio (volume uploadé divisé par volume du fichier) ET du temps. Si bien qu’un fichier avec 50% de ratio en 2 semaines sera mieux noté qu’un fichier avec 200% de ratio en 6 mois. Le petit plus réside là 🙂 Egalement, un fichier qui n’uploade pas verra son score descendre d’heure en heure.

La formule exacte du score d’un Seed

J’ai mis un temps fou à trouver cette formule qui fonctionne pas trop mal. Elle génère, par fichier, des scores entre 0 et 1000 selon les ratios et les durées possibles.
Des scores supérieurs à 1000 (jusqu’à 80.000) sont possibles sur de courtes durées ne dépassant pas 30 minutes (un gros upload sur une très courte durée).

NB : éditeur d’équation Latex

Démonstration

Etape 1 : le client Torrent et ses informations
Etape 2 : le contenu de localhost généré par le plugin WebUI du client Torrent
Etape 3 : le tableau généré en PHP

Le tableau généré par PHP en détail

Le moteur de recherche et le système d’export
Le multipage
Les seeds
Les ratios en fonction du temps

Le système détecte les fichiers en Upload, ceux en Download, les fichiers superstars (en bleu) et ceux qu’il faut supprimer (en rouge) :

Pour ne pas être flagué en orange, le seed doit avoir un score > 25.

Pour ne pas être flagué en rouge “A SUPPRIMER”, le seed doit passer 4 vérifications dans le temps :

  • Ratio > 15% en 1 mois
  • Ratio > 45% en 3 mois
  • Ratio > 90% en 6 mois
  • Ratio > 180% en 12 mois

Malheureusement, le petit plus périglionique s’arrête ici 🙁 PHP détecte bien les seeds qui ne sont pas intéressants pour le ratio mais n’est pas capable de supprimer lui-même un seed parce que, pour le coup, il ne s’agit pas simplement de supprimer le fichier. Il faut le retirer à la main dans le client Torrent (verrou sur le fichier en cours d’utilisation dans le client Torrent).

La source de ce calculateur de score de Seeds fait moins de 200 lignes de PHP. Je partage le code à la demande. Il faut un client Torrent (idéalement uTorrent) et un système A(M)P pour PHP (pas besoin de MySQL).

Pour un affichage clair, le script détag tous les fichiers du client Torrent, si bien que le fichier Le.Quatrieme.Pouvoir.2013.MULTi.1080p.BluRay.DTS-HD.MA.x264-SENSE.mkv sera affiché comme ça :

Interprétations du tableau

Un mauvais seed de 3 mois en train de sauver sa vie (en upload)
Les 5 saisons d’Inspecteur Lewis en upload en même temps
Les seeds avec un score bas
Les seeds SUPERSTAR en bleu avec un score > 100
Vous pouvez évaluer cet article en un clic. Garanti sans gluten. Merci !
(Evaluations : 1 / Moyenne : 5)

Krak

Machine prolifique à pisser du code de merde jamais optimisé depuis 1986, Maître des traditions et Grand malade à WoW, chasseur de gardiens à Ingress de 2014 à 2019, sapiosexuel nerd, amateur de piments 🌶️ au delà de 300.000 Scoville grâce à Stéphane Pécaut et de pizzas maison 🍕 grâce à Marloin, j'apprécie particulièrement les 3C (les chats 😼, le code et les choux de Bruxelles 🥦) & la philosophie du CCC + la domotique open-source et les IA locales cloudless.

2 commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *