Messages de Cyniquetristev8

1) ce sont les vieux et les fragiles qui crévent uniquement
2) inutile de se protéger avec un remède encore en phase expérimentale pour quelque chose dont on ne risque pas de mourrir ni même d'être gravement malade

TOpic clos

ayaaaa :rire:
En vrai faudrait lui faire dire aussi le pavé "et non les shills" :rire:

Le 12 janvier 2022 à 19:35:56 :
Les anti pass qui espere avoir le covid pour avoir un pass sanitaire vous ne faite que jouer le jeux a macron pour prolonger cette merdehttps://image.noelshack.com/fichiers/2017/18/1494048058-pppppppppppppppppppp.png

ceci

On se fait scanner comme du bétail ou on refuse la folie covidiste.

J'ai plus de respect pour un vacciné qui est contre le pass qu'un novax qui utilise un faux pass ou qui profite du fait d'avoir eu le covid pour retrouver lavy davant

Je mets un moment au pif de la vidéo elle présente un produit et dit "-20%, je connais pas le prix original" :pf:

Le 12 janvier 2022 à 18:22:04 :
https://image.noelshack.com/fichiers/2022/02/3/1642008109-image7.jpegle pape vous remercie pour vos sacrifices les golems :)

Bordel cet agent de Satan

Le titre est malheureusement nofake

Il a retweeté ça aussi

https://twitter.com/BLEUKLEINN/status/1479195255580860419?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1479195255580860419%7Ctwgr%5E%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fpublish.twitter.com%2F%3Fquery%3Dhttps3A2F2Ftwitter.com2FBLEUKLEINN2Fstatus2F1479195255580860419widget%3DTweet

Ce malaise bordel :)

Même le H aurait pas osé
up
Qu'est-ce qui peut m'arriver?
Sachant que y a rien d'intéressant à récupérer sur le site, mais genre vraiment rien du tout :hap:
Est-ce que y a des bots qui tentent des attaques automatisées?

Si ça t'intéresse je peux faire du multidownload aussi, du genre pouvoir rentrer plusieurs URL en même temps.

Dis-moi si tu veux je le ferai dans la journée

L'outil à installer sur le serveur est le suivant :

https://github.com/yt-dlp/yt-dlp#installation

Pour le DL:

sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp

Le fichier video c'est du webm et l'audio c'est du .opus, si ça t'intéresse je peux mettre d'autres formats. Dis-moi si tu veux

C'est bon j'ai mis le nouvel outil ça marche niquel

fichier url.php :

<!DOCTYPE html>
<html lang="fr">
<body>
<form action="download.php" method="post">
<label for="url">URL youtube :</label>
<input type="text" name="url" id="url">

<div>
<input type="radio" id="mptrois" name="type" value="mptrois"
checked>
<label for="mptrois">Audio</label>
</div>

<div>
<input type="radio" id="mpquatre" name="type" value="mpquatre">
<label for="mpquatre">Video</label>
</div>

<input type="submit" name="submit" value="ok">
</form>
</body>
</html>

fichier download.php

<?php
$url = $_POST['url'];
$type = $_POST['type'];

switch ($type) {
case 'mptrois':
exec('yt-dlp -x ' . $url, $output, $retval); //telecharge uniquement l'audio
$input = array_slice($output, 5, 1); //récupère la partie de la réponse à la commande où se trouve la nom du fichier
$rest = implode("','",$input); //la convertit en une chaîne
$rest = substr($rest, 28); //récupère uniquement le nom du fichier
break;
case 'mpquatre':
exec('yt-dlp ' . $url, $output, $retval); //telecharge la video (et l'audio)
$input = array_slice($output, 7, 1); //récupère la partie de la réponse à la commande où se trouve la nom du fichier
$rest = implode("','",$input); //la convertit en une chaîne
$rest = substr($rest, 31, -1); //récupère uniquement le nom du fichier
break;
default:
echo "erreur : aucun bouton n'a été coché"; //erreur
break;
}

if (file_exists($rest)) { //télécharge le fichier
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($rest).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($rest));
readfile($rest);
exit;
}
else
{
echo "erreur, un bug est apparu, pas de chance :/";
}
?>

Le 12 janvier 2022 à 11:17:30 :
Oh bordel, le script php qui exécute les commandes youtube-dl :rire:
Vous êtes pas prêts pour les injections de code si le site est en lignehttps://image.noelshack.com/fichiers/2021/52/4/1640863041-larry-wtc.png

J'avais pourtant envoyé un exemple sur Github qui utilisait django, parfaitement sûr et fonctionnel et surtout sans problème de performence puisqu'on réutilise directement les classes et les fonctions de youtube-dl

L'OP fera ses propres choix, je lui file un truc fonctionnel il en fait ce qu'il en veut aprèshttps://image.noelshack.com/fichiers/2021/52/4/1640863041-larry-wtc.png

Après ce sera un truc en localhost y a 0 risque normalementhttps://image.noelshack.com/fichiers/2021/52/4/1640863041-larry-wtc.png

Ok yt-dlp marche du feu de dieu, je vais l'intégrer au script c'est juste 1000 fois mieux :hap:

Le 12 janvier 2022 à 10:56:58 :

Le 12 janvier 2022 à 08:48:25 :
Ça tourne sous quel OS ton youtube-dl ?

Au plus simple, un formulaire HTML/JS avec l'url de ta vidéo en entrée, id="ytb_url" :
$url = $_POST['ytb_url'];
exec("/usr/bin/youtube-dl $url);

Ça prend vraiment 10 minutes grand max.

Le truc bien safe quoi :rire:
Vulnérabilité critique (injection de commande)

Osef le mec veut mettre ça en localhost, qu'est-ce qu'on s'en branle que la paramètre d'URL soit passé dans une commande.

Surtout que la paramètre vient avant et après des caractères fixés coté serveur
exec('youtube-dl ' . $url, $output, $retval);

DOnc à part si le paramètre est capable de supprimer des caractères avant je vois pas comment on peut injecter quoi que ce soit. Eventuellement en mettant tout en commentaire avant et après puis en passant la commande ENTIEREMENT en paramètre. Bref un truc casse couille.

Personne va venir faire ça chez lui et même si c'est le cas il va faire probablement tourner ça sur une VM y a 0 risque.

SI un mec arrive jusqu'à pouvoir accéder à un site web en local ça va être le cadet de ses soucis une injection de commande PHP.

Et PHP est robuste et encore utilisé par la majorité des sites webs, noraj

Le 12 janvier 2022 à 11:00:50 :

Le 12 janvier 2022 à 10:53:23 :
Je vais voir pour ce probleme de téléchargement lent

T'en fais pas khey je pense que c'est un problème spécifique à youtube-dl, tant que ça marche je suis content perso :oui:

Oué j'ai regardé apparemment youtube détecte youtube dl et bride les téléchargements. Surtout que le dev de youtube dl est arrêté.
Y a un autre outil, je vais le mettre à la place de youtube dl, c'est juste un fork de ce dernier.
En vrai je fais des tests et c'est vraiment archi trop lent youtube dl

Je vais voir pour ce probleme de téléchargement lent
On pourrait imaginer du multi-download aussi mais flemme, j'ai travaillé pour 1 semaine entière là :hap:

J'ai fait l'amélioration dont je parlais: télécharger l'audio ou la vidéo, et j'ai mis au propre les fichiers

fichier url.php :

<!DOCTYPE html>
<html lang="fr">
<body>
<form action="download.php" method="post">
<label for="url">URL youtube :</label>
<input type="text" name="url" id="url">

<div>
<input type="radio" id="mptrois" name="type" value="mptrois"
checked>
<label for="mptrois">mptrois</label>
</div>

<div>
<input type="radio" id="mpquatre" name="type" value="mpquatre">
<label for="mpquatre">mpquatre</label>
</div>

<input type="submit" name="submit" value="ok">
</form>
</body>
</html>

fichier download.php

<?php
$url = $_POST['url'];
$type = $_POST['type'];

switch ($type) {
case 'mptrois':
exec('youtube-dl -x ' . $url, $output, $retval); //telecharge uniquement l'audio
$input = array_slice($output, 1, 1); //récupère la partie de la réponse à la commande où se trouve la nom du fichier
$rest = implode("','",$input); //la convertit en une chaîne
$rest = substr($rest, 24); //récupère uniquement le nom du fichier
break;
case 'mpquatre':
exec('youtube-dl ' . $url, $output, $retval); //telecharge la video (et l'audio)
$input = array_slice($output, 5, 1); //récupère la partie de la réponse à la commande où se trouve la nom du fichier
$rest = implode("','",$input); //la convertit en une chaîne
$rest = substr($rest, 31, -1); //récupère uniquement le nom du fichier
break;
default:
echo "erreur : aucun bouton n'a été coché"; //erreur
break;
}

if (file_exists($rest)) { //télécharge le fichier
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($rest).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($rest));
readfile($rest);
exit;
}
else
{
echo "erreur, un bug est apparu, pas de chance :/";
}
?>