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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user