나는 $200/월 Screenshot API를 단일 Python 파일로 교체했다

발행: (2026년 3월 14일 오후 05:11 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

왜 직접 스크린샷 API를 만들었는가

Browserless에 $200/월을 내며 스크린샷을 찍는 것이 지긋지긋했다. 기존 서비스들은 스크린샷당 요금을 부과하거나 월 사용료가 높았다:

  • Browserless: $200–$2000/월
  • ScreenshotOne: 스크린샷당 $0.01
  • Puppeteer 자체 호스팅: 메모리 누수, Docker 문제, 확장성 이슈

내가 필요했던 것은 단순한 URL → PNG 변환뿐이었다.

SnapForge 소개

SnapForge는 단일 Python 파일로 구현된 자체 호스팅 스크린샷 및 PDF API이다. 클라우드도, 구독도 필요 없다.

  • MIT 라이선스, 단일 파일 구현
  • 스크린샷, PDF, HTML 렌더링, 디바이스 에뮬레이션, 요소 캡처, 다크 모드 등 지원
  • 선택적 API‑key 인증
  • 동시 작업자 풀로 확장 가능
  • 한 줄 배포 가능한 Docker 이미지

설치

pip install playwright aiohttp
playwright install chromium

API 실행

python snapforge.py

서비스는 포트 8787에서 시작된다.

API 사용법

스크린샷

curl -X POST http://localhost:8787/screenshot \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://github.com", "full_page": true }' \
  --output github.png

PDF 생성

curl -X POST http://localhost:8787/pdf \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://example.com", "format": "A4" }' \
  --output page.pdf

HTML 렌더링 (예시 payload)

{
  "html": "\n## Invoice #1234\n\nTotal: 99 USD\n",
  "width": 600
}

기능

  • 디바이스 에뮬레이션: iPhone 14, iPad, Pixel 7, Desktop 4K
  • 요소 스크린샷: 특정 CSS 선택자 캡처
  • 다크 모드: dark‑color‑scheme 렌더링 테스트
  • 동시 풀: 병렬 요청을 위한 다중 브라우저 작업자
  • API‑key 인증: Bearer 토큰으로 인스턴스 보호

Docker 배포

FROM python:3.11-slim

RUN pip install playwright aiohttp && \
    playwright install chromium --with-deps

COPY snapforge.py /app/
WORKDIR /app
EXPOSE 8787

CMD ["python", "snapforge.py", "--workers", "4"]

docker builddocker run 한 줄 명령으로 배포한다.

일반적인 사용 사례

  • CI/CD 시각적 회귀 테스트
  • 인보이스 및 보고서 PDF 생성
  • 소셜 미디어용 동적 OG 이미지 생성
  • 대시보드 모니터링 스크린샷
  • 문서 스크린샷 자동화

비용 비교 (월 10 000 스크린샷 기준)

서비스대략 비용
ScreenshotOne~ $100 USD/월
Browserless$200+ USD/월
SnapForge (5 USD VPS)$5 USD/월

저장소

  • GitHub: 단일 파일, MIT 라이선스. 자체 호스팅하고 잊어버리세요.
0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.