블로그 자동 수익 엔진 v3,
오픈소스로 무료 공개합니다
원고 하나를 AI로 작성하면 블로그·인스타·X 스레드·유튜브 쇼츠·뉴스레터 — 5개 포맷으로 자동 변환하고 배포까지 하는 1인 미디어 자동화 시스템. 직접 운영하며 만든 코드를 그대로 공개합니다. 잘된 점, 주의할 점, 커스텀 방법까지 솔직하게.
왜 공개하기로 했나
The 4th Path 블로그를 운영하면서 직접 부딪힌 문제를 해결하기 위해 만든 코드다. 글을 하나 쓰면 블로그에 올리고, 인스타용 카드 이미지 만들고, X 스레드로 쪼개고, 쇼츠 영상으로 변환하고, 뉴스레터에 넣는 — 이 반복 작업이 글 쓰는 것보다 더 시간이 걸렸다.
자동화하면서 쌓인 코드가 어느 순간 완성도가 생겼다. 혼자 쓰기엔 아깝고, 같은 문제를 가진 사람들이 분명 있을 것 같아 공개하기로 했다. 1인 미디어를 운영하거나 AI로 콘텐츠 파이프라인을 만들고 싶은 분이라면 바로 쓸 수 있도록 설계했다.
글 쓰는 시간은 늘리고, 배포·변환에 쓰는 시간은 제로로. 이 코드가 그 목표를 실현한다.
— 22B Labs, 마스터플랜 v3 메모 중시스템 구조: 4개 레이어
전체 구조는 레이어로 분리되어 있다. AI를 쓰는 곳과 안 쓰는 곳을 명확히 나눴다 — 이게 이 프로젝트에서 가장 잘된 설계 결정 중 하나다.
기능 한눈에 보기
| 기능 | Phase | 상태 | 비고 |
|---|---|---|---|
| 트렌드 수집 + 품질 필터 | 1A | 코드 완료 | PyTrends + RSS, 70점 미만 자동 폐기 |
| 블로그 발행 (Blogger) | 1A | 코드 완료 | Schema.org · AdSense 플레이스홀더 포함 |
| 쿠팡 파트너스 링크 삽입 | 1A | 코드 완료 | 키워드 최대 2회 자동 치환 |
| 인스타그램 카드 이미지 | 1B | 코드 완료 | API 키 설정 필요 |
| X 스레드 게시 | 1B | 코드 완료 | API 키 설정 필요 |
| 유튜브 쇼츠 영상 생성 | 2 | 코드 완료 | ffmpeg + gTTS(무료) 폴백 지원 |
| TikTok 업로드 | 2 | 코드 완료 | API 키 설정 필요 |
| 주간 뉴스레터 | 1A | 코드 완료 | 일요일 자동 생성 |
| GA4 + Search Console 리포트 | 1A | 코드 완료 | Telegram 일간/주간 전송 |
| Telegram 자연어 명령 | 1A | 선택 | ANTHROPIC_API_KEY 설정 시 활성 |
사용 방법: 처음 세팅하는 순서
단계별로 따라가면 된다. 복잡해 보이지만 대부분은 API 키를 발급받아 `.env`에 넣는 작업이다. 코드 수정 없이 설정만으로 동작한다.
setup.bat 하나로 가상환경 생성·패키지 설치·폴더 생성·작업 스케줄러 등록까지 전부 처리된다.credentials.json과 token.json은 .gitignore에 포함되어 있다. PR 전 반드시 확인할 것.data/originals/에 파일을 직접 넣으면 된다. ChatGPT, Claude, Gemini 등 어떤 AI로 생성해도 포맷만 맞으면 파이프라인이 돌아간다.config/schedule.json에서 시간을 바꿀 수 있다.잘된 점
- AI/비AI 레이어 분리가 명확하다. L1에서만 AI를 쓰고, 변환·배포는 순수 Python이다. AI 비용이 원고 생성에만 들고, 나머지는 무료다. 예측 가능하고 디버깅도 쉽다.
- 폴백 설계가 촘촘하다. Google Cloud TTS가 없으면 gTTS(무료)로, DALL-E 키가 없으면 단색 배경으로, 어느 단계가 빠져도 파이프라인이 멈추지 않는다.
- 품질 안전장치가 실용적이다. 70점 미만 자동 폐기, 75점 미만 수동 검토, 팩트체크 코너 전체 수동 승인 — 자동화하되 무분별한 발행을 막는다.
- config 분리가 잘 되어 있다. 플랫폼 on/off, 스케줄 시간, 품질 규칙, RSS 소스, 쿠팡 링크 — 코드를 건드리지 않고 JSON 파일만 수정하면 된다.
- OpenClaw 없이도 동작한다. data/originals에 포맷 맞는 파일을 넣으면 어떤 AI로 작성한 원고든 파이프라인이 돌아간다. 특정 AI에 의존하지 않는다.
- Telegram 제어가 실용적이다. 폰 하나로 수집 트리거, 발행 승인, 일시 중지, 리포트 확인 — 미니PC 앞에 앉지 않고도 전체 시스템을 제어할 수 있다.
- 쇼츠 파이프라인이 완성도 높다. TTS → 슬라이드 합성 → Ken Burns 효과 → xfade 트랜지션 → BGM 믹싱 → 자막 burn-in까지 한 번에 처리된다.
주의할 점
- .env 파일은 절대 커밋하지 않는다.
.env,token.json,credentials.json이 세 파일은 .gitignore에 포함되어 있지만, PR 전git diff --staged로 반드시 확인할 것. 비밀값이 GitHub에 올라가면 즉시 API 키를 폐기하고 재발급해야 한다. - Phase 단계별로 설치가 필요하다. 코드는 전부 완성되어 있지만, 각 플랫폼 API 키는 직접 발급받아야 한다. Instagram은 Facebook Developer App 심사가 필요하고, X API는 Free Tier 이상 신청이 필요하다. TikTok API는 승인까지 며칠 걸린다.
- ffmpeg는 필수 설치다. 쇼츠 변환에 ffmpeg가 없으면 해당 단계에서 오류가 난다. PATH에 등록하거나
FFMPEG_PATH를 .env에 지정해야 한다. - Instagram Graph API 이미지 제약. Instagram API는 공개 URL 이미지만 받는다. 로컬 파일을 직접 올릴 수 없어서 ImgBB API 키가 필요하다. 개발·테스트 중엔
LOCAL_IMAGE_SERVER=true로 우회 가능하다. - Google TTS는 유료다. Google Cloud TTS는 월 100만 자 초과 시 비용이 발생한다.
GOOGLE_TTS_API_KEY없이 gTTS(무료)를 써도 되지만 음질 차이가 있다. - Blogger 블로그 ID 혼동 주의.
BLOG_MAIN_ID는 블로그 이름이나 도메인이 아닌 숫자 18자리다. Blogger 대시보드 URL에서 확인한다. - PyTrends 요청 제한. Google Trends API를 자주 호출하면 일시 차단될 수 있다.
config/sources.json에 RSS 피드를 충분히 추가해두면 Trends 의존도를 낮출 수 있다. - claude-agent-sdk 버전 확인.
requirements.txt의claude-agent-sdk는 Telegram 자연어 명령용이다.ANTHROPIC_API_KEY없이 쓰려면 해당 기능을 쓰지 않으면 무시해도 된다.
"자동화 시스템에서 가장 위험한 시점은 처음 켰을 때다. 개별 봇을 단독 실행으로 검증한 뒤 스케줄러를 켜는 것이 안전하다."
커스텀 가이드: 내 상황에 맞게 바꾸기
코드를 직접 수정하지 않고 설정 파일만 바꿔 대부분을 커스텀할 수 있다. 더 나아가 핵심 함수를 교체하면 완전히 다른 플랫폼에도 적용할 수 있다.
📅 스케줄 시간 변경
config/schedule.json의 시간 값만 바꾸면 된다. 수집·발행·쇼츠 업로드 시간 전부 여기서 제어한다. 코드 수정 없음.
📡 RSS 소스 추가
config/sources.json에 RSS URL을 추가한다. 원하는 분야의 피드를 추가할수록 글감의 폭이 넓어진다.
🛒 제휴 링크 추가
config/affiliate_links.json에 키워드→URL 쌍을 추가한다. 쿠팡 외 다른 제휴 링크도 같은 방식으로 넣을 수 있다.
🔒 플랫폼 on/off
config/platforms.json에서 각 플랫폼을 true/false로 전환한다. 특정 플랫폼 API 없이도 그 부분만 끄고 나머지를 돌릴 수 있다.
🎨 카드 디자인 변경
bots/converters/card_converter.py의 색상·폰트 크기·레이아웃을 수정한다. Pillow 기반이라 이미지 합성 자유도가 높다.
📝 블로그 플랫폼 교체
bots/distributors/ 아래에 새 배포 모듈을 만든다. publisher_bot.py의 publish_to_blogger()를 WordPress REST API로 교체하면 워드프레스에도 적용된다.
🤖 AI 에이전트 교체
OpenClaw 대신 GPT API, Gemini, 또는 다른 AI로 원고를 생성해도 된다. 출력 포맷(---TITLE---, ---BODY--- 등)만 맞추면 파이프라인이 그대로 돌아간다.
🎵 쇼츠 템플릿 수정
templates/shorts_template.json에서 코너별 색상·TTS 속도·트랜지션 효과를 바꾼다. 코드 수정 없이 코너 분위기를 완전히 다르게 만들 수 있다.
- 1단계 (최소 구성): Google OAuth + Telegram + Blogger만 설정 → 블로그 자동 발행 확인
- 2단계 (Phase 1B): ImgBB + Instagram + X API 추가 → 카드 이미지·X 스레드 자동 게시 확인
- 3단계 (Phase 2): ffmpeg + gTTS(무료) + YouTube API → 쇼츠 영상 자동 업로드 확인
- 선택: DALL-E, Google TTS(유료), TikTok, Telegram 자연어 명령 등 추가 기능 켜기
함께 만들어 가요
이 코드는 The 4th Path 블로그를 실제로 운영하면서 만든 시스템입니다. 버그를 발견하거나 더 나은 방법이 있다면 이슈나 PR로 알려주세요. 1인 미디어를 자동화하려는 분들에게 실질적인 출발점이 되길 바랍니다.
MIT 라이선스 — 자유롭게 사용하고, 수정하고, 배포하세요. 상업적 이용 시 브랜드명 "The 4th Path"와 "22B Labs"만 제거해 주시면 됩니다.
- sinmb79/blog-writer — README.md, .env.example, requirements.txt · github.com/sinmb79/blog-writer
- 22B Labs 블로그 자동 수익 엔진 마스터플랜 v3 (내부 문서)
- Google Blogger API v3 공식 문서 · developers.google.com