from pathlib import Path
import re, json, subprocess
root=Path('/opt/struktur/youtube-research')
files=sorted(root.glob('*.py'))
patterns=['YouTubeTranscriptApi','transcript_status','e2e_jobs','status=\'queued\'','INSERT INTO e2e_jobs','INSERT OR','processing_queue','local_transcript','supadata']
out={}
for p in files:
try: text=p.read_text(errors='ignore')
except: continue
hits=[]
for i,line in enumerate(text.splitlines(),1):
if any(re.search(x,line,re.I) for x in patterns): hits.append(f'{i}:{line[:500]}')
if hits: out[str(p)]=hits
print(json.dumps(out,ensure_ascii=False,indent=2))
for cmd in [['systemctl','cat','youtube-research-e2e-worker.service'],['systemctl','show','youtube-research-e2e-worker.service','-p','ExecStart','-p','Environment','-p','Restart'],['ps','-eo','pid,etimes,args'],['ss','-ltnp']]:
try: print('\nCMD',cmd,'\n',subprocess.run(cmd,text=True,capture_output=True,timeout=20).stdout[:12000])
except Exception as e: print('ERR',e)