Spaces:
Running
Running
Update tools.py
Browse files
tools.py
CHANGED
@@ -527,19 +527,28 @@ def read_file(file_path: str) -> Dict[str, Any]:
|
|
527 |
def get_youtube_transcript(video_url: str) -> Dict[str, Any]:
|
528 |
"""
|
529 |
Récupère la transcription d'une vidéo YouTube à partir de son URL standard.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
530 |
"""
|
531 |
try:
|
532 |
video_id = None
|
533 |
-
# Cherche l'ID après "v="
|
534 |
if "v=" in video_url:
|
535 |
video_id = video_url.split("v=")[1].split('&')[0]
|
536 |
-
|
537 |
-
|
|
|
538 |
|
539 |
if not video_id:
|
540 |
return {"error": f"Impossible d'extraire l'ID de la vidéo depuis l'URL : {video_url}"}
|
541 |
|
542 |
print(f"📖 Récupération de la transcription pour la vidéo YouTube : {video_id}")
|
|
|
543 |
transcript_list = YouTubeTranscriptApi.get_transcript(video_id, languages=['en', 'fr'])
|
544 |
transcript_text = " ".join([item['text'] for item in transcript_list])
|
545 |
return {"status": "success", "transcript": transcript_text[:15000]}
|
|
|
527 |
def get_youtube_transcript(video_url: str) -> Dict[str, Any]:
|
528 |
"""
|
529 |
Récupère la transcription d'une vidéo YouTube à partir de son URL standard.
|
530 |
+
|
531 |
+
Args:
|
532 |
+
video_url (str): L'URL complète et standard de la vidéo YouTube dont la transcription est nécessaire.
|
533 |
+
|
534 |
+
Returns:
|
535 |
+
Un dictionnaire contenant la transcription complète sous la clé 'transcript' en cas de succès,
|
536 |
+
ou un message d'erreur sous la clé 'error' en cas d'échec.
|
537 |
"""
|
538 |
try:
|
539 |
video_id = None
|
540 |
+
# Cherche l'ID après "v="
|
541 |
if "v=" in video_url:
|
542 |
video_id = video_url.split("v=")[1].split('&')[0]
|
543 |
+
# Cherche l'ID dans les URLs du benchmark
|
544 |
+
elif video_url.startswith("http://googleusercontent.com/youtube.com/"):
|
545 |
+
video_id = video_url.split('/')[-1]
|
546 |
|
547 |
if not video_id:
|
548 |
return {"error": f"Impossible d'extraire l'ID de la vidéo depuis l'URL : {video_url}"}
|
549 |
|
550 |
print(f"📖 Récupération de la transcription pour la vidéo YouTube : {video_id}")
|
551 |
+
# On demande la transcription en anglais (le plus courant) et en français.
|
552 |
transcript_list = YouTubeTranscriptApi.get_transcript(video_id, languages=['en', 'fr'])
|
553 |
transcript_text = " ".join([item['text'] for item in transcript_list])
|
554 |
return {"status": "success", "transcript": transcript_text[:15000]}
|