Jekyll 블로그에 YouTube 영상 자동 게시 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: Jekyll 블로그를 운영하는 개발자 및 자동화를 원하는 사용자
- 난이도: 중급 (Python, YAML, RSS 파싱 기초 지식 필요)
핵심 요약
- 핵심 기술: 📶
feedparser
라이브러리로 YouTube RSS 피드 파싱하여 자동 게시 - 데이터 처리:
PyYAML
및slugify
를 사용해 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 최적화를 위해 동영상 설명 직접 복사 대신 요약 생성 권장