分页: 1 / 2

mp3批量重命名脚本

发表于 : 2008-06-15 0:29
xiooli
RT

将乱七八糟的音乐文件名重命名为 标题-艺人.扩展名 的格式(当然要确认你的音乐文件有标签);不满意还可以从记录文件里面恢复命名。

用法看代码里面

代码: 全选

#!/bin/bash
# coded by xiooli
#用法:
#	1,重命名:先cd到你的音乐目录,然后在终端里运行脚本mrename,将会对当前目录的所有拥有标签
#的音乐进行重命名,格式为:标题-艺人.扩展名,改名对应情况会记录在当前目录下的 remane-时间.list 文
#件里,方便恢复;
#	2,恢复原名:mrename -r ./remane-时间.list
#注意:
#	需要安装python-mutagen包,运行时会更新音乐标签的编码为当前locale。

rename() {
	list="rename-$(date +%m-%d-%k-%M).list"
	>"$list"
	ls |while read name;do
		ar=`mid3v2 -l $name |grep TPE1 |sed 's/^.*=//'`
		ti=`mid3v2 -l $name |grep TIT2 |sed 's/^.*=//'`
		tl=`echo $name |sed 's/^.*\.//'`
		[ "$ti" ] && mid3iconv -e gb2312 "$name"
		[ "$ti" ] || continue
		[ "$name" != "$ti-$ar.$tl" ] && mv "$name" "$ti-$ar.$tl" &&\
		echo -e "重命名\033[;32m <$name> \033[0m为\033[;32m <$ti-$ar.$tl> \033[0m" \
		&& echo "$name:$ti-$ar.$tl" >>"$list"
	done	
	
}
recover() {
	for lst in `cat $1 |sort |uniq`;do
		nm1=`echo $lst |sed 's/^.*://'`	
		nm0=`echo $lst |sed 's/:.*$//'`
		[ -e "$nm1" -a ! -e "$nm0" ] && mv "$nm1" "$nm0" &&\
		echo -e "恢复\033[;32m <$nm1> \033[0m为\033[;32m <$nm0> \033[0m"
	done
}

if [ "$1" = "-r" ];then
	echo "即将从 "$2" 中恢复命名"
	read -p "确认?y/n :" a
	if [ $a = "y" ];then
		[ "$2" ] && recover "$2"
		[ "$2" ] || echo "未选择list文件!"
	else
		exit
	fi
else
	echo "即将重命名当前文件夹的所有音乐"
	read -p "确认?y/n :" b
	[ $b = "y" ] && rename
fi

发表于 : 2008-06-15 0:42
flyinflash
还是 amarok 直接修改省事、方便

发表于 : 2008-06-15 0:47
eexpress
标题-艺人经常不标准的。没见你检查文件的存在,可能覆盖的。
mid3iconv -e GBK吧。别gb2312。
记得有一个软件,作了这工作的。你的可能重复了。

发表于 : 2008-06-15 1:22
flyinflash
网上下载的MP3标签乱七八糟,还有广告信息。

to .ogg 后全部手动改最好,一劳永逸。

发表于 : 2008-06-15 2:28
qiang_liu8183
出发点是好的,但是没什么意义,一个easytag轻松搞定

发表于 : 2008-06-15 10:48
xiooli
:em21 :em21 筒子们都打击俺啊

发表于 : 2008-06-15 10:52
solcomo
:em17

发表于 : 2008-06-15 13:28
flyinflash
写个批量 mp3 to ogg + GTK/qt 吧,绝对正点

viewtopic.php?p=798567#798567

发表于 : 2008-06-15 13:45
solcomo
:D 大部分都可以
有几个不行

como@Lethe:~/Music$ mid3v2 -l 10\ Track.mp3
IDv2 tag info for 10 Track.mp3:
TLEN=243200
TPE1=Manau
TIT2=Mais qui est la belette

como@Lethe:~/Music$ mid3v2 -l 01.\ Life\ In\ Mono.mp3
IDv2 tag info for 01. Life In Mono.mp3:
TALB=Formica Blues
TRCK=1
TXXX=DISCID=840c780a
TPE1=Mono
TIT2=Life In Mono

发表于 : 2008-06-15 13:53
xiooli
solcomo 写了::D 大部分都可以
有几个不行

como@Lethe:~/Music$ mid3v2 -l 10\ Track.mp3
IDv2 tag info for 10 Track.mp3:
TLEN=243200
TPE1=Manau
TIT2=Mais qui est la belette

como@Lethe:~/Music$ mid3v2 -l 01.\ Life\ In\ Mono.mp3
IDv2 tag info for 01. Life In Mono.mp3:
TALB=Formica Blues
TRCK=1
TXXX=DISCID=840c780a
TPE1=Mono
TIT2=Life In Mono
黑黑,将就了,就是方便我批量改名的,我反正是懒得一个个去改,有少量改错的就手工改咯。 :D

Re: mp3批量重命名脚本

发表于 : 2010-09-17 9:23
crazydevil
:em06 :em06 :em06 :em06 :em06 :em06


ddevil@ddevil-laptop:/media/multimedia/music/Chinese songs$ ./mrename
bash: ./mrename: Permission denied

ddevil@ddevil-laptop:/media/multimedia/music/Chinese songs$ chmod +xxx mrename
ddevil@ddevil-laptop:/media/multimedia/music/Chinese songs$ ls -l mrename
-rwxr-xr-x 1 ddevil ddevil 1535 2008-06-15 12:10 mrename
ddevil@ddevil-laptop:/media/multimedia/music/Chinese songs$ ./mrename
bash: ./mrename: Permission denied
ddevil@ddevil-laptop:/media/multimedia/music/Chinese songs$


运行不鸟呀 :em20 :em20

Re: mp3批量重命名脚本

发表于 : 2010-09-17 9:30
wean
Easytag表示很有鸭梨 :em27

Re: mp3批量重命名脚本

发表于 : 2010-12-04 10:43
yyxl
NaviBar

Re: mp3批量重命名脚本

发表于 : 2010-12-08 15:47
tusooa
remane-时间.list => rename-时间.list

Re: mp3批量重命名脚本

发表于 : 2011-09-30 23:25
ybdx2000
为什么不用鼠标右键重命名?