Puoi salvare sempre con estensione '
png', poi controlli con '
file' se è il formato corretto;
se non lo è, rinomini l'immagine.
(Altrimenti ti servirebbe un lettore di metadati.)
esempio di output di
file:
Codice: Seleziona tutto
8-) file -ib jpg_con_ext_sbagliata.png
image/jpeg; charset=binary
per esempio per uno script che agisce su tutti gli mp3 nella dir corrente e sottodir, come intende VaeVictis:
Codice: Seleziona tutto
#!/bin/bash
# salva le copertine degli mp3 nella directory corrente e sottodirectory
ext_default='png'
while read f;do
ffmpeg -hide_banner -loglevel error -i "$f" -an -c:v copy "$f.$ext_default" < /dev/null
ext=$(file -ib "$f.$ext_default"|grep -Po '/\K.*(?=;)')
[ "$ext" = "$ext_default" ] || mv "$f.$ext_default" "${f%.$ext_default}.$ext"
done < <(find . -type f -iname '*.mp3')
exit
Se vuoi estrarre le copertine dei file selezionati, devi usare l'equivalente di:
CAJA_SCRIPT_SELECTED_FILE_PATHS
che dovrebbe essere:
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
Questo è lo script che ho
provato su mate
Codice: Seleziona tutto
#!/bin/bash
# salva le copertine dagli mp3 selezionati
ext_default='png'
while read f;do
ffmpeg -hide_banner -loglevel error -i "$f" -an -c:v copy "$f.$ext_default" < /dev/null
ext=$(file -ib "$f.$ext_default" | grep -Po '/\K.*(?=;)')
[ "$ext" = "$ext_default" ] || mv "$f.$ext_default" "${f%.$ext_default}.$ext"
done < <(grep '\.mp3$' <<< "$CAJA_SCRIPT_SELECTED_FILE_PATHS")
exit
devi copiare o creare un collegamento allo script nella dir dei nautilus scripts,
con mate è:
~/.config/caja/scripts con nautilus non lo so.
P.s. Naturalmente devi sostituire
"$CAJA_SCRIPT_SELECTED_FILE_PATHS" con
"$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
Ho visto che si possono estrarre anche con
exiftool, ma anche qua va impostato il nome del file
exiftool -picture -b test.mp3 > img