Jekyll 블로그 YouTube 자동 게시: Python과 RSS 피드 활용
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Jekyll 블로그에 YouTube 영상 자동 게시 방법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

  • 대상자: Jekyll 블로그를 운영하는 개발자 및 자동화를 원하는 사용자
  • 난이도: 중급 (Python, YAML, RSS 파싱 기초 지식 필요)

핵심 요약

  • 핵심 기술: 📶 feedparser 라이브러리로 YouTube RSS 피드 파싱하여 자동 게시
  • 데이터 처리: PyYAMLslugify를 사용해 YAML front matter 생성 및 URL 슬러그 처리
  • 자동화 트리거: pre-commit 훅으로 스크립트 실행, feedparser>=6,<7, PyYAML>=6,<7 등 의존성 명시

섹션별 세부 요약

1. 문제 정의 및 기존 방식

  • 수동으로 YouTube 영상과 Jekyll 게시물 동기화 작업이 반복적이고 비효율적이었다.
  • YAML front matter의 url, title, published 등 필드 복사 작업이 주요 작업이었음.
  • RSS 피드 자동 파싱으로 작업 효율성 향상 목표

2. 자동화 구현 방법

  • 라이브러리 사용:

- feedparser: YouTube RSS 피드 파싱

- PyYAML: YAML front matter 생성

- slugify: URL 슬러그 생성

  • 데이터 추출 로직:

```python

def extract_feed_youtube_data(feed_source: str) -> list[dict]:

d = feedparser.parse(feed_source)

data = [

{'url': e['link'], 'title': e['title'], 'published': ...}

for e in d.entries if 'link' in e

]

```

  • 태그 처리: 영상 설명(summary)에서 정규표현식으로 태그 추출, STANDARD_TAGS와 병합

3. Markdown 파일 생성

  • Jekyll front matter 템플릿:

```markdown

---

title: "|-"{data["title"]}

tags: [{youtube_tags_to_jekyll_front_matter_tags(data["tags"])}]

updated: {datetime_object_to_jekyll_front_matter_utc(data["published"])}

```

  • HTML embed 코드 삽입: generate_youtube_embed_code() 함수로 동영상 삽입
  • 구문 문제 대응: title, description 필드의 따옴표 "|-" 처리로 YAML 파싱 오류 방지

4. 자동화 트리거 및 실행 환경

  • pre-commit 훅 설정:

```yaml

hooks:

- id: generate_posts

entry: python ./.scripts/youtube/generate_posts.py

additional_dependencies: ['feedparser>=6,<7', 'PyYAML>=6,<7']

```

  • 의존성 관리: 별도 환경에서 feedparser, PyYAML, python-slugify 설치

결론

  • 핵심 팁: YouTube RSS 피드와 feedparser 활용으로 반복 작업 자동화 가능
  • 향후 개선 방향: LLM 기반 자동 요약 생성, Mastodon API 연동 등 확장 가능
  • 주의사항: SEO 최적화를 위해 동영상 설명 직접 복사 대신 요약 생성 권장