use ffmpeg for MP3, MPC, and unknown file-type tags
This commit is contained in:
parent
83997bcc57
commit
2b87c4159a
@ -1,55 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
getInfosAPE_version='APE-1'
|
|
||||||
tagreaders+=( "$getInfosAPE_version" )
|
|
||||||
getInfos::APE() {
|
|
||||||
# I was not able to find a decent cli tool to read APE tags.
|
|
||||||
# This is raw but works for the very few MusePack files I got.
|
|
||||||
#
|
|
||||||
# Please tell me if you know of any good tool.
|
|
||||||
tagreader="$getInfosAPE_version"
|
|
||||||
IFS='='
|
|
||||||
while read tag value
|
|
||||||
do
|
|
||||||
IFS="$oldIFS"
|
|
||||||
case $tag in
|
|
||||||
[Aa][Ll][Bb][Uu][Mm]' '[Aa][Rr][Tt][Ii][Ss][Tt])
|
|
||||||
albumartist="$value"
|
|
||||||
;;
|
|
||||||
[Aa][Rr][Tt][Ii][Ss][Tt])
|
|
||||||
artist="$value"
|
|
||||||
;;
|
|
||||||
[Yy][Ee][Aa][Rr])
|
|
||||||
year="$value"
|
|
||||||
;;
|
|
||||||
[Aa][Ll][Bb][Uu][Mm])
|
|
||||||
album="$value"
|
|
||||||
;;
|
|
||||||
[Tt][Ii][Tt][Ll][Ee])
|
|
||||||
title="$value"
|
|
||||||
;;
|
|
||||||
[Tt][Rr][Aa][Cc][Kk])
|
|
||||||
tracknum="$value"
|
|
||||||
;;
|
|
||||||
[Gg][Ee][Nn][Rr][Ee])
|
|
||||||
genre="$value"
|
|
||||||
;;
|
|
||||||
[Cc][Oo][Mm][Pp][Oo][Ss][Ee][Rr])
|
|
||||||
composer="$value"
|
|
||||||
;;
|
|
||||||
[Pp][Ee][Rr][Ff][Oo][Rr][Mm][Ee][Rr])
|
|
||||||
performer="$value"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
IFS='='
|
|
||||||
done < <(
|
|
||||||
IFS="$oldIFS"
|
|
||||||
sed \
|
|
||||||
's/APETAGEX/\n/;s/[\x00\-\x1F]\x00\+/\n/g;s/\x00/=/g' \
|
|
||||||
"$sourcepath/$filename" \
|
|
||||||
| egrep -i \
|
|
||||||
'^(Album Artist|Artist|Year|Album|Title|Track|Genre|Composer|Performer)='
|
|
||||||
)
|
|
||||||
IFS="$oldIFS"
|
|
||||||
}
|
|
||||||
@ -1,27 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
getInfosMP3_version='ID3-3'
|
|
||||||
tagreaders+=( "$getInfosMP3_version" )
|
|
||||||
getInfos::MP3() {
|
|
||||||
tagreader="$getInfosMP3_version"
|
|
||||||
infos=$(
|
|
||||||
soxi "$sourcepath/$filename" 2>/dev/null \
|
|
||||||
| sed 's/ *: /=/'
|
|
||||||
)
|
|
||||||
album=$(gettag album)
|
|
||||||
artist=$(gettag artist)
|
|
||||||
genre=$(gettag genre)
|
|
||||||
title=$(gettag title)
|
|
||||||
tracknum=$(gettag tracknumber)
|
|
||||||
year=$(gettag year)
|
|
||||||
expr='^[0-9]*$'
|
|
||||||
if [[ $genre =~ $expr ]]
|
|
||||||
then
|
|
||||||
genre="${id3genres[$genre]}"
|
|
||||||
fi
|
|
||||||
infos="${infos/: /=}"
|
|
||||||
channels=$(gettag channels)
|
|
||||||
rate=$(gettag 'sample rate')
|
|
||||||
bitrate=$(gettag 'bit rate')
|
|
||||||
bitrate=${bitrate%%.*}
|
|
||||||
bitrate=${bitrate%k}
|
|
||||||
}
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
getRateChannelMPC() {
|
|
||||||
while read key value garbage
|
|
||||||
do
|
|
||||||
case $key in
|
|
||||||
'samplerate:')
|
|
||||||
rate=$value
|
|
||||||
;;
|
|
||||||
'channels:')
|
|
||||||
channels=$value
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done < <(
|
|
||||||
mpcdec "$sourcepath/$filename" -i 2>&1
|
|
||||||
)
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
getRateChannelSoxi() {
|
|
||||||
rate=$(soxi -r "$sourcepath/$filename" 2>/dev/null)
|
|
||||||
channels=$(soxi -c "$sourcepath/$filename" 2>/dev/null)
|
|
||||||
}
|
|
||||||
@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
getTags_version='unknown-3'
|
getTags_version='unknown-4'
|
||||||
tagreaders+=( "$getTags_version" )
|
tagreaders+=( "$getTags_version" )
|
||||||
getTags() {
|
getTags() {
|
||||||
unset type
|
unset type
|
||||||
case "$mimetype" in
|
case "$mimetype" in
|
||||||
audio/mpeg)
|
audio/mpeg)
|
||||||
type=MP3
|
type=ffmpeg
|
||||||
;;
|
;;
|
||||||
'application/ogg opus')
|
'application/ogg opus')
|
||||||
type=Opus
|
type=Opus
|
||||||
@ -20,20 +20,7 @@ getTags() {
|
|||||||
type=ffmpeg
|
type=ffmpeg
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
extendedtype=$(file -b "$sourcepath/$filename")
|
type=ffmpeg
|
||||||
case "$extendedtype" in
|
|
||||||
*' ID3 '*)
|
|
||||||
type=MP3
|
|
||||||
;;
|
|
||||||
*'Musepack '*)
|
|
||||||
getRateChannelMPC
|
|
||||||
tryAPE
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
getRateChannelSoxi
|
|
||||||
tryAPE
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [ -n "$type" ]
|
if [ -n "$type" ]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user