|
@@ -11,9 +11,11 @@ TRACK_UUID_ID3_OWNER_ID = 'symuid'
|
|
|
|
|
|
# TODO http://mutagen.readthedocs.io/en/latest/api/mp4.html
|
|
|
|
|
|
+
|
|
|
def generate_uuid():
|
|
|
return subprocess.check_output(['uuid', '-v', '4', '-F', 'BIN']).strip()
|
|
|
|
|
|
+
|
|
|
def get_uuid(id3_tags):
|
|
|
assert isinstance(id3_tags, mutagen.id3.ID3)
|
|
|
ufids = id3_tags.getall('UFID')
|
|
@@ -22,6 +24,7 @@ def get_uuid(id3_tags):
|
|
|
return ufid.data
|
|
|
return None
|
|
|
|
|
|
+
|
|
|
def get_or_assign_uuid(id3_tags):
|
|
|
uuid = get_uuid(id3_tags)
|
|
|
if uuid is None:
|
|
@@ -37,16 +40,19 @@ def get_or_assign_uuid(id3_tags):
|
|
|
assert uuid is not None
|
|
|
return uuid
|
|
|
|
|
|
+
|
|
|
def symuid(track_path):
|
|
|
f = mutagen.File(filename=track_path)
|
|
|
print(get_or_assign_uuid(f.tags))
|
|
|
|
|
|
+
|
|
|
def _init_argparser():
|
|
|
import argparse
|
|
|
argparser = argparse.ArgumentParser(description=None)
|
|
|
argparser.add_argument('track_path')
|
|
|
return argparser
|
|
|
|
|
|
+
|
|
|
def main(argv):
|
|
|
argparser = _init_argparser()
|
|
|
args = argparser.parse_args(argv[1:])
|