프롬프트 도감 › No.562
인스타·릴스 자동 게시 프로그램 만들기
Build: Instagram Pipeline
이미지와 글을 만들고, 인스타에 올릴 수 있게 준비한 뒤, 내가 승인한 것만 게시하는 프로그램이 만들어져요.
이럴 때 인스타 피드·릴스를 정해진 시간에 올리고 싶을 때
도구 Claude Code · Codex · n8n
프롬프트
너는 시니어 자동화 엔지니어다. '인스타그램 피드·릴스 자동 게시 파이프라인'을 구축해라.
전제 조건(코드 시작 전에 README에 먼저 적어라): 인스타그램 비즈니스 또는 크리에이터 계정이 페이스북 페이지에 연결돼 있어야 하고, Meta 개발자 앱에 Instagram Graph API 사용 사례가 추가돼 있어야 한다. 내 계정만 쓰면 앱이 개발 모드여도 되지만, 다른 계정을 쓰려면 앱 심사(instagram_content_publish)가 필요하다. 이미지·영상은 공개 URL에 있어야 하므로 Cloudflare R2(또는 S3) 업로드 단계가 필요하다.
스택:
- Python 3.11 + requests. Graph API 두 단계: POST /{ig-user-id}/media (image_url 또는 video_url + media_type=REELS, caption) → 상태 폴링(status_code=FINISHED) → POST /{ig-user-id}/media_publish. 하루 게시 한도(현재 100건/24h)를 넘지 않게 카운터를 두어라.
- 미디어 호스팅: Cloudflare R2 (wrangler r2 object put) 또는 S3. 업로드 후 공개 URL을 만들어 Graph API에 넘긴다.
- 이미지·캡션 생성: 이미지는 Gemini 이미지 API(Nano Banana Pro), 캡션은 로컬 Ollama → 클라우드 폴백. 프롬프트는 prompts/*.md 파일.
- 토큰: 장기 액세스 토큰(60일)을 .env 에 두고, 만료 7일 전 알림 잡을 만들어라.
- 오케스트레이션: dagu jobs/instagram.yaml — generate → host → create_container → publish(승인 파일 있을 때만). 매일 09:00.
- 에이전트 도구: .mcp.json 에 filesystem, playwright(게시 결과 화면 확인) 등록. 게시 함수를 MCP 도구 `ig_publish(media_url, caption, kind)` 로 노출.
- 코드 없이 하고 싶으면 대안으로 n8n 워크플로 JSON(동일 단계)도 export 해라.
산출물: uv 프로젝트, 스크립트, jobs/instagram.yaml, .mcp.json, n8n JSON, README(계정 연결·앱 설정·토큰 발급·사람이 할 일), 첫 실행 영수증(테스트 계정 또는 비공개 스토리로).
공통 규칙:
- 먼저 저장소를 훑고 가정을 3줄로 말한 뒤, 폴더 구조와 실행 순서를 계획으로 보여주고 내 승인을 받아라. 승인 전에는 파일을 만들지 마라.
- 모든 비밀값은 .env 에서 읽고, 코드·로그·영수증에 절대 찍지 마라. .env.example 을 만들어라.
- 게시(업로드)는 기본적으로 '초안/비공개' 상태로 올리고, 공개 전환은 --publish 플래그 또는 승인 파일(approve/<날짜>.txt)이 있을 때만 한다.
- 매 실행 끝에 receipts/<날짜>-<작업>.md 를 남겨라: 바뀐 것 / 증거(URL, HTTP 코드, 파일 경로) / 건너뛴 것 / 되돌리기.
- 실패하면 같은 작업을 반복하지 말고 pending 으로 기록하고 멈춰라.
- 실제로 돌려본 것만 '완료'라고 말해라. 계정 승인·OAuth 동의·앱 심사처럼 사람이 해야 하는 단계는 '사람이 할 일' 목록으로 따로 적어라.팁
- 개인 계정은 프로그램으로 올릴 수 없어요. 먼저 비즈니스·크리에이터 계정으로 바꾸세요.
- 릴스 영상은 세로(9:16) 형식이어야 하고 인터넷 주소로 열 수 있어야 해요.
- 연결 키는 60일마다 새로 받아야 해요. 알림을 꼭 걸어 두세요.
출처
- Instagram Graph API – 콘텐츠 게시 (공식)
- Model Context Protocol – 공식 서버 목록
- microsoft/playwright-mcp (GitHub)
- dagu-org/dagu (GitHub)
권리: 도감 원작. 자유롭게 복사·수정해 쓰세요 (출처 표기 환영).