site/common.py

53 lines
1.0 KiB
Python
Raw Permalink Normal View History

2020-08-11 16:14:38 +02:00
import json
import time
from subprocess import run
2020-08-11 16:14:38 +02:00
ACRONYM = "sch"
2020-08-11 16:14:38 +02:00
FORMATS = {
"opus": ["-b:a", "48k"],
"m4a": [
"-b:a",
"48k",
"-f",
"ipod",
"-profile:a",
"aac_he",
"-disposition:v:0",
"attached_pic",
],
"oga": ["-b:a", "64k", "-c:a", "libvorbis"],
"mp3": ["-b:a", "96k", "-map", "0:0", "-map", "1:0"],
2020-08-11 16:14:38 +02:00
}
def path_to_episode(name, format):
if format in ["flac", "md"]:
2020-08-11 16:14:38 +02:00
base = "content"
else:
base = "static/episodes"
return f"{base}/{name}.{format}"
def get_episode_info(name, format):
path = path_to_episode(name, format)
return json.loads(
run(
[
"ffprobe",
2020-08-11 16:14:38 +02:00
"-loglevel",
"error",
"-show_format",
"-print_format",
"json",
path,
],
capture_output=True,
).stdout
)["format"]
def sexagesimal(ts):
return time.strftime("%H:%M:%S", time.gmtime(ts)) + str(round(ts % 1, 3))[1:]