Vue lecture

Mediabunny

Une sorte de ffmpeg en JavaScript, pour lire, écrire et convertir des fichiers médias (audio, vidéo) directement dans le navigateur.


Permalink
  •  

Mediabunny

Une sorte de ffmpeg en JavaScript, pour lire, écrire et convertir des fichiers médias (audio, vidéo) directement dans le navigateur.


Permalink
  •  

ScribeOCR - Corrigez vos erreurs d'OCR directement dans le navigateur (en local)

Y’a plein d’images et de scans en PDF sur le net ou sur votre disque dur, qui sont difficilement exploitable / indexables parce que la reconnaissance de caractères n’a pas bien fonctionné. L’OCR automatique a par exemple transformé un mot-clé en charabia et c’est illisible. Du coup, ce passage est perdu dans les limbes et impossible de le retrouver avec une simple recherche textuelle. C’est moche.

Faut dire que le problème est réel car quand on numérise des millions de livres avec un OCR à 90% de précision, ça a l’air génial, sauf que les 10% d’erreurs ne sont pas aléatoires. C’est toujours les mêmes confusions qui reviennent : “A” qui devient “H”, “C” qui devient “G”, “22” qui se transforme en “55”. Et pour les documents historiques avec des polices anciennes, c’est encore pire.

Heureusement, il existe un outil gratuit et open source qui tourne dans votre navigateur et qui va vous permettre de corriger ces milliers d’erreurs OCR sans envoyer vos docs sur les serveurs de Google, Microsoft ou je ne sais quoi d’autre. Cela s’appelle ScribeOCR et vous allez l’adorer !

Pourquoi ? Hé bien parce que c’est un éditeur d’OCR open-source qui tourne à 100% dans votre navigateur, donc aucune donnée n’est envoyée sur le net et parce qu’il est capable de corriger toutes les erreurs efficacement ! L’interface affiche le texte OCRisé par-dessus l’image source, comme ça, vous voyez immédiatement où sont les problèmes et vous corrigez tout ça en série.

Et surtout ScribeOCR génère une police custom pour chaque document. Ça vous laisse garder l’apparence originale du doc, tout en ayant un texte parfaitement indexable pour des recherches par exemple. Vous obtenez ainsi un PDF qui ressemble au document d’origine mais où chaque mot est cliquable et cherchable. Bref, c’est super pratique si vous numérisez des archives ou des vieux bouquins.

L’outil supporte plusieurs moteurs OCR dont Tesseract LSTM et Legacy et vous pouvez ajuster les paramètres de reconnaissance selon le type de document : vitesse, qualité, langue…etc. Y’a même des options avancées pour le debug et l’optimisation des polices.

L’outil permet donc de créer des PDF recherchables à partir de scans (c’est le cas classique) mais également de corriger des données OCR existantes, y compris les fichiers HOCR de Tesseract. Et pour numériser complètement des documents ou livres anciens, l’interface de correction vous aidera à faire de l’excellent travail !

Le projet est open-source (licence AGPL-3.0) , ce qui veut dire que vous pouvez l’auto-héberger si vous voulez. Ainsi, pour l’installer en local, c’est très simple :

git clone --recursive https://github.com/scribeocr/scribeocr.git
cd scribeocr
npm i
npx http-server

Mais si vous voulez juste tester, y’a une démo sur scribeocr.com . Vous uploadez votre fichier, vous choisissez votre langue et votre moteur OCR, et hop c’est parti mon kiki.

Et pour les sorties, vous avez le choix : PDF, DOCX, HTML et d’autres formats. Vous pouvez même ajuster les paramètres d’export selon vos besoins. Auto-rotation, optimisation de police, tout est configurable !

Bref, au final ScribeOCR répare ces angles morts bien relou de la numérisation massive de documents sans que vous ayez à sacrifier votre vie privée !

Et ça c’est cool !

  •  

P2P Media Loader - Le retour discret de BitTorrent dans votre navigateur

BitTorrent c’était le diable dans les années 2000. Y’a eu des procès, des fermetures de trackers, et une guerre totale contre le piratage . Mais ça reste quand même une belle techno, notamment pour certaines plateformes de streaming un peu niche et solutions d’entreprise qui s’en servent discrètement afin d’économiser des millions en frais de CDN.

Car oui, avec le P2P, c’est vous qui payez la bande passante (en partie) ^^.

P2P Media Loader , c’est son nom est donc une lib JavaScript open source qui utilise WebRTC pour faire du streaming vidéo peer-to-peer directement dans votre browser. Vous regardez une vidéo, votre navigateur se connecte à d’autres viewers et vous échangez des segments vidéo entre vous. En gros, c’est comme BitTorrent, mais en version HTML5.

P2P Media Loader est donc la solution parfait pour réduire les coûts de bande passante des plateformes de streaming. Et tout ça de manière totalement transparente !

Techniquement, ça repose donc sur WebRTC et des trackers (comme BitTorrent) qui permettent aux navigateurs de se trouver entre eux ( y’a une démo ici ). Le projet utilise le protocole de signalisation de WebTorrent, ce qui veut dire que vous pouvez utiliser des trackers publics pour débuter, ou installer votre propre tracker si vous voulez gérer des gros volumes.

Et là, ça devient vraiment intéressant niveau scalabilité car avec un petit VPS à 3,50 €/mois et le tracker wt-tracker , vous pouvez gérer jusqu’à 20 000 viewers en simultané. Et si vous passez sur Aquatic (un tracker écrit en Rust), un serveur dédié 8 cœurs à 10-30€/mois peut tenir une charge de 100 000 viewers en simultané. Et si vous êtes vraiment radin (coucou les Auvergnats), Oracle Cloud offre un tier gratuit avec 4 cœurs ARM et 24 Go de RAM qui peut gérer des pics jusqu’à 100k peers sans rien débourser.

Et pour aller au-delà du million de viewers, il faudra passer sur du sharding (découpage en plusieurs trackers) avec différentes stratégies… Soit par contenu, soit par région géographique, soit par hash… Bref, des techniques classiques de distribution de charge, mais appliquées au P2P.

Le truc cool, je trouve c’est que ça fonctionne aussi bien pour du live que pour de la VOD, et même sur les apps mobiles iOS et Android. D’ailleurs, des projets comme PeerTube l’utilisent déjà pour réduire leurs coûts d’hébergement.

Bref, votre browser devient un mini-CDN en tout discrétion et ça permet aux personnes qui montent des infras de streaming, d’économiser de la thune.

Merci à Letsar pour le partage !

  •  

ChronoFrame - Reprenez le contrôle de vos photos

Bon, si vous me lisez depuis loooongtemps, vous connaissez forcément le risque que représentent les métadonnées contenues dans les images que vous partagez en ligne. Oui, je parle bien des fameux EXIFs qui contiennent aussi bien le modèle d’appareil photo utilisé, l’heure précise à la seconde près où vous avez pris le cliché, les réglages de l’objectif, parfois même l’altitude, et surtout les coordonnées GPS exactes de l’endroit où vous étiez.

Et toutes ces données, si vous mettez vos photos en ligne par exemple, chez Google ou Apple, et bien eux les récupèrent et les utilisent. C’est dommage, surtout que ce sont des données qui sont quand même utiles pour peu qu’on garde ça en local sur sa machine.

Alors que faire ?

Hé bien, il existe un logiciel open source sous licence MIT qui s’appelle ChronoFrame . C’est une galerie photo que vous pouvez héberger vous-même, qui va parser automatiquement toutes les données exif de vos clichés, extraire la géolocalisation, faire du reverse géocoding pour identifier le lieu exact et afficher tout ça sur une espèce de carte interactive sur laquelle vous pouvez naviguer pour revoir vos souvenirs de voyage.

En gros c’est comme Google Photo sauf que c’est vous qui gérez vos données et vous contrôlez qui accède à quoi.

L’intérêt de ChronoFrame, c’est qu’il rend visible l’invisible. Vous uploadez une image, ChronoFrame lit les métadonnées, extrait les coordonnées GPS si elles existent, et lance un appel à l’API Mapbox ou MapLibre pour faire du reverse geocoding. Ça, ça veut dire transformer des coordonnées GPS (48.8584, 2.2945) en adresse lisible (“Tour Eiffel, Paris, France”).

Et surtout, ChronoFrame supporte les Live Photos d’Apple ET les Motion Photos de Google. La génération de miniatures, quand à elle, utilise ThumbHash , un algorithme de placeholder ultra-compact créé par Evan Wallace (cofondateur de Figma). Ainsi au lieu de générer plusieurs tailles de miniatures (100x100, 200x200, 400x400…etc), ThumbHash encode une version floue de l’image dans moins de 100 bytes et comme ça, les vignettes se chargent instantanément, et l’affichage est ensuite progressif (flou -> net) jusqu’à ce que l’image full résolution arrive.

L’interface est bien sûr responsive, supporte le touch et la navigation par gestes, et donne une expérience proche d’une app native. Pour la déployer, vous devez créer un fichier .env avec vos variables d’environnement (email admin, mot de passe, provider de stockage, token Mapbox…etc), vous lancez docker pull ghcr.io/hoshinosuzumi/chronoframe:latest, et hop, ça tourne direct.

Le guide de démarrage détaille tout le process et ça vous prendra 5 minutes chrono.

Voici un exemple de configuration minimale :

CFRAME_ADMIN_EMAIL=admin@chronoframe.com
CFRAME_ADMIN_PASSWORD=VotreMotDePasse
NUXT_PUBLIC_MAP_PROVIDER=maplibre
NUXT_PUBLIC_MAP_MAPLIBRE_TOKEN=votre_token_maptiler
NUXT_STORAGE_PROVIDER=local
NUXT_PROVIDER_LOCAL_PATH=/app/data/storage
NUXT_SESSION_PASSWORD=$(openssl rand -base64 32)

Vous pouvez aussi utiliser S3 au lieu du stockage local :

NUXT_STORAGE_PROVIDER=s3
NUXT_PROVIDER_S3_ENDPOINT=https://s3.amazonaws.com
NUXT_PROVIDER_S3_BUCKET=votre-bucket
NUXT_PROVIDER_S3_REGION=eu-west-1
NUXT_PROVIDER_S3_ACCESS_KEY_ID=votre_key
NUXT_PROVIDER_S3_SECRET_ACCESS_KEY=votre_secret

Une fois lancé, vous accédez à l’interface web, vous vous loggez avec votre email/password (ou via GitHub OAuth si configuré), vous allez dans /dashboard, et vous uploadez vos photos.

Voilà, j’ai trouvé ça cool parce que reprendre le contrôle de ses photos, ça veut pas forcément dire supprimer les métadonnées comme je l’ai souvent conseillé. Ça peut aussi vouloir dire décider de qui a accès à ces métadonnées. Car ça reste des informations précieuses et c’est quand même dommage de s’en priver donc autant héberger soi-même ses photos, comme ça vous pouvez les exploiter comme bon vous semble.

Notez que ChronoFrame ne vous aidera pas à supprimer vos EXIFs, mais il existe des outils pour faire ça comme ExifTool ou mat2 . Vous pouvez aussi scripter ça avant d’uploader quoique ce soit sur les réseaux sociaux mais la plupart des gens ne le font pas parce qu’ils ne savent même pas que les données sont là. Je sais aussi que des sites comme X.com retirent certaines des méta données avant de diffuser votre photo publiquement mais ça ne veut pas dire qu’eux ne les exploitent pas en amont pour vous balancer de la pub par exemple…

Voilà, si vous voulez voir ce que ça donne, il y a un site de démo où vous pouvez voir l’interface en action !

Merci à Lorenper pour le partage de cette appli !

  •  

🌬 Vento

Un language de templating pour JavaScript qui vise à rester très simple tout en corrigeant certaines faiblesse des alternatives que sont EJS, Eta, Nunjucks, Mustache, etc.


Permalink
  •  

🌬 Vento

Un language de templating pour JavaScript qui vise à rester très simple tout en corrigeant certaines faiblesse des alternatives que sont EJS, Eta, Nunjucks, Mustache, etc.


Permalink
  •