Created
August 8, 2016 03:44
-
-
Save wecing/d43af7f8db7c4bfaa308dffaea86416c to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# -*- encoding: UTF-8 -*- | |
# example: | |
# | |
# python mp3tag.py --title-pattern '[0-9]+ - (.*)\.mp3' --artist "王菲" --album "王菲(2001)" --genre "" ~/Downloads/王菲.-.\[王菲2001\].专辑.\(MP3\)/*.mp3 | |
import argparse | |
import taglib | |
import chardet | |
import re | |
import os | |
parser = argparse.ArgumentParser() | |
parser.add_argument('files', type=str, nargs='*') | |
parser.add_argument('--artist') | |
parser.add_argument('--album') | |
parser.add_argument('--genre') | |
parser.add_argument('--title-pattern') | |
parser.add_argument('--write', action='store_true', | |
help='write change sto disk') | |
args = parser.parse_args() | |
for file_name in args.files: | |
f = taglib.File(file_name) | |
if args.artist is not None: | |
f.tags['ARTIST'] = [args.artist] | |
if args.album is not None: | |
f.tags['ALBUM'] = [args.album] | |
if args.genre is not None: | |
f.tags['GENRE'] = [args.genre] | |
if args.title_pattern is not None: | |
m = re.search(args.title_pattern, os.path.basename(file_name)) | |
f.tags['TITLE'] = [m.group(1)] | |
if args.write: | |
f.save() | |
for k in f.tags: | |
print k | |
for v in f.tags[k]: | |
print ' ', v |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment