Notion での YouTube 文字起こし: ノーコードと Python パス

すべてのYouTubeトランスクリプトをNotionに保存することは、あなたがフォローするチャネルを検索し、タグ付けし、ノートからリンクできるデータベースに変えます。2つの良い方法があります―ノーコードオートメーションまたは約20行のPythonスクリプト―そして私は両方を与えます。正しい方法は完全にあなたが既にn8nまたはMakeを実行するかどうかによって異なるからです。
パス1: ノーコード
オートメーションツールが既にあなたの人生にある場合、これは3つのモジュールの仕事です。トリガーはチャネルのRSSフィード(すべてのチャネルには1つあります: https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID)、中央は1つのHTTPコール、終了はNotionの「ページを作成」ステップをデータベースに指しています。
HTTPステップはすべてのツールで同じです:
- Method: GET
- URL:
https://youtube2text.org/api/transcribe - Query params:
url= トリガーからのビデオリンク、maxChars=20000 - Headers:
x-api-key=yt_YOUR_KEY
レスポンスは{"result": {"videoId", "title", "pubDate", "content", ...}}として戻ります―result.titleをページタイトルにマップし、result.contentをページ本体に。n8nの完全なチュートリアル、Notionステップ前のLLM要約ノード、およびMakeをそのルーターセットアップで書きました。
パス2: 20行のPython
オートメーションプラットフォームなし? Notion API プラス1つのrequestsコールはあなたに同じ結果をもたらします。セットアップ最初: notion.so/my-integrationsで内部統合を作成し、そのシークレットをコピーし、ターゲットデータベースを統合で共有(データベースは共有するまで統合に見えません)。データベースには Name という名前の title プロパティが必要です。
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は無料の共有を返します―月5ビデオあたりIP、テストするのに十分です。
スクリプトがテキストをチャンク化する理由
2000文字のピースへのそのスライシングは装飾ではありません―それはNotionのルールです。API は各リッチテキストを2,000文字でキャップし、各作成ページリクエストを100ブロックでキャップします。これは全体のセットアップの正直な制限です: リクエストあたり約200,000文字、長いトランスクリプトはそれまでの前にページを開くのが遅いようにします。それがmaxCharsを20000に設定した理由です。本当に長い複数時間のトランスクリプトを保存する必要がある場合、残りのブロックをブロックエンドポイントへのフォローアップリクエストで追加―しかし、ほとんどのアーカイブでは、20k文字とサマリーはオートキャプションの壁を打ちます。
サマリーを追加
トランスクリプトは生の材料です。サマリーは、6か月で実際に読むでしょう。フェッチとページ作成の間に1つのLLMコールをスロット―r["content"]にフィード、5つの箇条書きをリクエストし、最初の段落ブロック(n8nでは)として結果を前置き。サマリーがトランスクリプトと一緒に住んでいると、データベースもまともな検索コーパスになります―これはチャネル全体のRAGを構築の開始点です。
キーとコスト
共有デモキーは、あなたが実際にフォローするチャネルに追いつきません。youtube2text.org/app/keysでGoogleサインインしてください―電話なし、カードなし―独自のキー: 無料5 月5ビデオ、$5.99for 50、$9.99for 500、$19.99無制限。Notion側は無料です。トランスクリプトはほぼそうです。