Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.

Le Fisher Price Pixter ressuscité

Le Fisher Price Pixter, ce jouet éducatif à écran tactile que Mattel vendait entre 2000 et 2002, vient de se faire passer au scanner par Dmitry Grinberg .

Alors ce truc n'est pas le truc le plus répandu qui soit, surtout par chez nous, mais on en a trouvé quand même quelques uns à l'époque, et si ça se trouve vous en avez eu un.

C'est un appareil cartouches que les gosses utilisaient pour dessiner et écouter de la musique. Personne ne l'avait jamais documenté correctement. Aucune doc officielle, des cartouches un peu obscures, et un écosystème abandonné depuis 2007.

Et le plus drôle, c'est ce qu'il a trouvé dedans. La version Pixter Color, deuxième génération, embarque un SoC ARM Sharp LH75411. Pour un jouet destiné à un gamin de cinq ans, c'est franchement impressionnant. La version Classic, plus ancienne, tourne sur un 6502, le même processeur que le Commodore 64 ou la NES.

Sauf que par-dessus ce hardware, les ingénieurs avaient ajouté une couche logicielle qui faisait croire au programme qu'il tournait sur une machine totalement différente, en pratique une sorte de processeur virtuel 16 bits pour la Color, 8 bits pour la Classic. Probablement parce qu'à la base ils visaient une autre puce et qu'ils ont dû pivoter en cours de route.

Dmitry a tout passé au crible. Hardware, implémentation audio (qu'il qualifie lui-même de "sauvage"), dump des cartouches une par une, écriture d'émulateurs pour préserver le truc. Il a même rajouté le support du LH75411 dans uARM, son émulateur ARM maison. En quelques semaines. Et au passage, il a porté PalmOS 5 sur le Pixter Color, ce qui n'a strictement aucune utilité mais c'est quand même drôle.

Le pourquoi de tout ça, c'est de la conservation. Ces appareils disparaissent, leurs cartouches se fissurent, leurs piles fuient, et dans dix ans il ne restera plus rien à étudier. Sans des bricoleurs comme Dmitry, des pans entiers de la culture jouet électronique des années 2000 s'effacent doucement.

Source : Hackaday

Taggez vos photos avec de l'IA en local

Tagger des milliers de photos à la main, c'est le genre de corvée qu'on remet tous à plus tard depuis des années. Mais c'était sans compter sur photo-folder-tagger de Laurent Voillot qui règle ça grâce à 6 modes IA spécialisés, le tout en local, sans envoyer une seule image dans le cloud.

Vous faites pointer l'outil sur un dossier, vous choisissez le mode IA correspondant à vos photos, et hop, des fichiers XMP annexes sont générés à côté de chaque cliché. Ces fichiers contiennent les tags et sont directement lisibles par Lightroom Classic, Capture One, Bridge, Darktable et DigiKam, ce qui évite d'avoir à ré-importer ou à modifier les originaux !

Les 6 modes couvrent des usages bien distincts. Le mode Balade utilise CLIP SigLIP2 pour la classification générale (~50 ms par photo). Le mode Animaux combine BioCLIP v1 + CLIP (~40 ms). Pour les oiseaux et les insectes, c'est BioCLIP 2, entraîné sur 214 millions d'images de biodiversité (TreeOfLife-200M), à ~55 ms par image. Le mode Vacances sort la grosse artillerie avec Ollama et qwen2.5vl pour générer des descriptions en langage naturel (~1.8 s par photo).

Et le mode qui mérite une mention spéciale c'est Astro capable d'identifier automatiquement les objets célestes : Galaxies, nébuleuses, amas d'étoiles... les tags XMP pointent alors vers les références Messier, NGC ou IC correspondantes. C'est assez dingue comme feature.

En tout cas, c'est plus précis d'avoir tous ces petits modèles spécialisés plutôt que d'avoir un seul modèle qui fait tout. BioCLIP 2 sur la faune donne par exemple des résultats qu'un modèle généraliste n'atteindra pas.

L'installation se fait après récupération des sources via pip install -r requirements.txt. Tout est configurable dans config.yaml, les modèles IA utilisés, la langue des tags, les seuils de confiance...etc puis ça se lance avec python photo_folder_tagger.py. Au passage, n'oubliez pas que si vos photos sont un peu floues avant de lancer le tagger, SuperImage peut les upscaler en amont.

Bref, si vous avez des disques entiers de photos nature, astro ou de rando qui traînent sans tags depuis des années, c'est l'outil qu'il vous faut.

Merci à Laurent Voillot.

Spotify génère maintenant vos podcasts tout seul

Spotify vient d'annoncer un truc intéressant je trouve, qui s'appelle les Personal Podcasts. Le principe c'est de demander absolument tout ce que vous voulez, par exemple un podcast sur un cours que vous venez de suivre, sur un bouquin, sur un article de Korben.info voire sur votre planning de la semaine, vos objectifs...etc etc... Peu importe... Spotify prend tout ça, et génère un épisode audio personnalisé raconté par une voix IA plus ou moins moche.

Et l'épisode apparaît alors directement dans votre bibliothèque, comme si quelqu'un avait fait un résumé audio de votre semaine.

Et pour faire ça, ils ont mis en ligne un repo GitHub save-to-spotify qui est un outil en ligne de commande permettant à des agents IA de créer ce podcast personnalisé tout ça accessible en ligne de commande ou via des agents comme Claude Code, OpenClaw ou Codex.

Que ce soit sous macOS ou Linux, ça s'installe en une ligne (allez lire le install.sh par sécurité quand même avant de l'exécuter) :

curl -fsSL https://saveto.spotify.com/install.sh | bash

Et si vous êtes sous Claude Code, c'est encore plus immédiat :

/plugin marketplace add spotify/save-to-spotify

Le skill se retrouve dans ~/.claude/skills/save-to-spotify/ et votre agent peut demander à Spotify de générer un podcast à la demande pour ensuite le pousser sur Spotify.

Rien de compliqué en fait !

Par contre, le podcast créé est 100% privé, donc vous ne pourrez pas le partager avec vos amis. Mais c'est pas bloquant non plus puisqu'il est toujours possible d'aller récupérer dans les dossiers temporaires de génération de l'émission les MP3 que ça vous crache pour ensuite les mettre ailleurs, soit sur votre site, soit les diffuser sur votre vrai podcast Spotify accessible à tous.

Maintenant, est-ce que je vais faire mon podcast pour raconter les actus que je mets sur ce site ?

Alors j'ai pas le temps mais je le ferai peut-être un jour si la qualité audio de l'IA est suffisante pour que ça ait l'air vraiment produit par un humain et pas par une machine. Pour vous donner une idée, voici ce que ça donne :

Donc c'est pas encore qualitatif... À voir en passant par des moteurs TTS comme ceux d'ElevenLabs... mais pour l'instant, c'est pas d'actualité pour moi. On verra bien... Je me suis quand même amusé à mettre les fichiers texte et JSON produits dans Notebook LM pour faire un autre type de podcast qui cette fois est un peu plus long et plus quali... Je vous mets ici.

Après, peu importe que vous le génériez via l'outil de Spotify ou autrement en passant par un autre outil, le CLI Save To Spotify, vous permettra ensuite de le mettre sur votre compte Spotify pour l'écouter par exemple dans la voiture ou dans les transports.

Bref, c'est disponible et si vous avez Claude Code sous la main, ça prend une ligne à installer. L'annonce complète est par ici .

GameDate - Trouver des joueurs pour vos jeux morts et oubliés

Hier soir, je suis tombé sur GameDate et ça m'a carrément fait remonter 20 ans en arrière, à cette époque bénie l'époque où on passait toutes nos nuits sur des jeux comme Wolfenstein: Enemy Territory ou Tribes 2 sans que personne ne nous juge bizarrement. Ce site pour le moins original permet d'organiser des sessions multijoueurs pour tous les jeux que tout le monde a oubliés.

D'abord vous arrivez sur le site, ensuite vous voyez les sessions programmées par d'autres joueurs, vous cliquez sur "interested" pour celles qui vous tentent, et le jour J vous lancez le jeu pour rejoindre les autres. Chaque session affiche 2 compteurs, le nombre d'intéressés et un "expected" pondéré, histoire d'avoir une vraie idée de la fréquentation au lieu d'arriver dans un serveur fantôme.

Et si rien ne vous convient, vous pouvez créer votre propre session en quelques clics sans avoir besoin de vous créer un compte. C'est très appréciable et en parcourant le catalogue, je suis tombé sur des pépites que je croyais définitivement enterrées.

Je pense à Halo 2, Phantasy Star Online, Tribes: Ascend, Rainbow Six: Raven Shield, Total Annihilation, Worms Armageddon, GoldenEye: Source, NEOTOKYO ou Sven Co-op...etc.

La liste tourne autour de 90 jeux et continue de grandir (qui a dit CMB ?). Y'a même du Mario Kart Wii et du Mario Party en netplay pour les nostalgiques de Nintendo, du F.E.A.R. Combat pour les fans de tir tactique et toute une section pour les mods Source comme Hidden: Source ou Eternal Silence.

Après, certaines sessions du catalogue affichent "no interest" parce que personne n'a cliqué dessus, donc n'oubliez pas de vérifier les compteurs avant de poser un RTT, sinon vous risquez de débarquer dans un serveur fantôme.

Côté vie privée, le site assure puisque votre IP est transformée en hash irréversible pour empêcher les abus de vote sans permettre de remonter à vous, et la protection anti-bot passe par Cloudflare Turnstile (donc pas de captcha pénible à résoudre). Aucun cookie de tracking mais juste un localStorage pour vos préférences. Et vous pouvez en option lier un compte Discord ou Steam pour recevoir des rappels avant vos sessions.

Un site qui vous fout la paix en somme...

Même l'interface tape carrément dans la nostalgie avec un look qui nous ramène pile aux menus Steam de l'époque Half-Life 2, grâce à vgui.css , un projet open source qui réplique l'esthétique des jeux Source.

Y'a six thèmes au choix dont un "Legacy" qui pue les années 2000 à plein nez (perso je suis resté dessus, forcément). Vous pouvez alors filtrer par région (NA, EU, OCE, SAM), par tags (PvP, co-op, casual, ranked, modded, newbie-friendly...) et trier par sessions qui démarrent bientôt ou par popularité.

Je trouve que GameDate est vraiment une bonne idée parce que ça participe à 100% à ce mouvement de préservation du jeu vidéo, totalement dans la lignée de projets comme EmuOS ou des trackers communautaires qui maintiennent les serveurs en vie depuis 15 ans. Je me dis que tant que des passionnés trouvent le moyen de se retrouver pour relancer un vieux serveur Tribes 2 ou autre, ces jeux ne sont jamais vraiment morts. Ils ont juste besoin qu'on les ressorte du placard de temps en temps...

À tester donc sur gamedate.org !

Kavita, la bibliothèque auto-hébergée pour vos ebooks, comics et manga

Depuis qu'Amazon a coupé le téléchargement USB de nos ebooks Kindle (sniiiif), héberger sa propre bibliothèque est passé du statut de bricolage du dimanche aprem au geste héroïque de préservation de notre souveraineté !

Alors si vous voulez vous lancer, sachez que Kavita , le serveur de lecture auto-hébergé développé depuis 2020, est l'un des candidats les plus solides du moment. C'est un lecteur web qui gère EPUB, PDF, comics CBZ/CBR et manga avec mode de lecture droite-à-gauche pour les aficionados et grâce lui, nos ebooks peuvent reprendre leur indépendance.

Ce truc, ça se déploie en Docker ou via Scoop pour Windows en 4 lignes de PowerShell.

De mon côté, j'ai installé Kavita sur mon NAS Synology alors voici la marche à suivre si vous voulez faire pareil.

Installation sur NAS Synology (Container Manager)

Testé sur DSM 7.2 avec Container Manager. Pour QNAP via Container Station ou TrueNAS, la logique est la même puisque c'est du Docker standard.

Étape 1 - Préparer les dossiers

Sur votre NAS, créez deux dossiers via Panneau de configuration > Dossier partagé :

  • docker/kavita/config pour la config et la base SQLite de Kavita
  • data/library/books pour votre bibliothèque (pointez où vous stockez déjà vos EPUB et CBZ)

Étape 2 - Le docker-compose.yml

Ouvrez ensuite Container Manager > Projet > Créer, donnez-lui le nom kavita, et collez ce docker-compose :

services:
 kavita:
 image: jvmilazz0/kavita:latest
 container_name: kavita
 restart: unless-stopped
 ports:
 - "5000:5000"
 environment:
 - TZ=Europe/Paris
 volumes:
 - /volume1/docker/kavita/config:/kavita/config
 - /volume1/data/library/books:/manga

L'image jvmilazz0/kavita:latest est celle référencée dans la doc officielle. Côté container, les chemins sont /kavita/config et /manga (peu importe que ce soit du manga ou des romans, c'est juste le nom historique du point de montage).

Étape 3 - Lancer le conteneur

Validez le projet. L'image se télécharge (environ 200 Mo), puis le conteneur démarre. Si le port 5000 est déjà pris sur votre NAS, changez le mapping en 5001:5000 par exemple.

Étape 4 - Premier lancement

Dans votre navigateur, allez sur http://IP-DU-NAS:5000. L'écran d'accueil vous demande alors de vous créer un compte admin.

Validez, puis allez dans les préférences pour passer l'interface en français et rafraichissez la page.

Ensuite, dans les paramètres du serveur > Bibliothèques, ajoutez une bibliothèque : Type "Livre" pour les EPUB/PDF ou "Manga"/"Comic" selon le contenu, le choix du dossier pointant vers /manga. Le scan démarre automatiquement.

Étape 5 - Organisation des dossiers

Attention, Kavita est sensible à la structure des dossiers donc pour qu'il identifie correctement les séries, organisez vos dossiers comme ça :

/manga
├── Asterix/
│ ├── Asterix - Tome 01.cbz
│ └── Asterix - Tome 02.cbz
├── Stephen King/
│ ├── Ça.epub
│ └── Shining.epub

Un sous-dossier par série ou par auteur, pas tout en vrac dans un dossier unique.

Étape 6 - Accès distant (optionnel)

Maintenant, pour accéder à Kavita depuis l'extérieur, le plus propre c'est un reverse proxy avec HTTPS. Sur Synology, soit via DSM > Portail web > Proxy inversé, soit via Nginx Proxy Manager . Pointez votre sous-domaine sur IP-NAS:5000 et activez Let's Encrypt.

Ou alors, moi ce que j'aime bien faire aussi, c'est rien du tout et passer par Tailscale !

Côté fonctionnalités

Côté ergonomie, franchement ils n'ont pas chômé puisqu'on y retrouve le lecteur intégré avec modes single page, double page, webtoon ou même mode immersif plein écran. Des thèmes light, dark, sepia, + un mode personnalisé en CSS si vous voulez.

Y'a aussi de la synchro de progression de lecture entre tous vos appareils, du coup vous pouvez commencer un chapitre sur le laptop pendant votre pause café et le finir sur le téléphone dans le métro. C'est appréciable au quotidien.

Y'a aussi de la gestion multi-utilisateur avec authentification OIDC pour ceux qui aiment faire les choses bien (et ratings + listes individuels par compte, donc votre meilleur pote peut lire ses romans de Tom Clancy à côté de votre collection de docs techniques sans qu'on les mélange).

Il y a également une surveillance automatique des dossiers pour tout ce qui est import auto et de la recherche full-text avec filtres par métadonnées (titre, auteur, série, genre, langue).

Et si vous avez des enfants, il est possible de mettre en place des restrictions par classification d'âge pour éviter qu'ils ne fouillent dans vos comics de Manara. Et le clou du spectacle spécial barbu, c'est l'export d'annotations vers Obsidian via le plugin officiel pour les nerds du second cerveau.

Kavita propose même une fonction "Send to Kindle" pour balancer un EPUB vers votre liseuse Amazon. Sur Windows, vous pouvez aussi le transformer en service système avec Shawl pour qu'il démarre tout seul au boot, et côté Linux, un docker-compose suffira largement.

Voilà, dans cette jungle bordélique des outils ebooks auto-hébergeables, Kavita se positionne comme une option moderne et stable. Je préfère Kavita à Calibre car l'interface web est carrément plus moderne et hyper fluide à l'usage.

Vous l'aurez compris, côté concurrence, Kavita est historiquement plus orientée mixte ebooks-comics que Komga (qui supporte aussi les EPUB et PDF mais reste très ancré culture comics). Alors si vous hésitez entre les outils du moment, mon tour d'horizon des outils ebooks self-hosted devrait vous éclairer (avec notamment le drame Booklore !!).

Ah et y'a aussi Kavita+, la version premium à 4 $ par mois (2 $ le premier mois avec le code FIRSTTIME) qui ajoutera la sync AniList, des recommandations personnalisées, des collections intelligentes et l'enrichissement de métadonnées automatique. Après, perso, pour un usage classique, je trouve que la version gratuite fait déjà largement le job, mais si vous gérez +50 000 fichiers et que vous voulez pas passer la soirée à taguer des séries entières, là ça peut carrément valoir le coup.

Source

VidStudio - L'éditeur vidéo dans votre navigateur, sans upload

Un éditeur vidéo qui redimensionne, compresse et coupe vos clips... sans rien uploader nulle part, ça vous dit ???

Ça tombe bien puisque VidStudio fait tourner FFmpeg directement dans votre navigateur ! Vous allez sur vidstudio.app, vous déposez votre vidéo, et tout le traitement se fait ensuite côté client. Les fichiers ne quittent jamais votre machine, ce qui fait que niveau vie privée, ça nous change clairement des éditeurs cloud type Clipchamp ou Canva où une partie du traitement passe par leurs serveurs avec toutes les joyeusetés que ça implique côté données.

Sous le capot, le truc tient debout grâce à trois briques. Il y a WebCodecs qui s'occupe du décodage frame par frame pour la timeline, en utilisant les décodeurs hardware du navigateur quand ils sont dispos. FFmpeg compilé en WebAssembly prend ensuite le relais pour l'encodage final et les conversions de format. Et pour le rendu, c'est Pixi.js sur une canvas WebGL, avec un fallback logiciel quand la carte graphique ne suit pas.

Les projets sont sauvegardés dans IndexedDB, du coup vous pouvez fermer l'onglet et revenir plus tard, car tout est conservé et les traitements lourds tournent dans des Web Workers, ce qui évite de geler l'interface quand vous compressez un fichier de 2 Go déjà bien lourd.

Ensuite, côté outils, y'a de quoi faire avec un éditeur multi-piste avec source monitor et la possibilité de parcourir la vidéo à la frame près. Il y a également de quoi redimensionner pour YouTube ou TikTok, un mode batch pour convertir plusieurs vidéos d'un coup, un compresseur avec cible de taille exacte, un extracteur audio, un générateur de thumbnails et storyboards, et un système de watermarks avec positionnement et timing. Les sous-titres sont également gérés, avec possibilité de les incruster dans la vidéo ou de les sortir séparément.

Niveau problèmes que vous pourriez rencontrer avec cet outil, ce sera surtout à cause des codecs HEVC qui galèrent sur Firefox. De plus, les vidéos 10-bit ne passent pas toujours sur Windows, et certains WEBM avec des codecs audio exotiques refusent de charger. Bon après c'est pas grand chose de dramatique pour du contenu classique filmé avec un smartphone ou un appareil photo, mais si vous bossez avec du matos pro en 10-bit, allez plutôt voir ailleurs.

Après si vous aimez ce genre d'outils, dans la famille "traitement vidéo dans le navigateur", VidStudio rejoint Cutia qui mise sur l'open source, et MediaBunny qui propose une bibliothèque bas niveau pour les devs et dont je vous ai déjà parlé. Cependant, je préfère VidStudio qui se positionne plutôt sur du grand public, avec une interface qui ressemble à un vrai logiciel de montage.

Ça tourne d'ailleurs sur smartphone, ce qui est franchement impressionnant. Donc si vous avez juste une vidéo à retoucher vite fait sans passer par une usine à gaz type Adobe Premiere ou Final Cut, ça fera bien le job, et vos fichiers restent sagement au chaud chez vous !

Il charge TOUTES les extensions Firefox dans son navigateur

Vous vous souvenez du mème " Oh, tu aimes les extension Firefox ? Alors nomme les toutes ! " ?

Bah Jack s'est dit que plutôt que les nommer, autant toutes les installer. Oui, les 84 194 extensions d'un seul coup !

Sur le papier c'est pas si compliqué. Tu télécharges les .xpi depuis l'API publique Mozilla (aucune authentification requise), tu les colles dans le dossier extensions/ d'un profil Firefox, tu édites extensions.json pour tout activer. Sauf que l'API de recherche plafonne à 600 pages max, soit environ 30 000 résultats. Du coup Jack a du combiner plusieurs tris pour contourner la limite et chopper les 84 235 extensions existantes, soit 49,3 Go de données au total.

Première tentative dans une VM Windows Tiny11 : le pagefile bouffe malheureusement tout le disque, Firefox gèle, et c'est la fin. Du coup, essai suivant sur Mac avec 6 heures de téléchargement, soit 400 Go d'écritures disque... la fenêtre Firefox s'ouvre mais ne répond jamais ! Entre 4 000 et 6 000 extensions actives certes mais les sites web ne chargent plus (une des extensions bloque tout mais laquelle ??). Bref, plus grand-chose ne répond à part le about:addons.

6 mois plus tard, Jack retente alors l'opération avec une VM. 84 194 extensions chargées, en 1h43 auquel s'ajoute 39 minutes pour que Firefox réécrive le fichier extensions.json (qui pèse du 189 Mo), +24 minutes avant que le navigateur affiche quoi que ce soit, avec une consommation mémoire stabilisée vers 32 Go. La cause du ralentissement est chirurgicale... En fait Firefox sérialise extensions.json en entier à chaque écriture donc ça marche nickel pour 15 extensions mais pour 84 194, c'est pas le même délire.

Le plus intéressant après, c'est pas la démarche elle-même, c'est surtout ce que ça révèle sur le store de Mozilla. En effet, après analyse, 34,3 % des extensions n'ont aucun utilisateur quotidien. 19 % sont totalement abandonnées, sans user, sans review ni capture écran, et encore moins une icône. Y'a aussi des contributeurs un peu chelous comme un certain "Dr. B" qui a publié à lui seul 84 extensions, toutes générées avec Grok 3.

Et puis il y a aussi des extensions de phishing crypto avec des homoglyphes cyrilliques . L'extension malveillante "Іron Wаllеt" par exemple récupère ses URLs depuis un NocoDB trois secondes après installation. Le groupe Innover Online Group contrôle à lui seul plus de 700 000 utilisateurs via un paquet d'extensions de spam affilié sur Yahoo Search. Mozilla en a pour le moment désactivé 3 dans la foulée.

Autre moment drôle : Windows Defender a flaggé HackTools comme cheval de Troie alors que c'est légitime. Y'a aussi la plus grosse extension installée, dmitlichess, qui pèse 196 Mo car elle embarque 2 000 fichiers audio), et la plus petite fait 7 518 octets... sans contenir une seule ligne de code. Bref, y'a des pépites.

Et Jack a publié son dataset en CC0 sur Hugging Face sans oublier que son code est dispo donc si vous avez 50 Go à cramer et envie de faire joujou avec l' écosystème Firefox , servez-vous !

Bref, un Firefox lancé avec TOUTES les extensions du store Mozilla, ça fonctionne techniquement, mais c'est loin d'être utilisable. Mais après pour faire de l'analyse et des stats, je trouve ça marrant.

Source

Qobuz en bit-perfect sur Linux (enfin !!)

Si vous êtes abonné Qobuz et que vous êtes sous Linux, vous connaissez cette douleur sourde qui vous coupe le souffle la nuit : IL N'Y A PAS DE CLIENT OFFICIEL ! Vous êtes donc condamné comme n'importe quel gueux à utiliser le lecteur web, qui est aussi "audiophile-phile" qu'un casque de chantier.

Mais heureusement, QBZ vient régler ça, et vous allez voir, c'est du sérieux !

Il s'agit d'un client natif et open source (sous licence MIT) écrit en Rust avec Tauri 2.0 côté desktop et SvelteKit pour l'interface, ce qui fait que c'est léger, que ça démarre vite, et surtout ça gère le bit-perfect via 4 backends audio au choix : PipeWire, ALSA, ALSA Direct (accès exclusif au DAC) et PulseAudio.

Le switching de sample rate se fait alors à la volée, de 44.1 à 192 kHz, selon ce que votre DAC supporte. Pour les audiophiles... bah ça change tout par rapport au resampling sauvage du navigateur. Ouf, on est sauvé en fait ^^

Côté fonctionnalités, c'est clairement loin du petit projet bricolé un dimanche soir en vibe coding puisque ce lecteur décode nativement FLAC, MP3, AAC, ALAC, WavPack, Ogg Vorbis et Opus, le tout avec du gapless playback et de la normalisation de loudness EBU R128. Je comprends pas tout parce que je suis pas expert là dedans, mais si vous aimez la Hi-Fi, je sais que ça vous parle.

Y'a aussi une gestion de bibliothèque locale avec scan de dossiers et indexation SQLite, et même un import de playlists depuis Spotify, Apple Music, Tidal ou Deezer. Ainsi, si vous migrez vers Qobuz, ça vous fera gagner des heures plutôt que de tout vous retaper à créer à la main !

Niveau intégrations, c'est aussi super complet : scrobbling Last.fm et ListenBrainz, enrichissement MusicBrainz, pochettes via Discogs, contrôle MPRIS et touches média. Et le casting vers Chromecast, DLNA/UPnP et AirPlay est intégré. Le Chromecast directement depuis un client Linux sans bidouille, c'est pas courant, et ça fait plaizzz !

L'interface est également hyper soignée avec 26 thèmes au choix (Dark, OLED, Nord, Dracula, Tokyo Night...) et 17 panneaux de visualisation dont un spectre, un oscilloscope et un spectrogramme. Y'a même un mode immersif plein écran, le tout dispo en 5 langues dont le français.

Pour l'installation, c'est packagé proprement : Flatpak, AUR, Snap, AppImage, DEB, RPM et même un DMG pour macOS (Apple Silicon, expérimental) et si vous êtes sur Arch, un petit yay -S qbz-bin et c'est réglé.

Par contre, il y a quelques limites à connaître comme le seeking sur des pistes hi-res au-dessus de 96 kHz qui peut prendre 10 à 20 secondes. ALSA Direct bloque aussi les autres applis audio (logique, c'est l'accès exclusif). Et le bit-perfect via PipeWire est limité quand on lance le tout en sandbox Flatpak. En fait, le problème c'est que la sandbox bloque l'accès direct au matériel donc si vous voulez le max de qualité, optez pour le paquet natif.

Si Qobuz est votre service de streaming et que Linux est votre OS préféré d'amour, les alternatives payantes comme Audirvana ou Roon ne sont clairement pas données. C'est pour cela que je vous parle de QBZ qui fait le boulot gratuitement comme un chef et dont le développeur (vicrodh) est super actif (il recherche des contributeurs si vous voulez l'aider).

Et un grand merci à Pierre pour le tuyau !

Le plus vieux torrent de The Pirate Bay fête ses 22 ans

Un épisode de la série suédoise High Chaparral, uploadé le 25 mars 2004 sur The Pirate Bay, est toujours partagé aujourd'hui. Vingt-deux ans plus tard, des pirates le seedent encore, non pas pour le contenu, mais juste pour le symbole. Un record de longévité qui en dit long sur la culture du torrent, et sur la résistance du site le plus traqué du web.

Un fichier devenu culte

Tout a commencé par un épisode d'une émission de télé suédoise, High Chaparral, avec un passage du célèbre Uri Geller. Le fichier a été uploadé sur The Pirate Bay le 25 mars 2004, quelques mois après le lancement du site. Et il est toujours là. Selon les données d'OpenTrackr.org, quatre seeders partagent encore le fichier complet en 2026. Personne ne le télécharge pour le contenu, on est d'accord.

C'est devenu un trophée, un petit monument du piratage. Quelques semaines après la mise en ligne, des utilisateurs se plaignaient déjà de rester bloqués à 99 %. Le fichier a failli disparaître, mais des irréductibles l'ont maintenu en vie, année après année.

Des torrents qui refusent de mourir

Le deuxième plus vieux torrent du site date du 31 mars 2004, six jours après. C'est une copie du documentaire Revolution OS, qui retrace l'histoire de Linux et du logiciel libre. Plus de 33 personnes le partagent encore activement. Son réalisateur, J.T.S. Moore, avait d'ailleurs exprimé son mécontentement face au piratage de son film, tout en reconnaissant que ça lui avait donné une longévité inattendue.

Et puis il y a The Fanimatrix, un fan-film inspiré de Matrix, créé en septembre 2003. Celui-là n'est pas hébergé sur The Pirate Bay mais il détient le record du plus vieux torrent actif au monde, avec des dizaines de seeders fidèles au poste. Tourné en Nouvelle-Zélande avec 800 dollars de budget, dont la moitié partie dans un blouson en cuir, il avait été téléchargé 70 000 fois la première semaine.

Si vous vous demandez pourquoi BitTorrent a eu autant de succès à l'époque, voilà un début de réponse : le protocole leur avait économisé environ 550 000 dollars de bande passante.

The Pirate Bay, le survivant

The Pirate Bay a enterré à peu près tous ses concurrents. TorrentSpy, Mininova, isoHunt, KickassTorrents, ExtraTorrent, RARBG, TorrentGalaxy, la liste est longue. Le site tourne encore, même si on ne peut pas dire qu'il soit en grande forme.

L'inscription ne fonctionne plus, les commentaires non plus, et l'interface n'a pas bougé depuis des années. Mais il reste debout, ce qui en soi est un exploit. Ses trois fondateurs, Gottfrid Svartholm, Fredrik Neij et Peter Sunde, ont tous été condamnés en 2009 à un an de prison et 30 millions de couronnes suédoises d'amende. Le site a changé de mains, de serveurs, de pays, mais il est toujours là.

Internet a changé dix fois depuis 2004, les services de streaming se sont multipliés, et des gens continuent de partager un épisode de télé suédoise que personne ne regarde. Juste parce que c'est le plus vieux. On est quelque part entre la résistance numérique et la collection de timbres, version geek. The Pirate Bay lui-même est devenu une sorte de vestige, un site qui fonctionne à moitié mais que personne n'arrive à faire disparaître. Difficile de ne pas trouver ça un peu fascinant.

Source : Torrent Freak

Comment j'ai rendu mon serveur Plex surpuissant et silencieux grâce à un Mac Mini et des SSD Lexar

– Ccontient des liens affiliés Amazon –

Après des années de galère avec un NAS bruyant puis un miniPC pas beaucoup mieux, j'ai fini par trouver la configuration Plex idéale. Un Mac Mini M4 , deux SSD Lexar SL500 , et le silence absolu. Retour d'expérience.

Le bruit, l'ennemi numéro un

J'ai un serveur Plex depuis des années. Un serveur que je partage avec ma famille et mes amis les plus proches, et qui me sert à stocker des films et des séries souvent introuvables sur les plateformes légales, ou des versions numérisées de DVD et Blu-Ray que j'ai achetés, mais que je veux pouvoir streamer sur mon Apple TV. Vous voyez l'idée. Pendant longtemps, tout ça tournait sur un NAS Synology d'entrée de gamme. Ça marchait, mais dès que je voulais transcoder un film pour le regarder à distance, c'était mort. Lecture directe obligatoire, avec les problèmes de débit que ça implique, surtout à l'époque où j'étais encore en ADSL. Il y a trois ou quatre ans, j'ai décidé de monter d'un cran en déportant le serveur Plex sur un miniPC Beelink. Plus de puissance, transcodage enfin possible, bien pratique pour moi à distance ou pour mes proches qui n'ont pas forcément la fibre.

Sauf que toutes ces solutions avaient le même défaut. Le bruit. Entre les disques durs mécaniques, le ventilateur du NAS Synology qui ronronnait en permanence et celui du miniPC Beelink qui se mettait à souffler dès qu'on lui demandait un peu d'effort, c'était toujours pénible. Et comme je n'ai jamais eu la place de planquer tout ça dans un bureau ou un placard technique, le serveur a toujours tourné dans mon salon. Autant dire que les soirs de film, l'ambiance était moyennement au rendez-vous.

Le Mac Mini M4, une bête silencieuse

Et puis il y a quelques semaines, j'ai tout changé. Adios le miniPC, filé à un ami, et place au Mac Mini M4. Ce petit machin tout mignon, complètement silencieux, est une vraie bête de course pour Plex. On parle de quatre à cinq transcodages simultanés sans broncher, avec une sollicitation processeur qui reste sous les 3 à 4%. C'est presque absurde. Le tout en restant frais, sans ventilateur qui se déclenche, sans bruit parasite. Rien. Le silence total.

Pour l'administration, pas besoin d'écran ni de clavier. Tout se fait à distance via l'application Partage d'écran de macOS. Le Mac Mini est branché directement sur ma Livebox, et ça tourne comme une horloge. Et comme bonus, ça me fait un second Mac pour faire des tests quand j'en ai besoin. Pas mal pour une machine qui fait à peine la taille d'une main.

Les SSD Lexar SL500 en remplacement du NAS

Pour compléter le tableau, j'ai déplacé mes données les plus consultées, les films et les séries que ma famille et moi regardons le plus souvent, sur deux SSD SL500 de chez Lexar. Et là, c'est le coup de grâce pour le bruit. Non seulement les ventilateurs ont disparu avec le Mac Mini, mais les vibrations et le ronronnement des disques mécaniques du NAS aussi. Le silence est total. J'ai quand même gardé un NAS Synology en arrière-plan pour stocker les données froides, mon Time Machine et les films que personne ne regarde jamais. Il reste accessible à Plex au cas où, mais il est si peu sollicité qu'on l'entend à peine.

Le résultat, c'est une configuration compacte, silencieuse, et qui gère sans effort tout ce que je lui demande. Le Mac Mini fait tourner Plex comme si de rien n'était, les SSD Lexar offrent des temps d'accès instantanés, et le NAS se contente de dormir dans son coin.

Franchement, si vous êtes du genre à soigner votre setup multimédia à la maison, ce genre de configuration change la vie. Ça a un coût, on ne va pas se mentir, un Mac Mini M4 plus deux SSD externes ce n'est pas donné. Mais le confort au quotidien est incomparable. Plus de bruit, des performances de dingue pour le transcodage, et une machine qui ne chauffe même pas. Si vous avez la possibilité de basculer votre serveur Plex sur un Mac Mini, n'hésitez pas trop longtemps. Moi en tout cas, je ne reviendrais pas en arrière.

Si vous voulez vous équiper, voilà ma config :

Le Geek Code - L'ancêtre des bios Instagram (en ASCII)

Imaginez un monde où votre identité entière tient sur trois lignes de caractères ASCII. Pas de selfie de votre gros nez, pas de bio Instagram mielleuse... mais juste des lettres ASCII, avec des plus et des moins.

Bienvenue en 1993 !!

Le Geek Code, c'est un système d'encodage inventé par Robert A. Hayden, étudiant à Mankato State University dans le Minnesota, qui permettait aux geeks de se décrire entre eux de manière codifiée. Vous colliez ce bloc de symboles dans votre signature Usenet ou email et n'importe quel initié pouvait vous cerner en 10 secondes. La devise du projet ? "More geek, less bullshit". Difficile de faire plus limpide.

En gros, ça fonctionnait comme ça : Le code commençait par la lettre G suivie de votre spécialité : GCS pour "Geek of Computer Science", GMU pour la musique, GED pour l'éducation, GAT si vous étiez bon en tout... y'avait 28 vocations au total. Ensuite venaient des catégories (apparence, compétences informatiques, opinions politiques, rapport à Star Trek) graduées de +++ à ---. Et hop, en une poignée de caractères, votre personnalité complète tenait dans un bloc qui ressemblait à ça :

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GED/J d-- s:++>: a-- C++(++++) ULU++ P+ L++ E---- W+(-) N+++ o+ K+++ w--- O- M+ V-- PS++>$ PE++>$ Y++ PGP++ t- 5+++ X++ R+++>$ tv+ b+ DI+++ D+++ G+++++ e++ h r-- y++**
-----END GEEK CODE BLOCK-----

C'est le bloc de Hayden lui-même. On y apprend qu'il était geek de l'éducation (GED), adepte du t-shirt à message (d--), ultra-compétent en informatique (C++++) mais ne voulait rien savoir d'Emacs (E----). Plus loin, K+++ veut dire fan absolu de Star Trek, 5+++ = accro à Babylon 5, et t- = pas très branché X-Files. Un CV entier en 3 lignes compréhensible uniquement par les initiés... ;)

D'ailleurs, le format reprenait volontairement l'esthétique de PGP, le logiciel de chiffrement, du coup votre identité de geek ressemblait à un message top secret... sauf que tout le monde pouvait le déchiffrer avec les bonnes connaissances.

Le système avait des subtilités assez malines aussi. Le symbole @ signifiait que votre opinion fluctuait, les parenthèses indiquaient une fourchette, le > marquait une aspiration, et le $ voulait dire que vous étiez payé pour ça. Bref, des variables permettant de capturer toute la complexité d'un être humain, qui se retrouvait simplement dans un fichier .sig sur un serveur Usenet. Toute une époque !

Et l'origine du truc est carrément dingue. Hayden s'était en fait inspiré du Natural Bears Classification System, un encodage similaire utilisé par la communauté bear gay, lui-même dérivé de la classification stellaire de Yerkes. Des étoiles aux ours en passant par les nerds... y'a de la poésie là-dedans.

Le code des geeks a connu son heure de gloire entre 1993 et 1996. Un supplément du Washington Post en a même parlé dès 1995, des traductions en japonais et en russe ont circulé, et la version 3.12 de mars 1996 est depuis restée la dernière officielle.

Hayden a promis une mise à jour sur geekcode.com pour le nouveau millénaire. Mais ouais, on attend toujours. Sauf que l'Internet de 1996, comme il l'a lui-même écrit, c'était encore "un paradis vierge de geeks et d'intellos", avant l'arrivée massive du grand public, des bots et des politiciens qui légiféraient sur une techno qu'ils refusaient de comprendre.

Voici d'ailleurs ma bio Geek Code si vous voulez la décoder :

-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GIT d- a+ C+++ UB++ P- L++ M++ W+++ N+ PS++ PE Y++ PGP+ t+ X+++ R tv b+ DI+ D+ G e+ h---- r+++ y++++
------END GEEK CODE BLOCK------

Avec les artefacts numériques des débuts du web qui s'effacent petit à petit, entre les pages Geocities, les compteurs de visites et les MIDI qui jouaient en boucle, le Geek Code reste donc un vestige d'une époque où se revendiquer geek, c'était un acte de résistance et pas un mot-clé sur un profil LinkedIn.

Et je trouve ça dommage que ça se perde tout doucement... Le Geek Code mériterait bien un petit refresh en terme de paramètres pour le rendre actuel et des outils plus récents pour l'encoder / décoder.

Edit : Je viens de trouver une nouvelle version mais aucune idée de ce que ça vaut ...

Après, si ça vous tente de décoder le vôtre ou d'en générer un, il existe encore des encodeurs / décodeurs en ligne et, si vous êtes curieux de savoir à quoi ressemblaient les émissions qui ont forgé cette culture geek , y'a de quoi nourrir la nostalgie ici.

Amusez-vous bien et merci à Alex pour le partage !

Il transforme une carte à 15 euros en station météo sous Windows 95

Un maker français a fabriqué une station météo miniature avec une interface façon Windows 95, logée dans un boîtier imprimé en 3D en forme de vieux moniteur cathodique. Le projet tourne sur une carte ESP32 à une quinzaine d'euros et récupère la météo en temps réel via Wi-Fi. Prévisions, vent, images satellite, tout y est.

Un mini écran façon années 90

Jordan Blanchard a publié son projet sur Hackaday.io et le résultat a de quoi plaire aux nostalgiques. L'interface reprend les codes visuels de Windows 95 : fenêtres avec barres de titre, panneaux biseautés, typographie pixelisée.

On y retrouve la météo du jour, les prévisions heure par heure, la vitesse du vent avec boussole, et même des images satellite et radar. Le tout sur un écran TFT de 2,8 pouces en 320 x 240 pixels, ce qui colle parfaitement au style rétro.

Le boîtier est imprimé en 3D et reproduit la forme d'un petit moniteur cathodique. Un mécanisme a été ajouté sur la face avant pour actionner les boutons physiques de la carte, qui se trouvent à l'arrière.

Une quinzaine d'euros de matériel

La base du projet, c'est un ESP32-2432S028, plus connu sous le nom de Cheap Yellow Display. C'est une carte de développement vendue autour de 15 euros, qui intègre un processeur ESP32 avec Wi-Fi et Bluetooth, un écran tactile TFT de 2,8 pouces, un lecteur micro-SD et un connecteur haut-parleur. Pas besoin de soudure, la carte arrive montée.

Les données météo viennent de l'API Open-Meteo, et le système gère aussi l'affichage d'images de webcams et de satellites. Une batterie lithium avec un module de charge permet de faire fonctionner le tout sans fil.

Du code Arduino en libre accès

Le sketch Arduino est téléchargeable sur la page du projet. Jordan précise avoir utilisé ChatGPT pour l'aider sur certaines parties de l'interface, ce qui est assez courant dans la communauté maker.

Le système utilise du réseau asynchrone pour que l'affichage reste fluide pendant le téléchargement des données, et un cache local en SPIFFS pour garder la météo accessible même sans connexion.

C'est le genre de petit projet qui donne envie de s'y mettre. Pour une quinzaine d'euros de matériel et un peu de temps, on obtient un objet qui a du charme et qui est utile au quotidien. Et puis retrouver l'interface de Windows 95 sur un écran de 2,8 pouces, ça a quand même un petit côté régressif assez plaisant.

Source : Hackaday

Ebooks auto-hébergés - La jungle des outils pour lire librement

Depuis qu'Amazon a supprimé le "Télécharger & transféré via USB" de nos ebooks Kindle en février de l'année dernière je suis triste de fou... Si vous n'avez pas de Kindle, en fait ça veut dire que nos fichiers .azw3 restent prisonniers de l'app Kindle, et qu'il est impossible de les balancer ensuite sur une liseuse Kobo ou dans Calibre. Du coup, si vous voulez garder le contrôle sur vos e-bouquins, faut se retrousser les manches et héberger tout ça soi-même.

Alors voilà le topo pour ceux qui veulent reprendre leur bibliothèque en main.

Le vétéran du game, c'est Calibre . Depuis 2006, une base de données SQLite bien rangée, une communauté énorme et un écosystème de plugins (dont le fameux DeDRM pour récupérer vos ebooks verrouillés ). Le problème c'est que l'interface est restée coincée en 2006 et que la mise en place sur un serveur est plus complexe que les alternatives modernes. Ça marche, mais bon... c'est moche et c'est un peu pénible !

Pour mettre une jolie couche de peinture là-dessus, y'a aussi Calibre-Web qui ajoute une interface web potable. Et la version encore mieux, c'est Calibre-Web Automated (CWA) qui embarque tout dans un seul conteneur Docker (un docker-compose.yml et c'est plié)... avec sync Kobo, import via BookDrop (un dossier surveillé) et conversion EPUB/MOBI/AZW3 automatique. CWA consomme environ 160 Mo de RAM contre plus de 800 Mo pour Booklore (qui en Java peut taper dans le 1 Go+ à vide), ce qui est pas négligeable si vous tournez sur un Raspberry Pi ou un petit VPS.

D'ailleurs, parlons de Booklore . Sur le papier, c'est le Jellyfin des ebooks : metadata auto depuis Google Books, Goodreads et Amazon, sync OPDS avec Kobo et KOReader, Magic Shelves avec filtres automatiques, lecteur intégré pour EPUB, PDF et CBZ... Sauf que le dev a récemment pété un câble. Télémétrie cachée envoyée sans consentement, code largement généré par IA (du "AI slop" c'est-à-dire du code vomi par ChatGPT sans relecture), et quand la communauté a râlé, le mec a répondu en gros "si ça vous plaît pas, désinstallez". Puis il a posté des excuses... générées par ChatGPT. Grosse ambiance ouais ouais.

Pour ceux qui lisent aussi des comics et des mangas, Kavita est une alternative sérieuse. Léger, interface clean, lecteur web rapide, et ça gère aussi bien les EPUB que les CBZ. Y'a aussi Komga dans la même catégorie, plus orienté comics purs. Perso, Kavita est le choix le plus équilibré du lot parce que ça couvre ebooks ET comics sans se prendre la tête. Testé avec des bibliothèques de 50 000 fichiers et plus, ça tient clairement la route.

Et hop, la pépite que beaucoup ignorent c'est Audiobookshelf . À la base c'est fait pour les audiobooks, mais ça gère aussi très bien les EPUB. Le gros avantage c'est qu'un même bouquin peut appartenir à plusieurs séries (genre l'univers Cosmere de Sanderson avec Stormlight Archives ET Mistborn dedans).

Calibre ne le gère pas nativement (faut bidouiller avec des colonnes custom) mais le setup simple, y'a deux ans de retours positifs, et toujours pas de drama en vue.

Côté automatisation maintenant, c'est la zone dans le ter-ter les amis ! Readarr est officiellement abandonné, LazyLibrarian fait le taf mais l'interface est tellement chelou que franchement personne ne comprend ce qu'il regarde. Ah mais y'a aussi le petit nouveau Rreading Glasses , qui est un successeur en alpha (dispo sur Docker Hub ). Donc en attendant mieux, Shelfmark wrappe Prowlarr et pousse directement vos trouvailles vers Booklore ou CWA... ça retire au moins l'étape de la copie manuelle !

Readarr a été remplacé par Rreading-glasses

Je sais, ça fait beaucoup d'outils alors pour vous aider, sachez que le combo qui revient le plus souvent chez les gens qui ont tout essayé c'est CWA pour la gestion et le stockage, Kavita ou Audiobookshelf pour la lecture, et Shelfmark pour la recherche. Bon, c'est pas aussi sexy qu'un Plex clé en main, mais ça marche. Et si vous voulez juste un lecteur multi-plateforme sans vous prendre la tête avec un serveur, Readest est une option open source plutôt pas mal avec sync cross-device.

Bref, gardez un œil sur Rreading Glasses qui promet d'être le Sonarr des livres et en attendant, Calibre reste le cafard du self-hosting : moche, mais indestructible !

Il arrive à lire un LaserDisc avec un simple microscope

Shelby Jueden, un passionné de tech rétro qui anime la chaîne YouTube Tech Tangents, vient de montrer qu'un simple microscope numérique permet de distinguer le contenu vidéo gravé sur un LaserDisc. L'encodage analogique du format rend les données directement visibles sous grossissement, alors que ça ne fonctionne pas du tout avec un CD.

Mais comment ça marche ?

Pour les plus jeunes d'entre vous, un petit rappel s'impose. Le LaserDisc est un format vidéo analogique commercialisé dès la fin des années 1970, bien avant le DVD ou le Blu-ray. 

Contrairement au CD qui stocke ses données en binaire, le LaserDisc encode lui le signal vidéo sous forme de variations dans la longueur des creux gravés sur une couche d'aluminium. Cette particularité produit un léger effet de diffraction qui est en fait visible sous grossissement.

Jueden a utilisé un microscope numérique Andonstar AD246S-P pour examiner la surface de plusieurs disques. Sur un LaserDisc en mode CAV, chaque tour du disque correspond à une image complète.

En comparant les pistes côte à côte, on distingue les variations d'une même ligne vidéo image après image. Et les éléments qui défilent verticalement à l'écran, comme un générique de fin, deviennent reconnaissables sous le microscope.

Du texte lisible sur la surface du disque

La démonstration la plus étonnant a été faite avec le film True Grit. Les crédits de fin, qui scrollent verticalement, apparaissent sous la forme de texte, qui est carrément lisible, directement sur la surface du disque.

Alors bien sûr on ne va pas s'emballer, le microscope ne permet pas de visualiser complètement une image en couleur par exemple, mais la structure analogique est suffisante pour parvenir à distinguer quelque formes et lettres.

Pour ne pas mourir idiot, Jueden a aussi tenté la même expérience avec un CD, mais cette fois rien de lisible. Les données numériques se présentent sous forme de structures répétitives, sans aucune information visuelle exploitable.

Un format oublié mais pas sans qualités

Le LaserDisc n'a jamais vraiment percé. Il a été lancé en 1978 aux États-Unis sous le nom DiscoVision, le format avec ses disques de 30 cm de diamètre n'a pas fait le poids face au VHS, puis face au DVD. Les disques coûtaient cher, n'étaient pas enregistrables, et les lecteurs ne se sont jamais imposés dans les foyers.

Pioneer, dernier fabricant en lice, a arrêté la production en janvier 2009 avec une ultime série de 3 000 appareils. Le format avait quand même ses atouts : premier support optique grand public, son numérique ajouté dès le milieu des années 1980, et une image souvent bien meilleure que le VHS.

Bon en tous cas c'est carrément classe comme démonstration. Là où un CD ou un Blu-ray ne montrent strictement rien d'intéressant sous un microscope, le LaserDisc laisse apparaître ses images gravées dans la matière, sans aucun décodage électronique, et c'est quand même bien rigolo.

Source : The Register

VidBee - yt-dlp en version graphique avec RSS auto

yt-dlp, tout le monde connaît. C'est l'outil parfait pour télécharger des vidéos depuis à peu près n'importe quel site. Sauf que bon, la ligne de commande, c'est pas le truc de tout le monde. Du coup, les interfaces graphiques pour habiller tout ça, y'en a un paquet... mais trouver celle qui est jolie ET sous licence libre, c'est pas gagné.

Heureusement, VidBee est un nouveau venu qui coche pas mal de cases. L'appli tourne sur Windows, macOS et Linux, elle est sous licence MIT, et l'interface est plutôt clean. On colle une URL, on choisit le format MP4 ou MKV, on sélectionne la qualité entre 720p et 8K et hop, ça télécharge.

Fastoche !

Interface principale de VidBee

Bon, jusque-là, vous allez me dire que Stacher7 fait déjà ça. Sauf que VidBee a un petit truc en plus qui vaut le détour : un système de flux RSS intégré. En gros, vous vous abonnez à vos chaînes YouTube préférées via RSS, et l'outil télécharge automatiquement les nouvelles vidéos en arrière-plan. Comme ça, y'a plus besoin de vérifier manuellement si votre créateur favori a sorti un truc. Attention par contre, prévoyez du stockage parce que ça peut vite remplir un disque dur si vous suivez plusieurs chaînes...

Côté technique, ça gère les résolutions jusqu'à la 8K (si votre écran suit), l'extraction audio seule en MP3, les sous-titres dans plus de 50 langues au format SRT, et même le téléchargement de playlists entières ou de contenus privés si vous êtes connecté à votre compte. Y'a aussi un support proxy pour contourner les restrictions géographiques (genre si votre FAI bloque certains sites) et une extension navigateur pour lancer les téléchargements en un clic.

File de téléchargement VidBee

Et pour les plus bidouilleurs d'entre vous, VidBee propose carrément un mode serveur avec une API Fastify et une interface web, le tout déployable en Docker. Perso, c'est ça que je trouve le plus malin. Un docker compose up -d, l'API écoute sur le port 3100, l'interface web sur le 3000, et vous avez votre propre service de téléchargement accessible depuis n'importe quel appareil du réseau local. Attention quand même à pas le rendre accessible publiquement non plus, hein... sauf si vous voulez des ennuis ^^.

Le projet est plutôt actif, codé en TypeScript et basé sur Electron pour le desktop. D'ailleurs, le monorepo inclut aussi une extension navigateur et un site de doc complet. Par contre, c'est encore en développement très actif, du coup y'a forcément des bugs qui traînent par-ci par-là et des trucs qui cassent de temps en temps mais vu la qualité du service rendu, c'est pas bien grave !

Bref, c'est gratuit, c'est open source, et ça marche sur Windows, macOS et Linux. Allez voir !

Merci à Lorenper pour le partage !

25 ans de catch WCW verrouillé par un DRM en carton

C'est fou hein, mais un CD-ROM de catch sorti en 1999 a gardé ses vidéos sous DRM durant 25 piges et tout ça juste parce que le serveur qui filait les clés de déchiffrement a disparu. Du coup personne pouvait plus rien lire.

Jusqu'à maintenant.

Le WCW Internet Powerdisk, c'était un disque promo glissé dans le magazine WCW. 61 clips vidéo de catch dessus, des matchs Hogan vs Goldberg, des profils de Sting, des intros Monday Nitro... le tout en MPEG-1 à 320x240, 30 fps, et audio MP2 mono à 64 kbps. Pour lire ces vidéos, fallait passer par UlPlayer.exe qui allait chercher une clé sur un serveur distant. Et quand le serveur a disparu vers 2000, 51 minutes de contenu sont devenues inaccessibles. Du jour au lendemain. Verrouillé pour TOUJOURS... enfin presque.

Car un dev a décidé de s'attaquer au problème en analysant le programme de chiffrement utilisé à l'époque. Et le chiffrement PAVENCRYPT (oui c'est son petit nom), c'est juste une clé qui boucle sur chaque octet du fichier. Chaque fichier a sa propre clé, mais on est clairement sur du niveau exercice de première année en crypto, dans l'esprit du ROT13.

Et comme les fichiers MPEG-1 ont une structure connue, il suffit de regarder la fin du fichier chiffré pour deviner la clé. Un simple calcul, quelques secondes, et c'est plié. Sauf si le fichier est corrompu (là bon courage).

Résultat, 61 fichiers sur 61 récupérés ! 51 minutes de catch WCW avec des matchs, des promos, des segments scénarisés... tout ça converti en H.264 et mis en ligne sur l' Internet Archive . Le déchiffreur est en Python mais attention par contre, ça ne marche que sur les fichiers .PAV au format PAVENCRYPT, et pas sur n'importe quel chiffrement des années 90 ^^.

D'ailleurs, ce genre de DRM propriétaire des années 90, c'était monnaie courante. Y'a tout un tas de vieux contenus numériques qui pourrissent derrière des verrous obsolètes . Ici la protection a survécu plus longtemps que l'entreprise qui l'a fabriquée, qui a purement et simplement disparu.

Après, le chiffrement était tellement basique que c'est pas non plus un exploit de DINGUE. N'importe qui avec Python et des notions de crypto aurait pu faire pareil, sauf que personne n'avait essayé, donc voila, bravo !!

Comme quoi, un DRM n'a pas besoin d'être costaud pour bloquer du contenu pendant un quart de siècle. Suffit que personne ne s'y intéresse.

AnsiSaver - L'art ANSI des BBS en screensaver macOS

Si vous êtes pété de thunes, vous avez forcément un Mac. Mais surtout, vous avez un écran de veille par défaut qui vous file le cafard... Mais c'était sans compter sur AnsiSaver qui est un écran de veille capable de piocher dans les archives de 16colo.rs , la plus grosse collection d'art ANSI au monde, et qui fait défiler tout ça sur votre écran à 60 fps ! Like a boss !

Pour ceux qui débarquent, l'art ANSI c'est ces dessins réalisés caractère par caractère qu'on affiche dans les BBS (les serveurs communautaires d'avant Internet, en gros). Des artistes passaient des heures à composer des fresques en utilisant les 256 caractères du jeu CP437 ... et le résultat est souvent bluffant. Des logos, des paysages, de la typographie, le tout en mode texte UNIQUEMENT. Y'a même eu des groupes mythiques comme ACiD, iCE ou Blocktronics qui ont marqué le truc à l'époque !

En fait, AnsiSaver récupère ces packs directement depuis 16colo.rs, les met en cache dans ~/Library/Caches/AnsiSaver/ et les affiche via libansilove, une lib C spécialisée dans le rendu CP437. Le tout animé par Core Animation, ce qui est vraiment pas mal du tout pour un screensaver !

Côté options, même si j'ai pas réussi à y accéder (??), vous avez le choix entre 3 modes d'affichage. Le défilement vers le haut, le défilement vers le bas (qui empilent les œuvres et scrollent à l'infini) et le mode fondu enchaîné entre chaque pièce. La vitesse de défilement se règle de 10 à 200 pixels par seconde, et ça supporte les écrans Retina.

Le truc sympa c'est que vous pouvez aussi balancer vos propres fichiers puisque AnsiSaver supporte les .ANS, .ICE, .ASC, .BIN, .XB, .PCB et .ADF... du coup si vous avez une collection perso qui traîne sur un vieux disque dur (ça arrive), ou que vous aimez digger Archive.org, vous faites pointer vers le dossier et c'est réglé.

Pour l'install, c'est hyper simple. Vous téléchargez le .saver depuis les releases GitHub , vous double-cliquez et macOS l'ajoute aux Réglages Système.

Attention, le binaire n'est pas signé, du coup il faudra faire un tour dans Réglages > Confidentialité et sécurité pour l'autoriser au premier lancement. Si ça ne marche pas du premier coup, relancez les Réglages Système. Ça fonctionne sur macOS Sequoia minimum (15.0+) et ça tourne aussi bien sur Apple Silicon que sur Intel.

Si vous cherchez d'autres façons de pimper votre terminal avec des screensavers en mode rétro, y'a de quoi faire. Et si vous êtes plutôt nostalgie CRT et phosphore vert ... pareil.

En multi écran chez moi, ça passe pas partout mais sur MacBook Air, ça a CARRÉMENT de la gueule !

FFmpeg - Comment normaliser le volume audio proprement avec loudnorm

Vous avez déjà remarqué comment le volume varie d'une vidéo à l'autre sur YouTube, ou pire, comment certaines pubs sont 10 fois plus fortes que le contenu ? Bah c'est parce que tout le monde n'utilise pas la même norme de volume. Et si vous produisez du contenu audio/vidéo, c'est le genre de détail qui fait la différence entre un truc amateur et un rendu pro.

La bonne nouvelle, c'est que FFmpeg intègre déjà un filtre qui s'appelle loudnorm et qui gère tout ça automatiquement. La norme utilisée, c'est le LUFS (Loudness Units Full Scale), qui est devenue le standard de l'industrie, et YouTube, Spotify, les TV... tout le monde utilise ça maintenant pour mesurer et normaliser le volume audio.

D'ailleurs, si vous débutez complètement avec cet outil, je vous conseille de jeter un œil à mon guide FFmpeg pour les nuls pour bien piger les bases de la ligne de commande.

Allez, c'est partiii ! Temps estimé : 2-5 minutes par fichier (selon la méthode choisie)

Mais, avant de se lancer dans les commandes, un petit point sur les paramètres qu'on va manipuler. Le filtre loudnorm utilise trois valeurs principales. D'abord I (Integrated loudness), c'est le volume moyen global mesuré en LUFS. La valeur standard pour le streaming, c'est -16 LUFS pour YouTube et Spotify, ou -23 LUFS pour la diffusion broadcast. Ensuite TP (True Peak), le niveau maximal que le signal ne doit jamais dépasser. On met généralement -1.5 dB pour avoir une marge de sécurité. Et enfin LRA (Loudness Range), qui définit la plage dynamique autorisée, généralement autour de 11 dB.

Méthode 1 : Normalisation simple (single-pass)

C'est la méthode la plus rapide, parfaite pour du traitement à la volée :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11 -ar 48000 sortie.wav

Pourquoi ces valeurs : -16 LUFS c'est le standard YouTube/Spotify, -1.5 dB de true peak évite le clipping, et 11 dB de range dynamique garde un son naturel.

Le truc c'est que cette méthode fait une analyse en temps réel et ajuste à la volée. C'est bien, mais pas parfait. Pour un résultat vraiment précis, y'a mieux.

Méthode 2 : Normalisation en deux passes (dual-pass)

Cette méthode analyse d'abord le fichier complet, puis applique les corrections exactes. C'est plus long mais beaucoup plus précis.

Première passe, on analyse :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:print_format=json -f null -

FFmpeg va vous sortir un bloc JSON avec les mesures du fichier (input_i, input_tp, input_lra, input_thresh). Notez-les bien, car vous allez les injecter dans la deuxième passe.

Deuxième passe, on applique avec les valeurs mesurées (remplacez les chiffres par ceux obtenus à l'étape précédente) :

ffmpeg -i entree.wav -af loudnorm=I=-16:TP=-1.5:LRA=11:measured_I=-24.35:measured_TP=-2.15:measured_LRA=8.54:measured_thresh=-35.21:offset=0:linear=true -ar 48000 sortie.wav

Pourquoi cette méthode ? En fait, en passant les valeurs mesurées, FFmpeg sait exactement de combien ajuster. L'option linear=true force une normalisation linéaire plutôt que dynamique, ce qui préserve mieux la dynamique originale.

Pour les fichiers vidéo

Le principe est le même, on ajoute juste -c:v copy pour garder la vidéo intacte sans la ré-encoder :

ffmpeg -i video.mp4 -c:v copy -af loudnorm=I=-16:TP=-1.5:LRA=11 -ar 48000 video_normalise.mp4

D'ailleurs, pour ceux qui veulent automatiser ça à l'extrême, j'avais parlé de FFmpegfs , un système de fichiers qui transcode automatiquement ce que vous déposez dessus. C'est pratique si vous avez une grosse bibliothèque à gérer.

Traitement par lots avec ffmpeg-normalize

Si vous avez plein de fichiers à traiter, y'a un outil Python qui automatise la méthode dual-pass :

pip install ffmpeg-normalize
ffmpeg-normalize *.wav -o output_folder/ -c:a pcm_s16le

Cet outil fait automatiquement les deux passes et supporte le traitement parallèle. Pratique pour normaliser une bibliothèque entière.

Et en cas de problème ?

Erreur "No such filter: loudnorm" : Votre version de FFmpeg est trop ancienne (il faut la 3.1 minimum). Mettez à jour votre binaire.

Le son est distordu après normalisation : Le fichier source était probablement déjà saturé. Essayez de baisser le target (-18 LUFS au lieu de -16) ou augmentez le headroom du true peak (-2 dB au lieu de -1.5).

Voilà, maintenant vous n'avez plus d'excuse pour avoir des niveaux audio qui varient dans tous les sens. Le LUFS c'est le standard, FFmpeg gère ça nativement, et ça prend 30 secondes.

Vos auditeurs vous remercieront.

Source

Street Fighter II - Une faute d'orthographe corrigée grâce au mollet de Guile

Street Fighter II, c'est dans l'esprit de la plupart d'entre nous, 1991, les salles d'arcade qui puent la clope et les pièces de 10 francs qui s'enchaînent... et surtout un écran-titre qui affiche "WORLD WARRIER" au lieu de "WORLD WARRIOR". Ouais, y'avait une coquille dans le titre d'un des jeux de baston les plus légendaires de l'univers et personne ne l'a jamais su !

Magnifique hein ?

Le problème, c'est que sur les bornes d'arcade Capcom CPS1, les graphismes sont gravés dans des puces ROM. Du vrai read-only qu'on grave une bonne fois pour toutes et qu'on ne touche PLUS après. Et en 1991, les puces ROM coûtaient un bras et les délais de production étaient assez dingues... Donc impossible pour Capcom de faire regraver quoi que ce soit même pour une malheureuse lettre.

Nous sommes donc toujours en 1991, à 3 jours de la deadline pour livrer le code ROM (la seule puce encore modifiable à ce stade) et quelqu'un se rend compte du bug.

Horreur malheur ! C'est la panique et tout le monde se met à réfléchir à une solution... Quand soudain, un hack digne des plus belles bidouilles émerge de ces cerveaux endoloris par tant de travail.

Il faut savoir que sur le CPS1, chaque graphisme est découpé en "tiles" c'est à dire des petits carrés de 8×8 pixels. Et le truc important, c'est que chaque tile ne contient pas une lettre entière mais un BOUT de lettre. Le logo "WORLD WARRIOR", c'est en fait une mosaïque de 16 tiles collées les unes aux autres, et chaque carreau contient des fragments des lettres voisines. Impossible donc de toucher à ces carreaux une fois gravés dans la ROM graphique... Mais la table qui dit "colle CE carreau ICI avec CETTE palette de couleurs"... ça, c'était encore modifiable dans la ROM code.

Le hic c'est qu'il fallait composer avec les tiles existantes car pas moyen d'en créer de nouvelles !

Du coup, l'équipe s'est mise à passer au crible les centaines de tiles déjà gravées dans la ROM, une par une, pour trouver des morceaux compatibles avec les bonnes lettres. Et bonne nouvelle... pour certaines tiles, ils ont trouvé des équivalents dans le mot "WORLD" sur l'écran-titre. Et en réarrangeant le puzzle, ils ont réussi à afficher presque tout "WARRIOR" correctement. Presque. Parce que le "i", lui, ressemblait maintenant à un "L" minuscule... il manquait le point mes amis !!

Et c'est là que ça devient du grand art car pour dessiner ce petit point, il leur fallait un carreau avec quasi rien dessus. Ils ont fini par repérer la tile 0x96 dans la ROM... un carré de 8×8 avec UN SEUL pixel allumé dans le coin bas gauche. Ce pixel appartient en fait au mollet de Guile. Ni plus ni moins.

En changeant sa palette (exit la teinte vert kaki, bonjour la couleur du logo), ils l'ont ensuite collé 3 fois au bon endroit pour dessiner le point du "I". Et personne n'a finalement rien capté pendant des DÉCENNIES.

Hé voilà comment, si vous avez joué à Street Fighter II en arcade dans les années 90, vous aviez littéralement un bout de la jambe de Guile planqué dans l'écran-titre sans le savoir. Magnifique non ?

C'est Fabien Sanglard qui a déterré toute cette histoire il y a quelques années, en analysant le code source du CPS1, aidé d'une interview d'Akira Nishitani (un des créateurs du jeu) datant de 1991.

C'est le genre de bidouille qu'on ne fait plus aujourd'hui avec les mises à jour en ligne mais à l'époque, quand la ROM était gravée, c'était FINITO donc fallait se débrouiller avec ce qu'on avait sous la main quand y'avait un souci.

❌