Direct Download et Upload avec plowshare

Plowshare kesako ?

Plowshare est une suite de script permettant la gestion des sites de partage de fichier, comme 1fichier ou uploaded.net. Cette suite permet d'uploader, de télécharger, de supprimer, de lister, de vérifier des fichiers sur ces hébergeurs. Il permets même sur certains site, d'utiliser son propre compte.

ATTENTION : Ceci est un outil 100% en ligne de commande.

Pré-requis

Si vous avez suivit le tutoriel de rutorrent ou utilisé le script de ex_rat, tous est bon.
Sinon il faudra installer git et curl :

$ apt-get install git curl -y

Installation

Rien de bien compliquer pour l'installer.
On commence par récupérer les sources :

$ cd /tmp
$ git clone https://github.com/mcrapet/plowshare.git
$ cd plowshare
$ make install
$ cd ..
$ rm -rf plowshare

Et voila c'est installer, mais pas totalement fonctionnel.
Il faut d'abord installer les modules :

$ plowmod --install

Ceci est à faire avec chaque utilisateur qui ce servira de plowshare

Les outils

Comme je le disais plowshare est une suite de script, donc il fourni plusieurs script qui ont une utilité chacun. Nous en avons déjà utilisé un, qui est plowmod.
Voici une courte explication de ces scripts, qui sont plutôt clair par leur nom :
plowdown : Permets de télécharger des fichiers
plowup : Permets d'uploader des fichiers
plowlist : Sur beaucoup de site, on peut créé des folders de fichier, ceci permets donc le lister les fichiers dans un folder.
plowprobe : Permets d'obtenir les informations sur les fichiers, comme la taille, mais aussi savoir si le lien est encore valide.
plowdel : Permets de supprimer un fichier uploader
plowmod : Permets la gestion des modules, tous à l'heure couplé au paramètre --install, permettait l'installation des modules, nous pouvons bien sur les mettres à jour, avec --update.

Nous allons donc voir comment utilisé les scripts plowup et plowdown, et ce sera déjà pas mal.
Je ne vais pas expliquer comment l'utiliser avec tous les hébergeurs, il en prends trop en compte, étant donner que j'ai eu une demande pour 1fichier récemment je prendrais celui ci en exemple, plus uploaded_net, parce que ...

Les hébergeurs

Beaucoup d'hébergeurs sont supportés, je ne vais pas affiché la liste complète ici, mais vous pouvez l'obtenir avec l'options --modules :

$ plowup --modules
$ plowdown --modules
$ plowlist --modules
$ plowprobe --modules
$ plowdel --modules

Par contre, certains modules ne sont pas compatibles avec toutes ces options, à vous de vérifier.

plowup

Pour moi l'outil le plus utile, je télécharge les vidéos 4K de du chat de ma sœur principalement en torrent, mais le repartage sur ces sites (son chat est une star, y'a de la demande).

La syntaxe

La syntax est plutôt simple :

$ plowup [argument] [hébergeur] [fichier]

Les arguments

En fonction des hébergeurs, les arguments peuvent être différents. Pour les obtenir il suffit de faire :

$ plowup --longhelp

Voici une partie du résultat de cette commande, pour 1fichier :

[...]
Options for module <1fichier>:
  -a, --auth=USER:PASSWORD         User account
  -p, --link-password=PASSWORD     Protect a link with a password
  -d, --message=MESSAGE            Set file message (is send with notification email)
      --domain=ID                  You can set domain ID to upload (ID can be found at http://www.1fichier.com/en/api/web.html)
      --email-to=EMAIL             <To> field for notification email
      --restrictip                 Restrict login session to my IP address
[...]

J'ai pas trouvé mieux pour obtenir ces arguments, il va falloir fouiné.
Mais en règle général nous utiliserons principalement :

-a user:password     Pour l'authentification
-b user:password     Pour l'authentification si compatible seulement avec les comptes gratuit

Il y a d'autres options sur certains hébergeurs, comme pouvoir ajouter une description, un mot de passe pour le téléchargement, ou le répertoire d'upload.

exemples

Envoyer un fichier sur 1fichier sans authentification :

$ plowup 1fichier test.txt
Starting upload (1fichier): test.txt
Destination file: test.txt
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6434    0  4587  100  1847   4664   1878 --:--:-- --:--:-- --:--:--  5007
#DEL https://1fichier.com/remove/4walgw1m6s/G6ttD
https://1fichier.com/?4walgw1m6s

Comme on peut le voir, le résultat est plutôt clair, nous avons un lien de suppression (pas forcément sur tous les hébergeurs), et en dessous le lien de téléchargement, souvent celui que l'on partage.

Envoyer un fichier sur uploaded_net avec authentification :

$ plowup -a username:password uploaded_net test.txt
Starting upload (uploaded_net): test.txt
Destination file: test.txt
Starting login process: XXXXXXXX/**********
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1707    0    11  100  1696     11   1786 --:--:-- --:--:-- --:--:--  9860
#ADM 90tn73xm
http://ul.to/skuh3t8h

Comme pour sans authentification, nous avons le lien pour le téléchargement, par contre je dois avouer que ce qu'il y a après le ADM, j'en ai aucune idée.

Envoyer plusieurs fichiers sur 1fichier :

xataz@seedbox:/home/xataz/# plowup 1fichier /chemin/des/fichier/*
Destination file: rtorrent.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 11622    0  4587  100  7035   5518   8463 --:--:-- --:--:-- --:--:--  8610
#DEL https://1fichier.com/remove/cryud4e79p/9rCT6
https://1fichier.com/?cryud4e79p
Starting upload (1fichier): test.php
Destination file: test.php
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6903    0  4587  100  2316   5517   2785 --:--:-- --:--:-- --:--:--  5600
#DEL https://1fichier.com/remove/blgbcl9uda/YZ7Q2
https://1fichier.com/?blgbcl9uda

Le résultat est le même mais avec plusieurs liens.

Et si je ne veux pas télécharger tous les fichiers présents dans ce répertoire, là c'est plus compliqué, il faudrait créé un fichier texte avec le nom des fichiers dans un fichier text, que l'on execute comme ceci :

# mon fichier text
file1
file2
file3
file4
file5
file6
file7
file8
file9
file test

Je sais je suis très original

Je le lance comme ceci :

$ while read i; do plowup 1fichier "$i"; done < test.txt

Je ne mets pas le résultat de la commande car il est plutôt long, mais ça marche.
Pour expliquer un peu, on boucle sur chaque ligne du fichier, pour lequel a chaque fois on fait un plowup de ce fichier.

plowdown

La syntaxe

La syntax est plutôt simple, similaire à plowup :

$ plowdown [argument] [hébergeur] [url]

Il n'est pas toujours utile de mettre le nom de l'hébergeur.

Les arguments

En fonction des hébergeurs, les arguments peuvent être différents. Pour les obtenir il suffit de faire :

$ plowdown --longhelp

Voici une partie du résultat de cette commande, pour 1fichier et uploaded_net :

[...]
Options for module <1fichier>:
  -a, --auth=USER:PASSWORD         Premium account
  -p, --link-password=PASSWORD     Used in password-protected files
      --restrictip                 Restrict login session to my IP address
[...]
Options for module <uploaded_net>:
  -a, --auth=USER:PASSWORD         User account
  -p, --link-password=PASSWORD     Used in password-protected files
[...]

J'ai pas trouvé mieux pour obtenir ces arguments, il va falloir fouiné.
Mais en règle général nous utiliserons principalement :

-a user:password     Pour l'authentification
-b user:password     Pour l'authentification si compatible seulement avec les comptes gratuit

exemples

Téléchargement d'un fichier sans authentification sur uploaded_net avec captcha puis 1fichier sans captcha :

$ plowdown http://ul.to/mfqzmd4f
Starting download (uploaded_net): http://ul.to/mfqzmd4f
Waiting 31 seconds... done
DISPLAY variable not exported! Skip X11 viewers probing.
No ascii viewer found to display captcha image
Local image: /tmp/plowdown.17887.25704.recaptcha.jpg
Leave this field blank and hit enter to get another captcha image
Enter captcha response (drop punctuation marks, case insensitive):

Pour les captcha, je télécharge l'image avec filezilla. Lors du test impossible de lire correctement le captcha, ça vient peu être de moi, mais franchement ils sont difficilement lisible .

$ plowdown https://1fichier.com/?s3kk91yzx2
Starting download (1fichier): https://1fichier.com/?s3kk91yzx2
File URL: https://a-7.1fichier.com/s26562064
Filename: file test
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2    0     2    0     0      0      0 --:--:--  0:00:02 --:--:--     3
file test

Téléchargement d'un fichier avec authentification sur 1fichier :

xataz@seedbox:~/test$ plowdown -a email:pass https://1fichier.com/?gvyovqoffj
Starting download (1fichier): https://1fichier.com/?gvyovqoffj
Starting login process: XXXX@XXX.XX/******
File URL: https://a-7.1fichier.com/s26562140
Filename: file6
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2  100     2    0     0      3      0 --:--:-- --:--:-- --:--:--     3
file6

Téléchargement de plusieurs fichiers sur 1fichier :

On crée un fichier avec toutes les urls :

https://1fichier.com/?yb8c051e4x
https://1fichier.com/?svznjbhc69
https://1fichier.com/?v7saebso46
https://1fichier.com/?qwpj4q599e
https://1fichier.com/?onfpze9atu
https://1fichier.com/?gvyovqoffj
https://1fichier.com/?x6rhfio2th
https://1fichier.com/?gnsx9dph1k
https://1fichier.com/?gs67vykdbm
https://1fichier.com/?s3kk91yzx2

et on télécharge :

$ plowdown url.txt
Starting download (1fichier): https://1fichier.com/?yb8c051e4x
File URL: https://a-7.1fichier.com/s26562196
Filename: file1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2  100     2    0     0      3      0 --:--:-- --:--:-- --:--:--     3
file1
[...]
Starting download (1fichier): https://1fichier.com/?s3kk91yzx2
File URL: https://a-7.1fichier.com/s26562207
Filename: file test
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2  100     2    0     0      3      0 --:--:-- --:--:-- --:--:--     3
file test

Cela fonctionne également avec plusieurs hébergeurs.

Le fichier de configuration

Nous pouvons utilisé un fichier de configuration qui permettra de ne plus avoir à entrer les identifiants avec la commande.

Il suffit de créé un fichier dans votre home :

nano ~/.config/plowshare/plowshare.conf

Et par exemple :

[General]
interface = eth0

uploaded_net/a = "username:password"
1fichier/a = "usermail:password"

[Plowdown]
timeout=3600

[Plowup]
max-retries=2

Ne pas oublié de changer les droits du fichier pour évité des erreurs :

chmod 600 ~/.config/plowshare/plowshare.conf

Maintenant si vous télécharger ou uploader sur uploaded_net, ou 1fichier, plus besoin de rentrer un identifiant :

plowup 1fichier monfichieraup

Conclusion

Je n'ai ici que expliqué les options basique de plowshare, il existe beaucoup d'autre options, que vous pouvez retrouver sur le github.

Contribution

Toute contribution est la bienvenue.

N'hésitez pas à contribuer au Tutoriel, ajout d'information, correction de fautes (et il y en a), amélioration etc ...

Ça se passe ici

Questions

Toute question sur la discussion ou sur github

Répondre…