Explorer
/opt/struktur/AA-043-P34-R1-reconstruct.py
← Zurück ↓ Download
import sqlite3,json,os
K='/opt/struktur/youtube-research/knowledge.db'; CE='/opt/struktur/content-extraction/data/content_extraction.db'
ids=[54,65,68,71,78,80,90,97,100,102,117,119,128,134,140,195,196,251,256,258,293,299,300,301,307,311,319]
for label,path in [('K',K),('CE',CE)]:
 c=sqlite3.connect('file:'+path+'?mode=ro',uri=True); c.row_factory=sqlite3.Row
 print('DB',label)
 if label=='K':
  for vid in ids:
   out={'video_id':vid}
   for t in ['chapters','video_links','e2e_jobs','e2e_extractions','transcript_segments','processing_runs','graphiti_import_queue']:
    try:
     cs=[r[1] for r in c.execute('pragma table_info('+t+')')]
     col='video_id' if 'video_id' in cs else None
     if col:
      n=c.execute('select count(*) from '+t+' where video_id=?',(vid,)).fetchone()[0]
      if n: out[t]=n
    except: pass
   print(json.dumps(out))
 else:
  for vid in ids:
   out={'source_video_id':vid}
   for t in ['ce_sources','ce_items']:
    cs=[r[1] for r in c.execute('pragma table_info('+t+')')]
    if 'source_video_id' in cs:
     rs=c.execute('select id,youtube_id,title,youtube_url,transcript_status,obsidian_artifact_path,source_snapshot_hash,transcript_hash,content_hash from ce_sources where source_video_id=?',(vid,)).fetchall()
     if rs: out['ce_sources']=[{k:(str(x[k])[:180] if isinstance(x[k],str) else x[k]) for k in x.keys()} for x in rs]
   print(json.dumps(out,ensure_ascii=False))
 c.close()
# source/registry exact numeric lookup
c=sqlite3.connect('file:'+K+'?mode=ro',uri=True); c.row_factory=sqlite3.Row
for t in ['source_processing_registry','source_versions','reconciliation_decisions','graphiti_import_queue']:
 print('TABLE',t)
 cs=[r[1] for r in c.execute('pragma table_info('+t+')')]
 for col in ['source_id','source_identity','video_id','youtube_id']:
  if col in cs:
   vals=[]
   for vid in ids:
    try:
     rs=c.execute('select count(*) from '+t+' where "'+col+'"=?',(str(vid),)).fetchone()[0]
     if rs: vals.append([vid,rs])
    except: pass
   if vals: print(col,vals)
c.close()