Spaces:
Running
Running
Commit
·
342ea2f
1
Parent(s):
5bea760
Add optional Webshare usage
Browse files
app/services/video_service.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
import uuid
|
| 2 |
from typing import List, Dict, Any, Optional
|
| 3 |
import re
|
|
@@ -5,6 +6,7 @@ from datetime import datetime
|
|
| 5 |
from sentence_transformers import SentenceTransformer
|
| 6 |
from qdrant_client.http import models
|
| 7 |
from youtube_transcript_api import YouTubeTranscriptApi
|
|
|
|
| 8 |
import yt_dlp
|
| 9 |
from app.models.video import VideoSegment, Video, SearchResult
|
| 10 |
from app.services.qdrant_service import qdrant_client
|
|
@@ -171,7 +173,18 @@ def get_video_transcript(video_id: str) -> List[Dict[str, Any]]:
|
|
| 171 |
|
| 172 |
try:
|
| 173 |
# Try to get available transcript languages
|
| 174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
# First, look for English transcript
|
| 177 |
english_transcript = None
|
|
|
|
| 1 |
+
import os
|
| 2 |
import uuid
|
| 3 |
from typing import List, Dict, Any, Optional
|
| 4 |
import re
|
|
|
|
| 6 |
from sentence_transformers import SentenceTransformer
|
| 7 |
from qdrant_client.http import models
|
| 8 |
from youtube_transcript_api import YouTubeTranscriptApi
|
| 9 |
+
from youtube_transcript_api.proxies import WebshareProxyConfig
|
| 10 |
import yt_dlp
|
| 11 |
from app.models.video import VideoSegment, Video, SearchResult
|
| 12 |
from app.services.qdrant_service import qdrant_client
|
|
|
|
| 173 |
|
| 174 |
try:
|
| 175 |
# Try to get available transcript languages
|
| 176 |
+
webshare_username = os.environ.get("WEBSHARE_USERNAME")
|
| 177 |
+
webshare_password = os.environ.get("WEBSHARE_PASSWORD")
|
| 178 |
+
if webshare_username and webshare_password:
|
| 179 |
+
yt_transcript_api = YouTubeTranscriptApi(
|
| 180 |
+
proxy_config=WebshareProxyConfig(
|
| 181 |
+
proxy_username=webshare_username,
|
| 182 |
+
proxy_password=webshare_password,
|
| 183 |
+
)
|
| 184 |
+
)
|
| 185 |
+
else:
|
| 186 |
+
yt_transcript_api = YouTubeTranscriptApi()
|
| 187 |
+
transcript_list = yt_transcript_api.list(video_id)
|
| 188 |
|
| 189 |
# First, look for English transcript
|
| 190 |
english_transcript = None
|