46 lines
2.8 KiB
Python
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}" })
|