Création NFO automatique linux
-
Merci pour ce script.
J’aimerais conserver le mediainfo de tous mes fichiers qui sont tous en mkv.
J’utilise Jellyfin qui me crée déjà des .nfo et que je ne veux surtout pas écraser.
Il y a aussi tous les fichiers .jpg/.png (à exclure) qui accompagnent chacun de mes fichiers .mkvJe souhaiterais créer une extension spécifique, par exemple .media et uniquement pour les .mkv et ceci de manière récursive.
Quel serait le script ?
Merci d’avance
-
Salut,
Un script à télécharger en .rar sur uptobox ? oO
Voici le script pour les suivants :
#!/bin/bash # Nom du script .. : nfo.sh # Date ........... : 05.2016 # Version......... : 1.0 # Auteur ......... : pcccp # Description .... : Cr�ation NFO automatique # Prerequis ...... : mediainfo # Execution ...... : "sh nfo.sh" ls >>temp.txt while read ligne do mediainfo --LogFile="$ligne".nfo "$ligne" done < temp.txt rm temp.txt rm temp.txt.nfo rm nfo.sh.nfo
@bikr0nek tu remplaces .nfo par .media
-
Salut @All
@bikr0nek
Voici un script récursif et qui ne traite que les fichiers .mkv#!/bin/bash # # script : mynfogen # author : foque411 EXTSRC=.mkv EXTTGT=.media TMPFILE=$HOME/.tmp-script.tmp CPATH=`pwd` function f_substrext() { local _rc=$(echo "$1"|sed "s/$2$/$3/;" -) echo "$_rc" } if [[ $# -eq 0 ]]||[[ -z $1 ]]; then echo "Usage : $0 [path]" echo " use . for current path" exit 2 fi FCHAR=`expr substr $1 1 1` if [[ "$FCHAR" == "/" ]]; then PPATH="$1" else PPATH=`pwd`"/$1/" fi PPATH=`echo $PPATH|sed 's#//#/#g;' -` if [[ -d "$PPATH" ]]; then cd "$PPATH" if [[ -f "$TMPFILE" ]]; then rm -f "$TMPFILE"; fi find . -type f -name "*$EXTSRC" -exec echo "$PPATH{}" \; >> "$TMPFILE" 2>/dev/null while read LINE do mediainfo --LogFile="`f_substrext "$LINE" "$EXTSRC" "$EXTTGT"`" "$LINE" 1>/dev/null 2>&1 done < "$TMPFILE" if [[ -f "$TMPFILE" ]]; then rm -f "$TMPFILE"; fi cd "$CPATH" fi exit 0
Utilisation : copier le script “mynfogen” dans un répertoire de l’utilisateur (par exemple /home/foque/mynfogen)
Exécution :
# répertoire en cours & sous-répertoires bash /home/foque/mynfogen . # répertoire & sous-répertoires en chemin abslou bash /home/foque/mynfogen /home/foque/media/film # répertoire & sous-répertoires en chemin relatif au répertoire courant bash /home/foque/mynfogen media/film
Naturellement il faut que l’utilitaire mediainfo soit installé et accessible dans le PATH, pour tester
mediainfo --Version
edit 15H :
- Maj du script
- Testé et validé sur ubuntu
- Testé et validé sur Nas Qnap
-
-
@bikr0nek a dit dans Création NFO automatique linux :
Donc, je copie le script dans la racine du dossier/volume souhaité.
et j’execute media.sh . ?bash $(pwd)/media.sh .
nota : le fichier media.sh doit être un fichier texte au format unix/linux (unix/linux et windows n’utilisent pas la même séquence de caractères pour le retour à la ligne), donc pas de copier/coller par windows …
Sauf si on utilise un éditeur de texte qui gère le multi-format comme notepad++ par exemple et que l’on convertit au bon format.edit : si besoin, utilise cette commande dans le dossier qui contient le fichier media.sh pour le convertir du format windows vers le format linux
sed -i 's/\x0D$//g;' ./media.sh
-
-
@bikr0nek a dit dans Création NFO automatique linux :
@foque411 Merci
Karma +1
Script maj dans mon 1er commentaire pour générer des fichiers film.media au lieu de film.mkv.media
-
bonsoir
au pire j’ai pour Windows
la création de nfo a la volée. -
-
Ca fonctionnait très bien.
Mais en utilisant à nouveau le script j’ai ces messages d’erreurs:
/volume4/video4$ sh media.sh .
media.sh: line 34: /var/services/homes/monuser/.tmp-script.tmp: No such file or directory
media.sh: line 41: /var/services/homes/monuser/.tmp-script.tmp: No such file or directory -
C’est simple : c’est un script bash et non pas sh
bash et sh n’utilisent pas le même shell donc tu relances le script comme indiqué plus tôt:
bash media.sh .
edit : après j’ai voulu suivre la logique du 1er script mais le plus simple pour utiliser un script est
1 - rendre le script exécutable
chmod u+x ./media.sh
2 - lancer directement le script (le shell par défaut sera utilisé automatiquement)
./media.sh .
Plus besoin de se demander si c’est du bash ou du sh ou autre…
-
@foque411 Je commence à comprendre, mais je suis un vrai noob.
Je n’avais pas placé media.sh dans /home/user/scriptmedia, mais dans la racine du volume où je voulais l’executer.
C’est désormais fait.
Maintenant quand je lance depuis /home/user/
bash media.sh /volume1/video1/
toute l’arborescence sera traitée.
Merci
P.S.: Je reçois au lancement
find: `./@eaDir/[email protected]’: Permission denied
mais ça fonctionne très bien.
-
Ah tu es sous DSM ? J’avais manqué l’info. Dans ce contexte c’est pas grave, heureusement.
-
@bikr0nek a dit dans Création NFO automatique linux :
P.S.: Je reçois au lancement
find: `./@eaDir/[email protected]’: Permission denied
mais ça fonctionne très bien.Bien vu, il y a eu une perte dans la modification du script. J’ai édité le script pour corriger ce problème.
Tu peux placer le script où tu veux, du moment que tu indiques le bon chemin vers les fichiers mkv.
-
-
@bikr0nek a dit dans Création NFO automatique linux :
Bonjour, ce script fonctionne vraiment bien, quel gain de temps.
Je me suis rendu compte que mes fichiers mp4 et avi (eh oui il m’en reste encore, des vieux trucs introuvables) ne sont pas analysés.Est-ce qu’il est possible de faire un tout en un ?
Merci
-
@bikr0nek C’est normal, ça se passe en ligne 6: EXTSRC=.mkv
Il suffit de changer .mkv par .avi, puis par .mp4 pour compléter la liste.
-
-
@bikr0nek Bien sûr, mais ça serait plus classe de le modifier pour checker les 3 extensions…
-