Provenance: kanban t_02148213 (research) -> t_4265c369 (author) -> t_fefdf30b (review). Review verdict: APPROVED-WITH-FIXES, 7/7 checks PASS, 17/17 YouTube links oEmbed-verified, 26+ CLI commands re-run against v0.21.1, no Murray/JDS client data present. Artifact: deliverables/scot-hermes-playbook/HERMES-PLAYBOOK-FOR-SCOT.md 377 lines, sha256 b0966a649fec96da4975ec00e627fbaba3a92a62c4a92b33bc06589c47d25f7f Includes the research dossier and its raw verification evidence under research/. STATUS: written and reviewed, NOT delivered to the client. Delivery is gated on Kwame's approval and tracked as a separate blocked kanban card.
11 lines
661 B
Python
11 lines
661 B
Python
import re, sys
|
|
|
|
html = open(sys.argv[1], encoding='utf-8', errors='ignore').read()
|
|
ids = re.findall(r'"videoRenderer":\{"videoId":"([\w-]{11})"', html)
|
|
print("videoRenderer hits:", len(set(ids)))
|
|
for vid in dict.fromkeys(ids):
|
|
m = re.search(r'"videoId":"%s".{0,3000}?"title":\{"runs":\[\{"text":"(.*?)"\}' % vid, html, re.S)
|
|
ch = re.search(r'"videoId":"%s".{0,6000}?"ownerText":\{"runs":\[\{"text":"(.*?)"' % vid, html, re.S)
|
|
dur = re.search(r'"videoId":"%s".{0,4000}?"lengthText":\{"accessibility".{0,400}?"simpleText":"(.*?)"' % vid, html, re.S)
|
|
print((vid, m.group(1) if m else "?", ch.group(1) if ch else "?", dur.group(1) if dur else "?"))
|