Notion의 YouTube 스크립트: 코드 없음 및 Python 경로

모든 YouTube 스크립트를 Notion에 저장하면 따라가는 채널이 검색, 태그 지정 및 노트에서 링크할 수 있는 데이터베이스가 됩니다. 두 가지 좋은 방법으로 구축할 수 있습니다. 코드 없음 자동화 또는 약 20줄의 Python 스크립트. 이미 n8n 또는 Make를 실행하는지에 전적으로 따라 달라지기 때문에 둘 다 제공하겠습니다.
경로 1: 코드 없음
자동화 도구가 이미 생활에 있으면 이는 3개 모듈의 작업입니다. 트리거는 채널의 RSS 피드 (모든 채널: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID), 중간은 하나의 HTTP 호출, 끝은 Notion "페이지 만들기" 단계이며 데이터베이스를 가리킵니다.
HTTP 단계는 모든 도구에서 동일합니다:
- 메서드: GET
- URL:
https://youtube2text.org/api/transcribe - 쿼리 매개변수:
url= 트리거의 비디오 링크,maxChars=20000 - 헤더:
x-api-key=yt_YOUR_KEY
응답은 {"result": {"videoId", "title", "pubDate", "content", ...}}로 돌아옵니다. result.title을 페이지 제목에 매핑하고 result.content를 페이지 본문에 매핑합니다. n8n에 대한 전체 연습을 작성했습니다. Notion 단계 이전의 LLM 요약 노드 포함, Make 라우터 설정 포함.
경로 2: 20줄의 Python
자동화 플랫폼 없음? Notion API 더하기 하나의 requests 호출은 동일한 결과를 얻습니다. 먼저 설정: notion.so/my-integrations에서 내부 통합을 만들고, 해당 비밀을 복사하고, 목표 데이터베이스를 통합과 공유하십시오 (데이터베이스는 수행할 때까지 통합에 보이지 않음). 데이터베이스에는 Name이라는 제목 속성이 필요합니다.
import requests
YT_KEY = "yt_YOUR_KEY"
NOTION_KEY = "secret_YOUR_NOTION_KEY"
DATABASE_ID = "your-database-id"
def add_video(url):
r = requests.get(
"https://youtube2text.org/api/transcribe",
params={"url": url, "maxChars": 20000},
headers={"x-api-key": YT_KEY},
).json()["result"]
text = r["content"]
chunks = [text[i:i + 2000] for i in range(0, len(text), 2000)]
blocks = [{"object": "block", "type": "paragraph",
"paragraph": {"rich_text": [{"text": {"content": c}}]}}
for c in chunks[:100]]
requests.post(
"https://api.notion.com/v1/pages",
headers={"Authorization": f"Bearer {NOTION_KEY}",
"Notion-Version": "2022-06-28",
"Content-Type": "application/json"},
json={"parent": {"database_id": DATABASE_ID},
"properties": {"Name": {"title": [{"text": {"content": r["title"]}}]}},
"children": blocks},
)
add_video("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
url 매개변수는 모든 YouTube URL 형태 또는 11자 ID를 가져옵니다. 가입하지 않고 키를 원하면 curl -s https://youtube2text.org/api/demo-key는 무료 공유 항목을 반환합니다. IP당 월 5개 비디오, 테스트하기에 충분합니다.
스크립트가 텍스트를 청킹하는 이유
2000자 조각으로 슬라이싱하는 것은 장식이 아닙니다. 이것은 Notion의 규칙입니다. API는 각 리치 텍스트를 2,000자로 제한하고 각 생성 페이지 요청을 100개 블록으로 제한합니다. 이것이 전체 설정의 정직한 제한입니다: 요청당 약 200,000자, 그리고 긴 스크립트는 페이지를 열기 전에 느리게 만듭니다. 그것이 maxChars를 20000으로 설정한 이유입니다. 정말로 저장된 전체 멀티시간 스크립트가 필요하면 나머지 블록을 블록 엔드포인트에 후속 요청으로 추가하세요. 하지만 대부분의 아카이브의 경우 20k 문자 + 요약은 자동 캡션 벽을 이깁니다.
요약 추가
스크립트는 원자재이고, 요약이 6개월 후에 실제로 읽을 것입니다. fetch와 페이지 생성 사이에 LLM 호출 하나를 슬롯하세요. r["content"]에 공급하고 5개의 요점을 요청하고 결과를 첫 번째 단락 블록으로 앞에 붙이세요 (n8n에서 이는 또 다른 노드입니다). 요약이 스크립트와 함께 살면 데이터베이스도 괜찮은 검색 코퍼스가 됩니다. 전체 채널 위에 RAG 구축의 시작점입니다.
키 및 비용
공유 데모 키는 실제로 따라가는 채널을 유지하지 못합니다. youtube2text.org/app/keys에서 Google으로 로그인하세요. 전화 없음, 카드 없음. 자신의 키: 무료 월 5개 비디오, 50개 $5.99, 500개 $9.99, 무제한 $19.99. Notion 측은 무료입니다. 스크립트는 거의 무료입니다.