최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치.
콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서
전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한
업데이트0615/무제 3.canvas 뿐).
"매 own 의 YouTube 채널 의 매 video 마다 매 view/like/comment/CTR/AVD 의 daily snapshot 을 매 fetch → DuckDB → 매 anomaly alert". 2026 creator workflow 의 기본 component. 매 YouTube Studio 의 dashboard 보다 훨씬 매 customizable + 매 multi-channel 비교 + 매 LLM 기반 insight.
매 핵심
매 Data sources
YouTube Data API v3: video metadata, current snapshot stats.
YouTube Analytics API v2: time-series (impressions, CTR, AVD, retention, traffic source) — 매 OAuth 필요.
YouTube Reporting API: bulk daily CSV (매 large channel 에 적합).
importstatisticsdefis_spike(video_id,metric='views',window=14,z=3.0):rows=con.execute(f"""
SELECT {metric} FROM snapshots WHERE video_id=?
ORDER BY captured_at DESC LIMIT {window+1} """,[video_id]).fetchall()iflen(rows)<window+1:returnFalsetoday,hist=rows[0][0],[r[0]forrinrows[1:]]deltas=[hist[i]-hist[i+1]foriinrange(len(hist)-1)]today_delta=today-hist[0]ifnotdeltasorstatistics.pstdev(deltas)==0:returnFalsereturnabs(today_delta-statistics.mean(deltas))/statistics.pstdev(deltas)>z
Telegram alert
importrequests,osdefalert(msg):requests.post(f"https://api.telegram.org/bot{os.environ['TG_TOKEN']}/sendMessage",json={'chat_id':os.environ['TG_CHAT'],'text':msg,'parse_mode':'Markdown'},)forvidinlist_my_videos():ifis_spike(vid):title=con.execute("SELECT title FROM videos WHERE video_id=?",[vid]).fetchone()[0]alert(f"*Spike*: [{title}](https://youtu.be/{vid})")
LLM weekly digest (Claude)
fromanthropicimportAnthropictop=con.execute("""
SELECT v.title, s.views, s.ctr, s.avd_sec
FROM snapshots s JOIN videos v USING(video_id)
WHERE s.captured_at::DATE = current_date
ORDER BY s.views DESC LIMIT 10
""").fetchall()resp=Anthropic().messages.create(model='claude-opus-4-7',max_tokens=1000,messages=[{'role':'user','content':f"Weekly channel digest. Identify 3 actions. Data:\n{top}"}],)print(resp.content[0].text)