Ideenquelle

Enfant

widefrog

widefrog est un programme permettant de télécharger des vidéos sur des plateformes de streaming. Intrinsèquement, il ne s’agit pas de piratage car widefrog n’outrepasse pas les accès demandés par les services. Autrement dit, si vous souhaitez récupérer des vidéos sur auvio.be (lié à la télévision belge francophone), vous devez avoir un compte sur le site et avoir une IP belge. widefrog permet donc juste de récupérer les vidéos facilement. widefrog est diffusé sur le forum de videohelp.

#Outils préalables Pour utiliser widefrog, il faut quelques outils préalables :

  1. Update/upgrade le système sudo apt-get update && sudo apt-get upgrade

  2. Python, ffmpeg, mkvmerge sudo apt-get install python3 python3-pip unrar zip unzip ffmpeg mkvtoolnix mkvtoolnix-gui mediainfo mediainfo-gui aria2 Dans le guide trouvé sur le forum, il recommande également d’installer curl, git, nano, vlc, mpv et asciinema. Autant les premiers sont déjà installés, autant vlc et mpv sont deux programmes au même usage.

  3. N_m3u8DL-RE

curl -kLO https://github.com/nilaoda/N_m3u8DL-RE/releases/download/v0.3.0-beta/N_m3u8DL-RE_v0.3.0-beta_linux-x64_20241203.tar.gz

## (Debian 13/Trixie does not allow to unpack/untar directly into the "/usr/local/bin/" DIRectory);

# Check the package is OK;
gunzip -tv vimeo-dl_0.2.0_linux_amd64.tar.gz
# Check what is inside the TAR.GZ archive;
tar -tvvf N_m3u8DL-RE_v0.3.0-beta_linux-x64_20241203.tar.gz
# Unpack;
tar -xvf N_m3u8DL-RE_v0.3.0-beta_linux-x64_20241203.tar.gz N_m3u8DL-RE
# Move to "/usr/local/bin/";
sudo mv N_m3u8DL-RE /usr/local/bin/
# Make the BInary file "EXEcutable;
sudo chmod a+rx /usr/local/bin/N_m3u8DL-RE
# List the file;
ls -ilha /usr/local/bin/N*
# Check the version
N_m3u8DL-RE --version
  1. mp4decrypt
curl -kL https://www.bok.net/Bento4/binaries/Bento4-SDK-1-6-0-641.x86_64-unknown-linux.zip -o ~/Downloads/Bento4-SDK-1-6-0-641.x86_64-unknown-linux.zip
sudo unzip -j Bento4-SDK-1-6-0-641.x86_64-unknown-linux.zip 'Bento4-SDK-1-6-0-641.x86_64-unknown-linux/bin/*' -d /usr/local/bin/
ls -ilha /usr/local/bin/
mp4decrypt
mp4info
  1. shaka-packager
sudo curl -kL https://github.com/shaka-project/shaka-packager/releases/download/v2.6.1/packager-linux-x64 -o /usr/local/bin/shaka-packager
sudo chmod a+rx /usr/local/bin/shaka-packager
shaka-packager --version

L’idée est de pouvoir utiliser les programmes directement depuis n’importe quel dossier, juste en les appellant par leur nom.

#Installation de widefrog Quand c’est fait, il faut encore récupérer widefrog. La version à l’heure actuelle est la 3.2. Idéalement, extraire le fichier dans un dossier propre à widefrog. Pour la suite et afin d’éviter les soucis de version de packages Python, on active un environnement de travail :

pip install virtualenv
virtualenv venv
venv\Scripts\activate

On installe les dépendances :

#windows
FOR /F %k in (requirements.txt) DO ( if NOT # == %k ( pip install %k ) )
#linux
grep -v '^#' requirements.txt | xargs -n 1 pip install
#macos
grep -v '^#' requirements.txt | xargs -n 1 pip3 install

Et on peut également mettre à jour urllib3 (pas certain que ce soit utile):

pip install urllib3 --upgrade

On octroye des droits d’exécution aux parties de widefrog :

sudo chmod +x "terminal/*"

L’installation est normalement finie.

#Utilisation de widefrog Pour utiliser widefrog, il faut veiller à avoir l’environnement actif. Pour cela, quand nous sommes dans le dossier de widefrog, il faut utiliser la commande source myvenv/bin/activate. Pour sortir de l’environnement, il faut utiliser : deactivate

Première utilisation

Pour la première utilisation, il faut créer la configuration via

python widefrog.py
[INFO] The app_files\config.json file was created. Edit the file and run the program.

Avant d’éditer la configuration, vous pouvez utiliser les commandes suivantes pour en savoir plus :

python widefrog.py --help
python widefrog.py --config

Utilisation

Je reprends ici l’utilisation dont j’ai besoin, càd pour le site auvio. Une IP belge est nécessaire ainsi qu’un compte au service auvio. Je recopie les exemples données sur le forum qui permettent de comprendre comment cela fonctionne. :

#video
python widefrog.py "https://auvio.rtbf.be/media/attraction-attraction-s01-3018437"
python widefrog.py "https://auvio.rtbf.be/emission/titane-27377"
#audio
python widefrog.py "https://auvio.rtbf.be/media/un-jour-dans-le-sport-14-aout-2004-3164197"
#livestream video
python widefrog.py "https://auvio.rtbf.be/live/roland-garros-2024-31-mai-direct-tipik-526661"
#livestream audio
python widefrog.py "https://auvio.rtbf.be/chaine/classic-21-5" --query=:2::2
#list
python widefrog.py "https://auvio.rtbf.be/widget/19164" --query=:5::7
python widefrog.py "https://auvio.rtbf.be/widget/22508?context%5BprogramId%5D=8340" --query=:2::4
python widefrog.py "https://auvio.rtbf.be/emission/la-theorie-du-y-11043/bonus" --query=:6::7
python widefrog.py "https://auvio.rtbf.be/emission/pandore-20618" --query=:5::8
python widefrog.py "https://auvio.rtbf.be/chaine/musiq3-7" --query=:2::3
#series
python widefrog.py "https://auvio.rtbf.be/emission/le-cactus-4043" --query=2017:180:2018:5
python widefrog.py "https://auvio.rtbf.be/emission/l-art-du-crime-27164" --query=3:2:4:2

Il faut savoir que widefrog accepte également les fichiers en entrée. Les fichiers seront composés pour chaque ligne du lien à télécharger.

Serveur DLNA

Nous avons une vieille télévision : elle date de 2010. Elle est smart. Sauf que … Avec le temps, les applications smart ont disparu, faute de support des éditeurs de logiciels (RTBF, Arte, …).

Elle possède toute de même une fonctionnalité qui est native : DLNA. Il s’agit de lire des données (vidéo, audio, photo) sur le réseau. Pour cela, il faut un serveur qui émet les données. Chez nous, notre box Internet permet cela nativement pour les supports USB qu’on y insère. Pas pratique si on souhaite modifier régulièrement ce que l’on regarde.

Nous avons trouvé une application : Serviio. Pratique et facile, bref assez simple pour que Madame et moi l’utilisions essentiellement pour les enfants. Ce qui est moins cool, c’est que cela fonctionne sous Java. Lors du passage de Windows à Linux, j’ai cherché une alternative.

Elles existent :

Les tutoriels (parfois anciens) fonctionnent assez bien. Il y a pour l’un des deux un soucis dans les tutoriels par rapport aux droits d’accès. Rien à redire mise à part … à moins que ? Naturellement, il y a un “Mais”. Mais, pour une raison que j’ignore, la télévision n’affiche pas les dossiers ; tous les fichiers sont à la racine. ce qui rend impraticable le choix de la vidéo.

Bref, pas de choix: je réinstalle Serviio (sur Linux cette fois) et bim, bam, cela fonctionne. Il ne me reste plus qu’à vérifier s’il est possible d’ajouter des images pour illustrer les dossiers (plus facile pour que le dernier comprenne ce qu’il choisit).

Installation

  1. Installer les dépendances : Java, sous son package openjdk, ffmpeg et x264. Cela se fait simplement avec un apt install openjdk -*-jdk ffmpeg x264. Il faut vérifier la dernière version de openjdk (aujourd’hui, c’est le 25).
  2. Téléchargement et installation de Serviio : Sur le site de Serviio, il faut vérifier le numéro de la dernière version (aujourd’hui, c’est la 2.4). Pour le récupérer : wget http://download.serviio.org/releases/serviio-2.4-linux.tar.gz Pour le décompresser (ici, on le met dans /opt) : tar -xzvf serviio-2.4-linux.tar.gar -C /opt
  3. Permettre à Serviio d’être lancé au boot. Vu que nous avons juste décompressé l’application dans /opt, le système ne sait pas comment lancer au boot Serviio ni surveiller qu’il fonctionne en continu. Nous allons le renseigner en créant un service pour systemd. Pour commencer, nous allons écrire un fichier dans /lib/systemd/system/serviio.services :
[Unit]
Description=Serviio media Server
After=syslog.target network.target

[Service]
User=serviio
ExecStart=/opt/serviio-2.4/bin/serviio.sh
ExecStop=/opt/serviio-2.4/bin/serviio.sh -stop

[Install]
WantedBy=multi-user.target

Ici, nous lançons l’application avec l’utilisateur serviio. Il faut créer cet utilisateur avec useradd -r -U -s /bin/false serviio puis lui donner les accès au dossier serviio avec chown -R serviio:serviio /opt/serviio-2.4/.

  1. Rendre le service accessible avec systemctl enable serviio.service
  2. Vérifier le status avec systemctl status serviio.service. S’il n’est pas lancé, nous le lançons : systemctl start serviio.service.
  3. Configurer Serviio via sa console Web. Elle est accessible via http://IP_Machine:23423/console

Source:

Linuxconfig - How to install Serviio media server on Raspberry Pi