Informatique

Création automatique de répertoires pour rangement de ma théatrothèque

Depuis que j’ai commencé le théâtre, je me suis constitué un stock de pièces de théâtre, de textes anciens ou contemporains, de cours, et d’autres informations pouvant m’aider dans mon apprentissage du métier d’acteur. Jusqu’à maintenant, j’étais le seul à m’en servir, mais depuis peu je suis dans un cours amateur près de chez moi et j’ai partagé cette théatrothèque avec mes chers collègues, qui en ont profité pour l’enrichir à leur tour. Du coup, pour mieux m’y retrouver, j’ai fait du ménage.


Premièrement à coup de Bulk Rename, j’ai renommé tous les fichiers en mettant l’auteur en premier puis un séparateur  » – « , en enfin le nom de la pièce ou du livre.

Pour que les noms soient normalisés, j’ai aussi utilisé l’option « Title » de Bulk Rename pour mettre tous les noms de fichiers en minuscules avec la première lettre de chaque mot en majuscules.

Enfin et surtout j’ai décidé de créer un répertoire par auteur. C’est là que j’ai utilisé deux lignes de commandes magiques que voici (lancées sous Windows via cmder, une console qui comporte quelques commandes Linux)

D’abord je crée une liste de tous les fichiers

  • Ls : liste les fichiers
  • awk : récupère uniquement le nom de l’auteur. Le FS contient le séparateur. Le print $1 imprime le premier champ, donc tout ce qui se trouve avant le séparateur.
  • sort et uniq : permet de trier la liste et de ne conserver qu’un seul nom
  • dir.txt : le fichier dans lequel sera écrit la liste

Ensuite j’ouvre dir.txt pour vérifier que tout est ok et éventuellement nettoyer les scories à la main.

Enfin, une petite commande perl en une ligne que me crée tout ça automatiquement.

Je ne connais pas bien Perl, et je me suis contenté de récupérer cette ligne sur le net, juste en changeant évidemment le nom de fichier.

Et hop, toute une liste de répertoire créée quasi instantanément.

Bon, j’ai finis de déplacer les fichiers manuellement, surtout par flemme de le faire en ligne de commande, mais aussi pour vérifier que tout était ok à chaque fois.

Et hop, une chouette théâtrothèque, bien rangée, et bien partagée via mon Nextcloud, le tout en moins d’une heure, recherches comprises.

Problème de partage de fichier entre Windows 10 et Linux (GVFS et SMB1)

Depuis des années j’utilise mon ordi principal pour partager des fichiers vers mes autres machines, machines virtuelles pour les tests, NVidia Shield pour les vidéos, ou mon laptop sous Linux pour récupérer des fichiers de travail. A un moment, ça a arrêté de fonctionner. J’ai enfin compris pourquoi et c’est le sujet de cet article.


Avec ma Shield, j’utilisais Kodi pour accéder à mes fichiers, sans problème puis d’un coup cela s’est arrêté. J’ai pensé qu’il s’agissait d’un problème avec une nouvelle version de Kodi, donc en attendant j’utilisais VLC en direct qui lui fonctionnait sans problème.

Parallèlement, je joue beaucoup avec des distributions Linux, mais à chaque fois que je voulais m’en servir pour de vrai (par exemple sur mon laptop, sur lequel je ne joue pas), j’avais des soucis. Ce qui me heurte beaucoup en temps que libriste convaincu et qui constitue une vraie barrière pour moi à la démocratisation de Linux sur les machines de Bureau. Soit il s’agit d’un problème de son, ou de drivers vidéos ou surtout d’accès au réseau. Bref, jamais tranquille.

Pourtant, sur les réseaux je suis des libristes et de plus en plus d’entre disent s’ennuyer maintenant parce que tout fonctionne chez eux out-of-the-box. Et pas chez moi, pourquoiii ?

Bref, je profitais récemment d’un nouveau test, cette fois de la distribution FerenOS qui fait sensément tout plus mieux que les autres et le café avec.

Encore une fois le parcours du réseau était impossible, message d’erreur et tout et tout. Sauf que cette fois, j’ai fait une réussite critique en Google-Fu et que j’ai trouvé la solution. Et si le problème vient bien de Linux, la solution se trouve côté Windows.

En effet, suite à un bug dans le backend GVFS, les versions supérieures à smb1 (le protocole utilisé pour la découverte du réseau et le partage de fichier) ne sont pas prises en charge par Linux.

Or, les versions récentes de Windows 10, pour des raisons de sécurité, désactivent smb1, vieux de 30 ans, ce qui est normalement une excellent idée, mais qui dans notre cas précis casse, sans prévenir, l’autre côté.

La solution tient en une ligne.

Ouvrez un terminal Powershell en mode Admin et tapez la commande ci-dessus. L’ordi va redémarrer (violemment et sans vous demander votre avis, GG MS), puis smb1 sera activé.

De retour dans ma VM de test FerenOs, le gestionnaire de fichier Nemo voit instantanément la machine de partage, les partages eux-mêmes et après une demande légitime d’authentification me donne enfin accès aux fichiers convoités, et un double-clic lance une vidéo avec VLC très rapidement et sans buffering.

Je suis un peu embêté pour la conclusion.

En effet, Windows a colmaté un trou de sécurité important, et un bug dans Linux fait qu’on ne peut plus s’y connecter, du coup MS 1 – Linux 0

La correction serait problématique dans un environnement moins personnel que le mien et ne fonctionnera pas dans un environnement où je n’ai pas la maîtrise du serveur.

Il existe des solutions de contournement (notamment monter le partage distant en ligne de commande, ou en passant par le fichier /etc/fstab) mais ce n’est absolument pas user-friendly et contredit, à mon sens, la facilité supposée d’utilisation du bureau Linux.

Si quelqu’un a trouvé une solution plus élégante que la mienne, n’hésitez pas à m’en faire part, en attendant je vais pouvoir remater mes films de vacances, tranquillement, dans mon canap’ jusqu’à la prochaine fois.


Ressources
Un point global sur le sujet
https://forums.linuxmint.com/viewtopic.php?t=322404

Stop using SMB1
https://techcommunity.microsoft.com/t5/storage-at-microsoft/stop-using-smb1/ba-p/425858

Chercher/remplacer par style et wildcards dans Word

Nous avons écrits YxY à plusieurs mains et à cause d’un manque de concertation nous avons chacun utilisé nos propres marques pour spécifier les titres et sous-titres. Mon maquettiste me demande aujourd’hui d’unifier les documents, de supprimer les titres et de les encadrer avec un tag.


Word possède des fonctions de recherches assez puissante et notamment un moteur apparenté Regex pour faire des combinaisons complexes. Mais la doc étant un peu mal foutue, voici comment je m’y suis pris.

Mes titres étaient simplement des styles Word tout bêtes, Titre 1, Titre 2 etc.

L’idée est de remplacer un Titre 1 par son texte seul encadré de tag <A>xxx</A>, un Titre 2 par <B>xxx</B> et un Titre 3 par <C>xxx</C>.

Lancez la recherche Word (ctrl+H).

Cliquez dans la boite Rechercher, puis sélectionnez le menu Format, Style.

Allez chercher votre Titre 1 mais attention, il peut y avoir plusieurs style avec le même nom.

Cochez la case Utiliser les caractères génériques.

Pour récupérer toute la ligne, tapez le code suivant : <(*)^13

  • Le < indique un début de mot.
  • * demande de rechercher entre 0 et n lettres. Normalement il s’arrête au premier espace trouvé, ce qui est gênant si on veut en entier un titre qui comporte plusieurs mots.
  • ^13 est un code qui représente un saut de paragraphe. J’ai cherché sur internet, je ne l’ai pas trouvé dans l’aide.
  • Enfin, les parenthèses () indiquent que toutes les lettres trouvées forment un groupe qui sera réutilisé dans le remplacement.

Dans la case Remplacer, indiquez <A>\1</A>^13

  • <A> et </A> sont les tags dont mon maquettiste a besoin.
  • \1 est un code qui représente le contenu trouvé précédemment par (*).
  • ^13 est un saut de paragraphe.
  • Vous pouvez en profiter pour faire sauter le style en cliquant dans Format, Style et en choisissant le style Normal.

Cliquez sur Remplacer tout et laissez la magie opérer. Refaites la même chose pour chacun des niveaux de titres et hop un document tout propre.

Ne vous laissez pas décourager par le côté technique, c’est vraiment très simple à mettre en place, adaptable, et ça fait peut faire gagner un temps fou.

Ajouter une liste de répertoires au menu contextuel de Windows

Dans le cadre de mon activité informatique, j’utilise quotidiennement un bon nombre de petits logiciels portables, qui sont soigneusement rangés, chacun dans un répertoire. Arrivant à environ 200 logiciels, je les ai rangés par sous-catégories, pour les retrouver rapidement. Chacun son système je suppose, moi j’ai voulu les ranger alphabétiquement. Pour parcourir plus rapidement cette liste, on peut créer un simple raccourci, moi j’ai voulu les mettre dans le menu contextuel. Vu que j’ai un peu galéré, voici comment je m’y suis pris.


Tout d’abord, voici à quoi cela doit ressembler.

Un menu cascadant, puis la liste des répertoires elle-même.

Tout se passe en base de registre. La ruse ici est qu’il faut modifier des clés à deux endroits.

Tout d’abord, lancez Regedit.

Partie 1 – Le répertoire de base

Créez le répertoire principal en allant chercher cette clé.

HKEY_CURRENT_USER\SOFTWARE\Classes\DesktopBackground\Shell

Créez une clé avec le nom que vous voulez.

Créer les valeurs de clé REG_SZ suivantes :

  1. icon : Non obligatoire, permet de mettre une icone personalisée.
  2. MUIVerb : Non obligatoire, permet de mettre un nom différent du nom de la clé elle-même. Par exemple, j’aurais pu mettre « Soft » comme nom de clé, et changer en « Logiciel » grâce à MUIVerb.
  3. Position : prend les valeur « Top », « Middle » et « Bottom ». Elle indique où doit se trouver le menu.
  4. SubCommands : c’est le plus important. Indique les dossiers ou autres objets qui doivent apparaître.

« SubCommands » doit comporter la liste des autres commandes, séparées par un point-virgule. Comme pour le menu principal, il sera possible de changer le nom qui apparait.

Comme dans la base de registre, la liste des sous-commandes va se mélanger avec celles par défaut de windows dans un joyeux bordel, j’ai préfixé chaque commande par le nom du répertoire principal.

Logiciels.A-H;Logiciels.I-P;Logiciels.Q-Z;Logiciels.Autres

Partie 2 – Les sous-commandes

Ca se passe ici :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell

Créez une clé pour chaque sous-répertoire.

Pour chaque clé, créez un REG_SZ MUIVerb pour changer le nom pour quelque chose de plus lisible. Vous pouvez aussi ajouter un Icon comme vu plus haut.

Enfin, créez une clé « command ». Écrit exactement comme ça.

Dans « command », changez l’action par défaut.

Et voilà.

En vrai, c’est pas hyper compliqué une fois qu’on a compris.

Voilà quand même un petit texte qui contient mes modifs. Vous le copiez dans un fichier texte que vous renommez en .reg à la fin, vous le modifiez à votre convenance, et vous double-cliquez dessus pour tout créer d’un coup.

Windows Registry Editor Version 5.00 
[HKEY_CURRENT_USER\Software\Classes\DesktopBackground\Shell\Logiciels]

"Position"="Middle"
"SubCommands"="Logiciels.A-H;Logiciels.I-P;Logiciels.Q-Z;Logiciels.Autres"
"MUIVerb"="Logiciels"
"icon"="explorer.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.A-H]
"MUIVerb"="A-H"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.A-H\command]
@="explorer E:\Logiciels\A-H"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.I-P]
"MUIVerb"="I-P" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.I-P\command]
@="explorer E:\Logiciels\I-P" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Q-Z]
"MUIVerb"="Q-Z" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Q-Z\command]
@="explorer E:\Logiciels\Q-Z" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Autres]
"MUIVerb"="Autres" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Logiciels.Autres\command]
@="explorer E:\Logiciels\zz - Autre"

Télécharger automatiquement une liste de fichiers sur Youtube, et les convertir à la volée.

Toujours à la recherche de petit bout de script marrant et d’automatisation, je suis tombé sur la fonction « recherche » de Youtube-dl, qui marche plutôt pas mal.


Youtube-dl dispose de la fonction peu documentée : « ytsearch » qui permet de faire des recherches automatiquement dans Youtube, ainsi que de télécharger automatiquement le résultat.

Si on ajoute un chiffre, par exemple 5, donc « ytsearch5 », la fonction ira télécharger les 5 premiers résultats de la recherche.

Sous Windows, je me suis écrits le petit script suivant (que j’ai appelé ydlfile) à placer où vous voulez dans votre $PATH.

@echo off
for /f "delims=" %%a in (%1) do youtube-dl -f best -x --audio-format mp3 ytsearch1:"%%a"

Cette simple ligne prend un fichier texte en entrée, dont chaque ligne sera recherchée, téléchargée et convertie en fichier mp3. Plus la recherche est précise, plus vous aurez de chance que le fichier récupéré soit celui que vous vouliez.

Si vous tombez sur le net, par exemple, sur une playlist avec simplement le nom des artiste et le nom d’une chanson, copiez-collez le tout dans un fichier texte, donnez-le à manger au script, et voilà !

Je suis tombé par hasard sur la page de Bon Entendeur, des gens qui font des mixes plutôt sympas en ajoutant des voix de gens géniaux, comme Alexandre Astier ou Blanche Gardin (love absolu sur eux et leur famille pour plusieurs générations). En allant sur leur site, je suis tombé sur une tracklist sans lien.

Un copié-collé plus tard dans un fichier texte (bo.txt par exemple), j’obtiens un truc qui ressemble à ça :

Ensuite un petit ydlfile.bat bo.txt :

Et c’est parti !

Il doit y avoir moyen d’améliorer tout ça, mais je vous laisse le faire.

Transformer un album complet téléchargé sur Youtube en une suite de fichiers musicaux indépendants v2

Il y a quelques semaines, j’avais créé ici-même une procédure que je mets à jour avec de nouveaux outils, plus simples et encore moins de travail manuel.


Commencez déjà par vous familiariser avec l’article initial

1- Téléchargement de la vidéo et conversion en mp3

$ youtube-dl -x --audio-format mp3 <lien vers la video>

Si vous n’aimez pas la ligne de commande, il y a des services comme fluvore qui font le job.

2- Création du fichier CUE

Ce document contient toutes les informations des pistes, durées, artistes etc.

Le site http://cuegenerator.net/ permet de le créer facilement.

Entrez les informations à gauche, le fichier CUE apparaît à droite.

Attention au format des informations dans la tracklist. Il y a un espace entre le timecode et l’artiste, et un tiret « – » entre l’artiste et le titre de la piste.

Je m’y suis pris de la façon suivante (vidéo de 48 sec).

Si les informations sont correctement inscrites, le fichier se met à jour automatiquement à droite. Si tout est bon, cliquez sur Save Cue To File pour le récupérer.

Placez-le dans le même répertoire que le fichier mp3.

3- Conversion

J’ai trouvé l’outil MP3DirectCut qui est léger et portable. Il fait tout un tas de choses, dont la découpe dont nous avons besoin.

Téléchargez et lancez le programme.

Glissez-déposez le fichier CUE sur la fenêtre principale.

Fichier -> Découper selon les index

1 - Indiquez le répertoire où vont se placer les fichiers
2 -  Le nom des fichiers générés, je commence par le numéro de la piste, puis le titre de l'album et l'artiste, et enfin l'artiste de la piste et le titre de la piste. 
3 - Enfin, cochez les case ID3v1 et ID3v2 pour tagguer automatiquement les fichiers. 

Cliquez sur Ok pour générer les fichiers.

Et voilà, encore plus simple et plus rapide.

mp3DirectCut peut aussi s’utiliser en ligne de commande. Il y a sans doute moyen d’optimiser encore.

Hotspot Wifi de dépannage avec Linux Mint

Aujourd’hui je suis responsable informatique depuis quelques semaines dans une nouvelle boîte. Depuis quelques jours, le wifi est tombé dans l’une de nos succursales. Nous utilisons des boitiers spéciaux branchés à un firewall Fortinet. Je ne suis pas responsable de l’infrastructure, mais je trouve étrange de passer autant de temps à réparer quelque chose alors que le service est complètement tombé. Voici donc une petite procédure sans prétention pour monter un point d’accès Wifi en deux secondes et quart.


Premièrement attraper un vieux laptop ou n’importe quelle machine qui dispose d’un port Ethernet et d’une carte Wifi. Pour ma part c’est un Dell 5420 datant de mathusalem qui m’a servi de test. Je ne sais pas si toutes les cartes wifi peuvent se mettre en mode AP mais avec ce portable, ça a fonctionné.

Télécharger le dernier Live USB de Mint, genre là https://linuxmint.com/edition.php?id=261

J’ai pris une Cinnamon mais ça importe peu.

Un coup de Rufus pour copier l’ISO sur une clé USB, puis boot sur le le Live.

Cliquez que Network Connections puis cliquez sur le + pour créer une nouvelle connexion.

Choisissez Wifi puis Create

Indiquez le SSID voulu, probablement le même que celui que vous essayez de remplacer.

Dans Wifi Security, choisissez la sécurité que vous aviez précédemment puis le même mot de passe pour éviter que vous utilisateurs n’aient à remettre tout et que vous ayez what mille appels au support.

Vous sauvez le tout puis vous cliquez dans la liste des connection, Connect to Hidden Network (chelou mais bon..)

Choisissez le nom de la connexion que vous venez de créer puis Connect.

Hop, grande magie, vous avez un hotspot tout neuf qui fonctionne. Vous branchez le tout sur le réseau normal et roule ma poule.

Bon c’est pas une grande portée, plus de 10m de rayon c’est chaud mais ça dépanne le temps de régler le vrai problème.

Dernier point, si vous voulez juste un hotspot avec un nouveau nom (mint) et un mot de passe aléatoire, vous n’avez rien à créer. Booter le le Live CD, ouvrez la liste des connexion et cliquez sur Hotspot. C’est tout. Trois clics et c’est réglé. Mint c’est bien.

Enjoy !

Transformer un album complet téléchargé sur Youtube en une suite de fichiers musicaux indépendants

Des fois y’a des chouettes albums sur Youtube et on aimerait bien les télécharger. Des fois, y’a des gens sympas qui mettent même des timecodes correspondant au moment où commence chaque chanson. Ben avec tout çà on peut se faire un chouette album. Attention, cela est probablement illégal si vous ne possédez pas l’album en question.


Commencez par trouver votre album sur Youtube. Téléchargez-le avec Youtube-dl. Exemple avec Monalbumàmoi

youtube-dl -f best -x extract --audio-format mp3 <lien youtube Monalbumàmoi>

Copiez puis coller les timecodes dans un fichier texte quelconque que vous aurez pris soin de renommer en .cue

Modifier le fichier pour qu’il corresponde à ce format.

PERFORMER "<nom de l'artiste>"
 TITLE "<Titre de l'album>" 
 FILE "<nom du fichier.mp3>" MP3
 TRACK    01  AUDIO   
 TITLE    "<Titre du 1er morceau>"  
 PERFORMER    "<Artiste>"    
 INDEX 01    00:00:00
TRACK 02 AUDIO 
et ainsi de suite

EDIT (07/08/19) : Je suis tombé sur plusieurs sites pour aider à la génération du fichier cue
http://cuegenerator.net/
http://www.stutenandy.de/cue.php?lang=en

Téléchargez cuesplitter. La version 1.2 marche très bien.

Lancez cuesplitter et ouvrez le fichier cue créé.

Si le fichier n’est pas formaté correctement, cuesplitter mettra des warning et indiquera ce qu’il y a à corriger.

Ensuite cliquez sur « Séparez! », selectionnez un répertoire de sortie, et roule ma poule.

Simple et de bon goût.

Télécharger une émission en replay, mais avec Streamlink

Je viens de découvrir une suite d’émission, sur la chaine RTS, appelée « Dans la tête de ». On y parle de différentes personnes, les timides, les surdoués et bien d’autres.

Voulant conserver ces émissions sur mon disque dur plutôt que de dépendre d’une connexion internet capricieuse, j’ai cherché un moyen de les télécharger.


Comme la dernière fois, évidemment pas de dowload possible, ni par le site lui-même, ni par Youtube-DL, ni d’autres solutions connues.

Je vais encore une fois utiliser le mode Inspection de mon navigateur (ici Chrome) pour trouver le fichier manifest. Il s’agit soit d’un fichier manifest.f4m, ou .mpd ou encore .m3u8

Je commence par ouvrir la page d’inspection via un appui sur la touche F12.

Je me rends sur la page en question du site RTS.CH , fait défiler les vidéos et lance celle que je veux récupérer.

Dans l’onglet Network, des adresses défilent. J’arrête la vidéo au bout de quelques secondes et fait une recherche sur les termes manifest, f4m, mpd ou m3u8.

Bingo !

Depuis le dernier article, j’ai découvert l’existence de Streamlink, un logiciel en ligne de commande particulièrement puissant pour jouer ce genre de vidéo. Utile pour une intégration dans un fichier bash par exemple.

Ici, ça devient particulièrement trivial. Après installation du logiciel, j’ouvre un terminal et je lance la commande.

Streamlink est le nom de la commande

Suit l’URL complète copiée précédemment dans l’inspecteur.

Best pour choisir le meilleur format

-o surdoué.mp4 pour écrire le fichier sur le disque dur.

Sans option, ou avec l’option -p en précisant le chemin vers VLC ou MPV, on peut lancer le stream directement dans ces deux players. Pratique pour changer la taille de la fenêtre de rendu, ce qu’on ne peut pas faire sur la page Web.

Quelques minutes après le fichier est téléchargé. C’est d’une simplicité enfantine et je suis étonné de ne pas avoir reperé Streamlink avant. D’ailleurs, je vais sans doute y passer quelques temps à en explorer les possibilités.

Enjoy !

Thunderbird-Lightning 60 / Nexcloud Agenda, synchro ne répond plus

Depuis quelques années, j’utilise un serveur Nextcloud pour gérer mon quotidien administratif, qu’il s’agisse de mes partages de fichiers, de ma galerie de photos ou encore de mes contacts et calendriers. En local, j’utilise Thunderbird ainsi que l’extension Lightning qui synchronise en temps réel avec le serveur. Mon iPhone et lui aussi synchronisé avec le Nextcloud, ce qui me permet de toujours rester à jour.


Je n’avais pas remarqué immédiatement, mais depuis la mise à jour de Thunderbird, la synchronisation ne fonctionnait pas. J’ai mis quelques jours à m’en apercevoir, n’utilisant plus non plus mon iPhone.

Après quelques recherches, il semblerait qu’il s’agisse d’un problème très spécifique lié à un nouveau développement chez Thunderbird, qui ne touche QUE les utilisateurs Nextcloud, autant dire que c’est plutôt précis.

La seule solution actuelle est de désactiver un nouveau paramètre :
network.cookie.same-site.enabled

Dans Thunderbird, cliquez sur Outil, Option. Puis allez dans Avancé, et Éditeur de configuration.

Acceptez l’avertissement qui apparaît.

Enfin, recherchez network.cookie.same-site.enabled et double-cliquez dessus pour le passer à false.

Relancez Thunderbird, la synchronisation devrait fonctionner de nouveau.