#!/usr/bin/python3 """Prefix year onto titles for mp3 files.""" import sys import eyed3 def usage(retval): """Output a usage message.""" if retval: write = sys.stderr.write else: write = sys.stdout.write write('Usage: {} --year 2017 --files 1.mp3 2.mp3\n'.format(sys.argv[0])) sys.exit(retval) def process_mp3(year, filename): """Process one mp3 file.""" print('Prepending year {} to mp3 file {}'.format(year, filename)) audiofile = eyed3.load(filename) audiofile.tag.album = '{}-{}'.format(year, audiofile.tag.album) audiofile.tag.save() def main(): """Prepend years to album names.""" year = None filenames = [] while sys.argv[1:]: if sys.argv[1] == '--year': year = sys.argv[2] del sys.argv[1] elif sys.argv[1] == '--files': filenames = sys.argv[2:] del sys.argv[2:] elif sys.argv[1] in ('-h', '--help'): usage(0) else: sys.stderr.write('{}: Unrecognized option: {}\n'.format(sys.argv[0], sys.argv[1])) usage(1) del sys.argv[1] if year is None: sys.stderr.write('{}: --year is a required option\n'.format(sys.argv[0])) usage(1) if not filenames: sys.stderr.write('{}: --files is a required option\n'.format(sys.argv[0])) usage(1) for filename in filenames: if filename.endswith('.mp3'): process_mp3(year, filename) else: sys.stderr.write('{}: Unrecognized file type: {}\n'.format(sys.argv[0], filename)) sys.exit(1) main()