emmental/trier/generate_tracks.py

46 lines
2.8 KiB
Python

# Copyright 2019 (c) Anna Schumaker.
import mutagen
import os
import subprocess
trier = os.path.abspath("trier")
ffmpeg = "ffmpeg -hide_banner -nostdin -f s16le -i /dev/zero -codec libvorbis -loglevel warning".split()
def generate_track(length, filename, tags={}):
path = os.path.join(trier, filename)
os.makedirs(os.path.dirname(path), exist_ok=True)
subprocess.run(ffmpeg + [ "-t", str(length), path ])
fileinfo = mutagen.File(path)
for (key, value) in tags.items():
fileinfo[key] = value
fileinfo.save()
generate_track( 0, "Test Album/00 - Empty Track.ogg")
generate_track(10, "Test Album/01 - Test Track.ogg", { "title" : "Test Track",
"artist" : "Test Artist",
"album" : "Test Album",
"genre" : "Test",
"date" : "2019",
"tracknumber" : "1",
"discnumber" : "1" })
generate_track(15, "Test Album/02 - Test {Disc 2}.ogg", { "Title" : "Test {Disc 2}",
"album" : "Test Album {Disc 2}" })
generate_track(20, "Test Album/03 - Test [Disk One].ogg", { "Title" : "Test [Disk One]",
"album" : "Test Album [Disk One]",
"discnumber" : "2"})
generate_track(25, "Test Album/04 - Test (Disc Two).ogg", { "Title" : "Test (Disc Two)",
"album" : "Test Album (Disc Two)" })
generate_track(30, "Test Album/05 - Test - Disc Three.ogg", { "Title" : "Test - Disc Three",
"album" : "Test - Disc Three" })
generate_track(35, "Test Album/06 - Test;CD Four.ogg", { "Title" : "Test;CD Four",
"album" : "Test;CD Four" })
generate_track(40, "Test Album/07 - Test;CdFive.ogg", { "Title" : "Test;CdFive",
"album" : "Test;CdFive" })
generate_track(45, "Test Album/08 - Test CD 6/10.ogg", { "Title" : "Test CD 6/10",
"album" : "Test CD 6/10" })
generate_track(50, "Test Album/09 - Test {Disc 02}.ogg", { "Title" : "Test {Disc 02}",
"album" : "Test Album {Disc 02}" })
generate_track(55, "Test Album/10 - Test {Disc 20}.ogg", { "Title" : "Test {Disc 20}",
"album" : "Test Album {Disc 20}" })