[READ-ONLY] Mirror of https://github.com/probablykasper/vidl. CLI for downloading video/audio pypi.org/project/vidl
audio cli downloader metadata package video
0

Configure Feed

Select the types of activity you want to include in your feed.

Add m4a metadata support

Kasper (Sep 18, 2022, 12:29 AM +0200) 8495b27c 94c81954

+29 -1
+1 -1
vidl/dl.py
··· 64 64 def download(options): 65 65 """Accepts an `options` dict, but there's no validation and all options must be present. Look inside `parse_cli_options()` for an example options object.""" 66 66 67 - metadata_formats = ['mp3', 'wav', 'opus'] 67 + metadata_formats = ['mp3', 'wav', 'opus', 'm4a'] 68 68 if options['download_folder'] == None: 69 69 log.error("No download_folder is set in the vidl config file") 70 70 return
+28
vidl/md.py
··· 1 1 import mutagen 2 2 from mutagen.id3 import ID3, TIT2, TPE1, TALB, TPE2, TRCK, TCON, TDRC, COMM, USLT, TCOM 3 3 from mutagen.oggopus import OggOpus 4 + from mutagen.mp4 import MP4 4 5 from pprint import pformat 5 6 from vidl import log 6 7 ··· 12 13 id3(filename, md) 13 14 elif file_format == "opus": 14 15 opus(filename, md) 16 + elif file_format == "m4a": 17 + m4a(filename, md) 18 + 15 19 16 20 for key, value in md.items(): 17 21 whitespace = ' ' * (13 - len(key)) ··· 68 72 if 'composer' in md: tags["COMPOSER"] = md['composer'] 69 73 70 74 file.save(filename) 75 + 76 + def m4a(filename, md): 77 + try: 78 + file = MP4(filename) 79 + tags = file.tags 80 + except mutagen.MutagenError: 81 + return None 82 + 83 + if 'title' in md: tags["\xa9nam"] = md['title'] 84 + if 'artist' in md: tags["\xa9ART"] = md['artist'] 85 + if 'album' in md: tags["\xa9alb"] = md['album'] 86 + if 'album_artist' in md: tags["aART"] = md['album_artist'] 87 + if 'track_number' in md: 88 + tags["trkn"] = (md['track_number']) 89 + if 'track_count' in md: 90 + tags["trkn"] = (md['track_number'], md['track_count']) 91 + if 'genre' in md: tags["\xa9gen"] = md['genre'] 92 + if 'year' in md: tags["\xa9day"] = md['year'] 93 + 94 + if 'comment' in md: tags["\xa9cmt"] = md['comment'] 95 + if 'lyrics' in md: tags["\xa9lyr"] = md['lyrics'] 96 + if 'composer' in md: tags["\xa9wrt"] = md['composer'] 97 + 98 + file.save(filename)