#!/usr/bin/env python #coding:utf-8 import os import sys import time import datetime from mutagen.mp4 import MP4 reload(sys) sys.setdefaultencoding('utf-8') if __name__ == '__main__': # 1 trkn # 2 disk # 3 titl / genr if len(sys.argv) < 2: print 'tagfix [target]' sys.exit() orig = os.path.basename(sys.argv[1]).split(' ') nums = orig[0] try: disk = int(nums.split('-')[0]) except: disk = 99 try: trkn = int(nums.split('-')[1]) except: trkn = 0 titl = unicode(' '.join(orig[1:]).replace('.mp4', ''), 'utf-8', 'ignore') mpeg = MP4(sys.argv[1]) for field in mpeg.keys(): if field in mpeg: del mpeg[field] mpeg['\xa9alb'] = titl mpeg['\xa9ART'] = titl mpeg['\xa9gen'] = titl mpeg['aART'] = titl mpeg['trkn'] = [(trkn, 0)] mpeg['disk'] = [(disk, 0)] mtime = datetime.datetime.fromtimestamp(int(os.path.getmtime(sys.argv[1]))).strftime('%Y%m%d%H%M') mpeg.save() os.system('touch -t "%s" "%s"' % (mtime, sys.argv[1])) sys.exit(sys.argv[1])