PROJET AUTOBLOG


Le Blog de Genma

source: Le Blog de Genma

⇐ retour index

Hack - Une playlist Youtube en flux de podcast

jeudi 1 janvier 1970 à 01:00

# Mon projet

Je fais pas mal de veille et je rattrape les conférences des événements en replay quand celles-ci ont été enregistrées. J'écoute beaucoup de flux en audio sur mon smartphone, des podcasts. Et parfois des vidéos Youtube en fond sonore.

J'ai défini un cahier des charges pour un mini-projet correspond au besoin suivant : pouvoir écouter ces conférences en mode déconnecté/sans connexion.

Mes besoins sont donc les suivants
La version audio me suffit. Je veux pouvoir mettre le smartphone dans une poche et donc la vidéo ne sert pas ;
Je veux pouvoir reprendre d'où j'en étais (avec un bon lecteur de vidéo, ça doit être possible, je n'ai pas cherché). Je suis susceptible d'écouter plusieurs flux en parallèle selon les envies, les inspirations
Je veux pouvoir écouter en mode déconnecté, donc avoir les fichiers sur mon smartphone, mais pas tout en même temps ;
Je veux que ce soit dans mon application de Podcast : j'aime bien écouter différentes choses en parallèle pour varier un peu. Je veux pouvoir télécharger les fichiers à la demande/selon le besoin pour ne pas saturer l'espace de mon smartphone.
Et parce que j'ai envie de faire ce projet, tout simplement ;-)

Je pars donc sur le projet de convertir une playlist Youtube en flux de podcast. Et les conférences de l'événement le Capitole du libre s'y prêtent bien. Les conférences sont filmées mais l'écran diffusant les supports de conférences n'est pas des plus visibles, du coup seul le flux audio m'importe dans ce cas.é

# Deux scripts

Qui peuvent être regroupés en 1 seul si besoin

## Création du script de récupération DownloadAndConvert.sh

Préréquis : avoir le logiciel yt-dlp d'installer

#!/bin/bash # Configuration # Ici je mets la playliste Youtube des vidéos du Capitole du libre édition 2025 PLAYLIST_URL="https://www.youtube.com/playlist?list=PLU8kgF3be3rTmynqvcRAaTneHp9kAFZ20" OUTPUT_DIR="./podcast" # Créer le dossier de sortie mkdir -p "$OUTPUT_DIR" # Télécharger et convertir les vidéos en audio yt-dlp -x --audio-format mp3 --embed-thumbnail --parse-metadata "%(title)s:%(description)s" --output "$OUTPUT_DIR/%(title)s.%(ext)s" --format bestaudio/best "$PLAYLIST_URL"

Je récupère ainsi dans le dossier "Podcast" l'ensemble des fichiers mp3 correspondant aux pistes audio de l'ensemble des conférences de la playliste.

## Création du flux de podcast Youtube2Podcast.sh

#!/bin/bash # Configuration OUTPUT_DIR="./podcast" PODCAST_TITLE="Capitole du libre 2025" PODCAST_DESCRIPTION="CDL2025 Capitole du libre 2025" PODCAST_AUTHOR="Genma" PODCAST_LINK="https://podcast.mondomaine.com" # Optionnel : URL de ton serveur web # Générer le fichier RSS cd "$OUTPUT_DIR" echo '' > CDL2025.rss echo '' >> CDL2025.rss echo " " >> CDL2025.rss echo " $PODCAST_TITLE" >> CDL2025.rss echo " $PODCAST_DESCRIPTION" >> CDL2025.rss echo " <link>$PODCAST_LINK" >> CDL2025.rss echo " fr-fr" >> CDL2025.rss echo " $PODCAST_AUTHOR" >> CDL2025.rss echo " " >> CDL2025.rss echo " " >> CDL2025.rss echo "https://blog.genma.fr/local/cache-vignettes/L150xH150/siteon0-68008.png?1737630417" >> CDL2025.rss echo "$PODCAST_TITLE" >> CDL2025.rss echo "<link>$PODCAST_LINK" >> CDL2025.rss echo " " >> CDL2025.rss # Ajouter chaque fichier audio comme épisode for file in *.mp3; do title="${file%.mp3}" echo " " >> CDL2025.rss echo "$title" >> CDL2025.rss echo "Épisode : $title" >> CDL2025.rss echo "" >> CDL2025.rss echo "$PODCAST_LINK/$file" >> CDL2025.rss echo "$(date -R)" >> CDL2025.rss echo " " >> CDL2025.rss done echo " " >> CDL2025.rss echo "" >> CDL2025.rss echo "Flux RSS généré : $OUTPUT_DIR/CDL2025.rss"

# Diffusion

Sur une instance Yunohost, j'ai crée un sous-domaine dédié (podcast.mondomaine.com) et dessus j'ai installé l'application MyWebApp pour avoir une configuration Nginx automatisée et simple qui me permette de partager les fichiers.

J'upload les fichiers (mp3 et le fichier RSS) à la racine de ma webapp.

Je valide l'URL du flux via un navigateur. Et je vérifie que les fichiers audio se lisent bien.

# Ajout dans l'application de podcast

J'ajoute un flux RSS (https://podcast.mondomaine.com/CDL2025.rss) dans mon application de podcast (PodcastAddict, que j'utilise depuis une dizaine d'années). Une fois le flux récupré, ça donne ça :

Une fois qu'un épisode est téléchargé, la vignette change (pratique pour savoir ce que j'ai téléchargé ou pas encore).

Et j'utilise ensuite les fonctionnalités de l'application (lecture en vitesse accélérée, reprise, effacer les fichiers une fois lu pour regagner de la place...)

# A améliorer & La suite

Faire la même chose pour d'autres projets !
Faire la même chose pour une playliste sur Peertube du coup :)

Ubuntu - Suivre le niveau de batterie de ses périphériques Logitech (Clavier souris)

jeudi 1 janvier 1970 à 01:00

J'ai déjà évoqué dans des articles antérieures les périphériques Logitech et leurs usages et connexions sur Ubuntu. A savoir :

Logitech MX Keys et MX Master 3 sous Ubuntu
Dans la jungle des dongles Logitech : unifying, USB Bolt..

Dans le présent article, je voudrais faire un tutoriel/documenter comment suivre le niveau de batterie de ses périphériques Logitech.

# Liste des matériels testés

Logitech MX Keys et MX Master 3, qui ont une batterie interne (non changeable) et un Logitech clavier K540 (article à venir), qui marche sur piles. Le tout se branche en sans-fil via un dongle USB Logitech.

# Suivre le niveau de batterie via les Paramètres Ubuntu

Le plus simple est le fait qu'une fois le matériel branché, le niveau de batterie apparaît directement dans l'interface des paramètres d'Ubuntu (de Gnome ?).

# Extension Gnome

On peut également avoir un raccourci dans la barre du bureau via l'extension wireless-hid. Je ne précise pas/détaille pas comme installer une extension Gnome Shell (il faudra que je fasse un article sur le sujet) L'extension sur le site des Extensions Gnome et les sources sur Github https://github.com/vchlum/wireless-hid

Cette extension utilise les mêmes informations données par le système que celles utilisées par les Paramètres d'Ubuntu, vu que l'on a les mêmes niveaux.

# Solaar

Ce logiciel permet à minima d'avoir le niveau de charge des batteries du clavier et de la souris et un rappel de l'association bouton/appareil-dongle. (Solaar permet de faire une configuration avancée pour paramétrer les usages des boutons complémentaires de la souris, sur la base de macro. Mais ce n'est pas intuitif, cela demande un peu de temps d'appropriation et de configuration.)

Quelques liens :
https://pwr-solaar.github.io/Solaar/
La documentation précisant comment fonctionne les règles (Rules) dans Solaar
Documentation succincte d'Ubuntu-fr.org sur Solaar

Notes hebdomadaires N°49 Semaines du 17 novembre 2025 au 15 décembre 2025

jeudi 1 janvier 1970 à 01:00

Des notes hebdo sur quasiment 4 semaines car les semaines ont été chargées.

#Mes plaisirs

J'ai ENFIN lu et aimé Velorutopia de Tristan Nitot Soucis, maintenant je veux qu'on soit dans quelques années et dans le monde décrit... Peut être que si j'élève bien mes filles, elles auront pour héroïne & modèle Alpha !

Nouvelle campagne de Framasoft qui fait un appel aux dons pour financer les nouveaux services déjà mis à disposition et d'autres en 2026.
https://soutenir.framasoft.org/fr/

KeePassXC 2.7.9 a reçu le 17 novembre une certification CSPN-2025/16 de l'ANSSI, obtenue pour trois ans.

J'utilise KeepassXC depuis de nombreuses années comme gestionnaire de mot de passe principal et ca c'est une bonne nouvelle. Des années que je me demande pourquoi cette certification n'est pas faite (réponse : manque de temps, de personnel et d'argent). Keepass avait été certifié il y a des années (2011). Pour rappel, KeepassXC a pour origine un fork communautaire de KeePassX, lui-même un fork multiplateforme de KeePass. Très pratique pour un usage personnel (ou famillial) si on n'est pas plusieurs à utiliser le même gestionnaire en même temps. C'est d'ailleurs KeepassXC que j'évoque dans mon article sur le testament numérique et sur la gestion des mots de passe

Regarder le dessin animé Mystery Lane avec les enfants. A quand la saison 2 ?

Les week-end s'enchainent avec les visites des marchés et animation de Noël avec les enfants. De bons moments en famille qui laisseront de beaux souvenirs.

Le salon Opensource Experience 2025, grand événement professionnel annuel auquel j'ai tenu le stand de l'entreprise qui m'emploie.
Et plus particulièrement ma rencontre avec une personne qui travaille sur la solution de virtualisation open source VATES (il se reconnaîtra) qui m'a fait le plaisir de me partager ce qu'il aime sur ce blog. Toujours sympa de rencontrer de nouvelles personnes.

# Mes plaisirs coupables

Les vidéos des humoristes Kevin Bagot et de Roman Doduik sur Instagram (Instagram d'où le plaisir coupable)

#Mes peines

Ayant encore un compte X inactif, j'ai pu vérifié le négationisme dont fait preuve l'IA Grok. . Je n'en dis pas plus ici, si ce n'est de renvoyer à un Constat de Ploum sur Mastodon (..) je dois me rendre sur le « web normal » Et ce qui m'hallucine c'est que j'ai l'impression de ne voir que des textes générés illustrés par des images générées. Et donc, que je ne peux absolument pas faire confiance à ce que je lis. C'est comme si les spécialistes SEO avait conquis 99% du web. Bye bye web. Ça fut 30 belles années. Le web est mort, vive le web !

#Vus ou entendus

Chez Korben Le créateur de Mastodon se casse de sa propre plateforme (et je le comprends)
Des réflexions intéressantes derrière un ton aigri. Les communautés ne peuvent pas de mélanger. Il parle de bienveillance dans sa communauté Discord. Les personnes font le choix d'être là-bas, ne se mélangent pas. On ne voit pas de retoot/rediffusion de messages de personnes qu'on en suit pas. C'est de l'entre-soi. Car le vivre-ensemble ne marchera jamais.

Toujours à base d'IA, la bande annonce de ce que serait un film GARGOYLES (2025) | First Teaser Trailer J'avais adoré et vu toutes les saisons lors de la diffusion à l'époque et il est vrai que ça fait envie !

# Mes projets

Je Monte un PC Portable Gaming Modulaire ! - Framework 16 TechSama le Youtuber tech belge fait une vidéo complète sur le montage d'un PC portable de la gamme Framework. Framework est au ordinateur ce que le Fairphone est au smartphone : un ordinateur entièrement modulaire et évolutif. Pas pour tout de suite mais j'ai pour projet dans le cadre futur du renouvellement de mon matériel, de sérieusement m'intéresser à ce type de matériel.

A défaut et parce que c'est le réseau professionnel où tout le monde est, Une communauté Proxmox France en train de se lancer sur Linkedin. Active, du partage de pas mal de retour d'expériences et de témoignage, la solution de virtualisation qui a le vent en poupe et qui évolue rapidement, qui est utilisé du lab personnel (comme c'est le cas chez moi, j'ai vu cluster composé de vieux PC de récup') aussi bien qu'en entreprise.

Ca me fait penser qu'il faut que je reprenne le temps d'animer la mailing liste de la communauté francophone de Nextcloud...

# Mes contributions

Les différents billets de blog que j'ai publié récemment

A titre professionnel, à l'occasion du salon Opensource Experience, nous sortons deux livres blancs, disponible en libre téléchargement sur le site Internet de la société Open source Experts, OSE de son petit nom
Alternatives à Atlassian en partenariat avec Xwiki & Enalean
Open Source, souveraineté et indépendance numérique, en partenariat avec Atos
Pourquoi contributions ? Car ces livres blancs sont publiés sous licence CC by SA.

Lifehacking

Cumulant les épisodes à écouter, je me suis mis à écouter les podcasts ou à regarder certaines vidéos YouTube en vitesse 1.3 (donc en vitesse accélérée, ce qui se fait très bien dans le paramétrage). Cette accélération me permet un gain de temps d'environ 1/3 de temps, tout en restant encore audible. Ce n'est pas révolutionnaire, cela me permet d'écouter ou de voir plus ou de libérer du temps pour autre chose. Cela ne me demande pas un gros effort de concentration (à une vitesse supérieure comme 1.5 là oui, ça commence).

Limiter les accès à l'interface admin de SPIP

jeudi 1 janvier 1970 à 01:00

Sur le même principe que mon article "Limiter les accès à l'interface admin de Yunohost via Nginx". J'ai un site qui tourne sous le SPIP installé sur un Yunohost sur un VPS. Je souhaite restreindre l'accès de l'interface d'administration de SPIP (accessible via le chemin ./ecrire)

Là encore, il suffit de modifier la configuration de Nginx (à la main cette fois ci) pour limiter les accès à certaines IP connues. En l'occurence celle de chez moi (ma Freebox) et si je suis en extérieur, je passe par le VPN Wireguard et me retrouve alors de nouveau avec mon IP publique. Attention, il faut à bien penser à ajouter son IPv6 publique car sinon, on se retrouve bloqué (et on cherche alors que la solution est simple).

# Sécurisation de l'accès à l'espace d'Administration de SPIP

$sudo nano /etc/nginx/conf.d/spip.d/spip.conf
location / { (...) location ~/ecrire/ { allow AAA.BBB.CCC.DDD; allow 2a01:XXX:XXX:XXXX::XXX:XXX; deny all; }

On teste et on relance Nginx

$sudo /etc/init.d/nginx -t $sudo /etc/init.d/nginx reload

On peut tester en se connectant depuis une connexion extérieure (partage de connexion du téléphone par exemple). Et si l'IP qui demande à afficher la page n'est pas autorisé, on a bien un message d'erreur Nginx.

Limiter les accès à l'interface admin de Yunohost via Nginx

jeudi 1 janvier 1970 à 01:00

# Objectif

Pour un serveur Yunohost qui est chez moi, je veux n'autoriser les accès à l'interface d'administration que depuis les IP du réseau local. Et si je suis en extérieur, je dois passer par le VPN Wireguard (de la Freebox), qui fait en sorte que je me retrouve sur le réseau local. Les accès aux services sont quand à eux protégés par le SSO (ou pas si ouvert, selon les applications).

# Sécuriser acces Admin Yunohost

L'interface d'administration dispose d'un champ permettant de restreindre l'accès à certaines IP. C'est dans cette interface que l'on saisit les IP.

On peut tester en se connectant depuis une connexion extérieure (partage de connexion du téléphone par exemple). Et si l'IP qui demande à afficher la page n'est pas autorisé, on a bien un message d'erreur Nginx.

# Configuration nginx

Ce qui se passe dans les coulisses

Il est assez facile de retrouver la liste des fichiers modifiés, qui est la suivante :
/etc/nginx/conf.d/yunohost_api.conf.inc
/etc/nginx/conf.d/yunohost_admin.conf.inc
/etc/nginx/conf.d/security.conf.inc

Et dans le contenu de ce fichiers, on a des nouvelles lignes (allow/deny) avec les adresses IP

location /yunohost/admin/ { alias /usr/share/yunohost/admin/; default_type text/html; index index.html; allow 192.168.0.0/24; # Autorisation de la toute la plage d'IP locale allow 192.168.27.68; #Adresse obtenue via la connexion VPN Wireguard allow 2a01:e0a:XXX:XXX::XXX:XXX; #Autorisation de l'IPv6 de ma machine deny all;