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 logging
|
||||||
import httpx
|
import httpx
|
||||||
import aiosqlite
|
import aiosqlite
|
||||||
|
import requests
|
||||||
from youtube_transcript_api import YouTubeTranscriptApi
|
from youtube_transcript_api import YouTubeTranscriptApi
|
||||||
from db import DB_PATH
|
from db import DB_PATH
|
||||||
|
|
||||||
@@ -32,7 +33,12 @@ Transcript:
|
|||||||
|
|
||||||
def download_transcript(video_id: str) -> str:
|
def download_transcript(video_id: str) -> str:
|
||||||
try:
|
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 to find manual transcripts in preferred languages
|
||||||
try:
|
try:
|
||||||
|
|||||||
Reference in New Issue
Block a user