Inject custom requests.Session with browser User-Agent into YouTubeTranscriptApi

- Add requests import to summarizer.py
- Configure requests.Session with macOS Chrome User-Agent and English Accept-Language headers
- Initialize YouTubeTranscriptApi with custom http_client to bypass YouTube anti-scraping blocks on residential IPs

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Gan, Jimmy
2026-06-04 11:13:17 +08:00
parent 08fbaf7d78
commit 5e91a1f056
+7 -1
View File
@@ -3,6 +3,7 @@ import asyncio
import logging
import httpx
import aiosqlite
import requests
from youtube_transcript_api import YouTubeTranscriptApi
from db import DB_PATH
@@ -32,7 +33,12 @@ Transcript:
def download_transcript(video_id: str) -> str:
try:
transcript_list = YouTubeTranscriptApi().list(video_id)
session = requests.Session()
session.headers.update({
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9"
})
transcript_list = YouTubeTranscriptApi(http_client=session).list(video_id)
# Try to find manual transcripts in preferred languages
try: