LIVEIndependent Tech Media
Independent Tech Media by 22B Labs
1인미디어 · 블로그자동화 · 숨은보물 · 오픈소스 · AI자동화 · Python · The4thPath

블로그 자동 수익 엔진 v3, 오픈소스로 무료 공개합니다

2026년 3월 25일 수요일 · 22B Labs · The 4th Path
오픈소스 공개 · 2026년 3월

블로그 자동 수익 엔진 v3,
오픈소스로 무료 공개합니다

원고 하나를 AI로 작성하면 블로그·인스타·X 스레드·유튜브 쇼츠·뉴스레터 — 5개 포맷으로 자동 변환하고 배포까지 하는 1인 미디어 자동화 시스템. 직접 운영하며 만든 코드를 그대로 공개합니다. 잘된 점, 주의할 점, 커스텀 방법까지 솔직하게.

공개일 2026년 3월 25일 저자 22B Labs · The 4th Path GitHub sinmb79/blog-writer 라이선스 MIT (무료 사용·수정·배포)

왜 공개하기로 했나

The 4th Path 블로그를 운영하면서 직접 부딪힌 문제를 해결하기 위해 만든 코드다. 글을 하나 쓰면 블로그에 올리고, 인스타용 카드 이미지 만들고, X 스레드로 쪼개고, 쇼츠 영상으로 변환하고, 뉴스레터에 넣는 — 이 반복 작업이 글 쓰는 것보다 더 시간이 걸렸다.

자동화하면서 쌓인 코드가 어느 순간 완성도가 생겼다. 혼자 쓰기엔 아깝고, 같은 문제를 가진 사람들이 분명 있을 것 같아 공개하기로 했다. 1인 미디어를 운영하거나 AI로 콘텐츠 파이프라인을 만들고 싶은 분이라면 바로 쓸 수 있도록 설계했다.

글 쓰는 시간은 늘리고, 배포·변환에 쓰는 시간은 제로로. 이 코드가 그 목표를 실현한다.

— 22B Labs, 마스터플랜 v3 메모 중

시스템 구조: 4개 레이어

전체 구조는 레이어로 분리되어 있다. AI를 쓰는 곳과 안 쓰는 곳을 명확히 나눴다 — 이게 이 프로젝트에서 가장 잘된 설계 결정 중 하나다.

L1
AI 콘텐츠 생성
OpenClaw (GPT / Claude) → Blogger-ready HTML 원고 1개 생성. AI는 오직 여기서만 쓰인다. 원고가 없으면 파이프라인이 돌지 않는다.
L2
변환 엔진 (AI 없음, Python만)
blog_converter · card_converter · thread_converter · shorts_converter · newsletter_converter. 원고 1개를 5개 포맷으로 변환. 결정론적, 예측 가능, 비용 없음.
L3
배포 엔진 (AI 없음, API만)
Blogger · Instagram · X(Twitter) · TikTok · YouTube. 각 플랫폼 API로 자동 게시. 실패 시 Telegram으로 알림.
L4
분석 + 피드백
Google Analytics GA4 · Search Console → 일간/주간 리포트 Telegram 전송. 어떤 글이 잘 됐는지 자동으로 알려준다.

기능 한눈에 보기

5
배포 플랫폼
Blogger · Insta · X · TikTok · YouTube
5
변환 포맷
HTML · 카드 · 스레드 · 쇼츠 · 뉴스레터
11
스케줄 작업
수집→작성→변환→배포→리포트 전 자동
70
품질 점수 컷
미달 시 자동 폐기, 75점 미만은 수동 검토
3
이미지 모드
수동 · 요청 · DALL-E 자동
MIT
라이선스
상업적 사용 포함 자유 이용 가능
기능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`에 넣는 작업이다. 코드 수정 없이 설정만으로 동작한다.

1
저장소 클론 & 설치
Python 3.10 이상이 필요하다. Windows 사용자는 setup.bat 하나로 가상환경 생성·패키지 설치·폴더 생성·작업 스케줄러 등록까지 전부 처리된다.
# 클론 git clone https://github.com/sinmb79/blog-writer.git cd blog-writer # Windows — 원스텝 자동 설치 (권장) scripts\setup.bat # macOS / Linux — 수동 python -m venv venv && source venv/bin/activate pip install -r requirements.txt
2
.env 설정 — Phase 1A 필수값 (최소 구성)
우선 핵심 4가지만 채우면 블로그 자동 발행까지 동작한다. 나머지 플랫폼은 나중에 추가해도 된다.
# .env.example 복사 후 편집 cp .env.example .env # 최소 필수값 4가지 GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=GOCSPX-xxx BLOG_MAIN_ID=3856391132195789013 # Blogger URL 숫자 TELEGRAM_BOT_TOKEN=7123456789:AAF... TELEGRAM_CHAT_ID=123456789
💡 BLOG_MAIN_ID 확인: Blogger 관리자 → 블로그 선택 → 주소창의 숫자 18자리
3
Google OAuth 토큰 발급
Google Cloud Console에서 Blogger API v3와 Search Console API를 활성화하고, OAuth 클라이언트 ID(데스크톱 앱)를 만든 뒤 credentials.json을 프로젝트 루트에 놓는다. 그 다음 토큰 스크립트를 실행하면 브라우저 인증 한 번으로 끝난다.
# credentials.json을 프로젝트 루트에 저장 후 python scripts\get_token.py # 브라우저가 열리면 Google 계정 인증 # token.json 자동 저장됨 (절대 커밋 금지)
⚠️ credentials.jsontoken.json은 .gitignore에 포함되어 있다. PR 전 반드시 확인할 것.
4
폰트 설치 (카드 이미지·쇼츠 한글 렌더링)
Windows는 시스템 폰트(맑은고딕)를 자동으로 복사한다. macOS/Linux는 NotoSansKR을 GitHub에서 다운로드한다. 이 단계를 건너뛰면 이미지에 한글이 깨진다.
python scripts\download_fonts.py
5
원고 넣기 — AI 에이전트 또는 직접 작성
OpenClaw 에이전트로 자동 생성하거나, 정해진 포맷에 맞춰 data/originals/에 파일을 직접 넣으면 된다. ChatGPT, Claude, Gemini 등 어떤 AI로 생성해도 포맷만 맞으면 파이프라인이 돌아간다.
# 원고 포맷 (텍스트 파일로 저장) ---TITLE--- AI가 일자리 70%를 자동화한다면, 우리는 무엇을 해야 하나 ---META--- AI 자동화 시대에 인간의 역할은 어디로 가는가. 2026년 최신 연구와 실제 사례로 본 미래 직업 지형도. ---SLUG--- ai-automation-70-percent-jobs ---TAGS--- AI자동화, 미래직업, 기술트렌드 ---CORNER--- 쉬운세상 ---BODY--- <!-- Blogger-ready HTML 본문 --> ---KEY_POINTS--- AI가 2026년까지 업무 70% 자동화 가능 단순 반복직 타격, 창의·감성직은 성장 인간 역할은 실행자→오케스트레이터로 이동 ---COUPANG_KEYWORDS--- AI 관련 책, 자동화 도구 ---SOURCES--- https://ibm.com/think/news/ai-tech-trends-predictions-2026
6
스케줄러 시작 — 이제 자동으로 돌아간다
스케줄러를 시작하면 매일 정해진 시간에 수집→변환→배포→리포트가 자동으로 실행된다. config/schedule.json에서 시간을 바꿀 수 있다.
# 포그라운드 실행 (로그 확인하며 테스트) python bots\scheduler.py # 백그라운드 실행 (Windows) pythonw bots\scheduler.py # 개별 봇 단독 테스트 python bots\collector_bot.py # 수집만 python bots\publisher_bot.py # 발행만 python bots\converters\shorts_converter.py # 쇼츠만
💡 처음엔 개별 봇을 단독 실행해 각 단계가 정상 동작하는지 확인한 뒤 스케줄러를 켜는 것을 권장한다.

잘된 점

✓ 설계·구현에서 잘 작동하는 것들
  • 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.txtclaude-agent-sdk는 Telegram 자연어 명령용이다. ANTHROPIC_API_KEY 없이 쓰려면 해당 기능을 쓰지 않으면 무시해도 된다.
"자동화 시스템에서 가장 위험한 시점은 처음 켰을 때다. 개별 봇을 단독 실행으로 검증한 뒤 스케줄러를 켜는 것이 안전하다."
— 개발 메모, 22B Labs

커스텀 가이드: 내 상황에 맞게 바꾸기

코드를 직접 수정하지 않고 설정 파일만 바꿔 대부분을 커스텀할 수 있다. 더 나아가 핵심 함수를 교체하면 완전히 다른 플랫폼에도 적용할 수 있다.

📅 스케줄 시간 변경

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.pypublish_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"만 제거해 주시면 됩니다.

참고
  1. sinmb79/blog-writer — README.md, .env.example, requirements.txt · github.com/sinmb79/blog-writer
  2. 22B Labs 블로그 자동 수익 엔진 마스터플랜 v3 (내부 문서)
  3. Google Blogger API v3 공식 문서 · developers.google.com
4P
22B Labs · The 4th Path
AI 연구·자동화 실험실 / the4thpath.com / github.com/sinmb79

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

더 읽기