Initial commit: source code only

This commit is contained in:
n3wk
2026-08-25 03:07:44 +02:00
commit 06724d7dc1
25 changed files with 2685 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
"""Convert transcript JSON into a readable timestamped txt for LLM analysis."""
import json
import os
import sys
from config import TRANSCRIPT_DIR
from feed import load_episodes
from download import slug as ep_slug
TXT_DIR = os.path.join(TRANSCRIPT_DIR, "txt")
def txt_path(ep: dict) -> str:
return os.path.join(TXT_DIR, ep_slug(ep) + ".txt")
def export_txt(ep: dict) -> str:
tp = os.path.join(TRANSCRIPT_DIR, ep_slug(ep) + ".json")
with open(tp, encoding="utf-8") as f:
data = json.load(f)
os.makedirs(TXT_DIR, exist_ok=True)
out = txt_path(ep)
with open(out + ".tmp", "w", encoding="utf-8") as f:
f.write(f"# {data['title']}\n# published: {data['pub_date']}\n"
f"# episode: {data.get('ep_num')}\n\n")
for seg in data["segments"]:
s = int(seg["start"])
stamp = f"{s // 3600:02d}:{(s % 3600) // 60:02d}:{s % 60:02d}"
f.write(f"[{stamp}] {seg['text']}\n")
os.replace(out + ".tmp", out)
return out
if __name__ == "__main__":
eps = load_episodes()
want = {int(a) for a in sys.argv[1:]} if len(sys.argv) > 1 else None
n = 0
for ep in eps:
if want and (ep["ep_num"] not in want):
continue
src = os.path.join(TRANSCRIPT_DIR, ep_slug(ep) + ".json")
if os.path.exists(src):
print(export_txt(ep))
n += 1
print(f"exported {n}")