작업 규칙 — ytmine
📑 인덱스: 🆕 신규 / §1 웹 UI(web.py) / §2 전사 파이프라인
🆕 신규
- 2026-08-02 — "Groq 되나?" 점검은 유튜브 새로 받지 말고 기존 raw 오디오 15초 클립으로.
data/*/raw/*.16k.ogg하나에서 imageio-ffmpeg로 15초 자르고ytmine._transcribe_groq(clip)호출 → 1초 안에 판정(다운로드·쿼터 소모 최소). 판정 기준은 예외 유무가 아니라transcribe_audio(backend="groq")의 source 태그가stt:groq:*인지 — 폴백이 예외를 삼켜서 "에러 없이 로컬로 돌아간" 상태가 성공처럼 보인다.selfcheck출력의groq 실패 -> local 폴백: 429 rate limit (테스트)는 일부러 넣은 단위검증 로그라 장애로 오독 금지. - 2026-07-27 — 텔레그램
ytmine <링크>= 기본 명령어(페페 지시). 처리 주체는 broker(tools/cody-permission-broker/broker.py_maybe_handle_ytmine), 전사·요약은 web.py(8795) HTTP 위임(로직 중복 금지). 폴링 루프에서 ytmine 명령이면continue— 안 그러면_maybe_handle_ask_reply가 "열린 질문 답변"으로 삼킨다. 텔레그램 HTML은 b/i/u/s/a/code/pre만 허용이라 요약의h3/ul/li는 변환 필수(_ytmine_html_to_tg), 4096자 한도 → 3500자 분할, 파서 400 나면 태그 제거 평문 재전송. web.py는 HKCU Runytmine_web으로 자동시작(꺼져 있으면 broker가 web.bat 띄우고 1회 재시도). - 2026-07-26 — STT는 Groq 1순위 + 로컬 자동 폴백(페페 지시).
transcribe_audio()가 groq 실패(키없음·401·429 한도초과·네트워크)를 잡아 faster-whisper CPU로 넘어간다. 무료 한도 실측 = 2,000 RPD / 20 RPM / 오디오 28,800초·하루 8시간 분량(ASD가 실질 병목, 회수 아님).source:태그가 실제 쓴 백엔드라 폴백 여부는 결과 md로 확인. 폴백 구간은 RTF~0.75라 느리다 — 대량 배치 시 예상시간(estimate RTF 0.01) 대비 오래 걸리면 한도에 걸린 것. - 2026-07-26 — 로컬 웹서버는 "방화벽 허용 python"으로 띄운다. 이 PC는 인바운드가 프로그램 단위로 허용돼 있고(시스템
python312/python39는 허용, 프로젝트 venv python은 미허용), venv python으로 서빙하면 로컬은 되는데 폰·타 tailnet 기기에서 접속이 안 된다. → 서버 = 시스템 python312 + 표준 라이브러리, 무거운 작업(yt-dlp·STT)은 venv 서브프로세스. 근거 =handoff.md"웹 UI". - 2026-07-26 — 새 포트는 띄우기 전에
netstat -ano | grep LISTENING으로 점유 확인. 8792를 잡았다가 talklog_server가 이미 쓰고 있어서(Windows는 SO_REUSEADDR로 중복 바인드가 조용히 성공) 404가 났다. 8788/8790/8791/8792/8793/8799 = 선점, ytmine web = 8795. - 2026-07-29 — API 키는
C:\dev\.secrets\.env하나만.ytmine\.env는 노브 전용(포트·모델·플래그)으로 격하했고,ytmine.py·web.py로더가 로컬.env다음에.secrets\.env도 읽는다(setdefault라 로컬 노브 우선). 키를 프로젝트.env에 다시 적지 말 것. ⚠상주 웹서버(:8795)는 재시작해야 새 키를 읽는다(env는 기동 시 1회 로드). - 2026-07-29 — Groq 403을 "키 만료"로 읽지 말 것.
urllib기본 UA를 Cloudflare가 차단해 403error code: 1010을 준다. 브라우저 UA를 붙이면 200(구 키도 실제로는 살아 있었다 = 재발급 헛수고). 공식groqSDK는 자기 UA를 붙이므로 무관. 전역 규칙 =rules/tooling.md. - 2026-07-29 — 요약 LLM = 제미나이
gemini-3.6-flash고정. 그록 경로·XAI_API_KEY·YTMINE_FALLBACK분기를web.py에서 삭제했다(페페 지시: 사용처 없음). 다시 넣지 말 것 — 폴백 개념 없이 단일 경로다. - ~~2026-07-26 — 요약 LLM = 그록(페페 지정), 폴백만 제미나이.~~ (26.7.29 폐기 — 위 항목이 유효). 남길 사실 둘: ⚠Groq(STT) ≠ 그록(요약) — 이름만 비슷한 다른 회사다. Groq 무료 TPM 12,000이라 1시간 전사본(≈2.5만 토큰) 요약을 단일 요청으로 못 받는다(요약엔 애초에 안 씀).