From 5e91a1f0567862109218b7b31fb84d147b18c6b4 Mon Sep 17 00:00:00 2001 From: "Gan, Jimmy" Date: Thu, 4 Jun 2026 11:13:17 +0800 Subject: [PATCH] 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 --- backend/summarizer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/backend/summarizer.py b/backend/summarizer.py index 48d9aa3..d3cc6e2 100644 --- a/backend/summarizer.py +++ b/backend/summarizer.py @@ -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: