Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -119,14 +119,17 @@ def is_youtube_url(url):
|
|
119 |
parsed = urlparse(url)
|
120 |
return any(domain in parsed.netloc for domain in ['youtube.com', 'youtu.be'])
|
121 |
|
|
|
|
|
122 |
def download_youtube_video(url):
|
123 |
-
"""Télécharge une vidéo YouTube en utilisant subprocess avec
|
124 |
try:
|
125 |
with tempfile.TemporaryDirectory() as temp_dir:
|
126 |
output_template = os.path.join(temp_dir, '%(title)s.%(ext)s')
|
127 |
|
|
|
128 |
command = [
|
129 |
-
'youtube-dl
|
130 |
'--format', 'best[filesize<50M]',
|
131 |
'--quiet',
|
132 |
'--no-warnings',
|
@@ -136,6 +139,13 @@ def download_youtube_video(url):
|
|
136 |
|
137 |
logger.info(f"Début du téléchargement de la vidéo: {url}")
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
process = subprocess.Popen(
|
140 |
command,
|
141 |
stdout=subprocess.PIPE,
|
@@ -146,8 +156,8 @@ def download_youtube_video(url):
|
|
146 |
stdout, stderr = process.communicate()
|
147 |
|
148 |
if process.returncode != 0:
|
149 |
-
logger.error(f"Erreur
|
150 |
-
raise Exception(f"Erreur
|
151 |
|
152 |
downloaded_files = os.listdir(temp_dir)
|
153 |
if not downloaded_files:
|
@@ -167,6 +177,7 @@ def download_youtube_video(url):
|
|
167 |
logger.error(f"Erreur lors du téléchargement de la vidéo: {e}")
|
168 |
return None
|
169 |
|
|
|
170 |
def telecharger_pdf(url):
|
171 |
"""Télécharge un PDF et retourne le chemin du fichier"""
|
172 |
try:
|
|
|
119 |
parsed = urlparse(url)
|
120 |
return any(domain in parsed.netloc for domain in ['youtube.com', 'youtu.be'])
|
121 |
|
122 |
+
|
123 |
+
|
124 |
def download_youtube_video(url):
|
125 |
+
"""Télécharge une vidéo YouTube en utilisant subprocess avec yt-dlp"""
|
126 |
try:
|
127 |
with tempfile.TemporaryDirectory() as temp_dir:
|
128 |
output_template = os.path.join(temp_dir, '%(title)s.%(ext)s')
|
129 |
|
130 |
+
# Using yt-dlp instead of youtube-dl
|
131 |
command = [
|
132 |
+
'yt-dlp', # Changed from youtube-dl to yt-dlp
|
133 |
'--format', 'best[filesize<50M]',
|
134 |
'--quiet',
|
135 |
'--no-warnings',
|
|
|
139 |
|
140 |
logger.info(f"Début du téléchargement de la vidéo: {url}")
|
141 |
|
142 |
+
# Check if yt-dlp is installed
|
143 |
+
try:
|
144 |
+
subprocess.run(['yt-dlp', '--version'], capture_output=True, check=True)
|
145 |
+
except (subprocess.SubprocessError, FileNotFoundError):
|
146 |
+
logger.error("yt-dlp n'est pas installé")
|
147 |
+
raise RuntimeError("yt-dlp n'est pas installé. Installez-le avec 'pip install yt-dlp'")
|
148 |
+
|
149 |
process = subprocess.Popen(
|
150 |
command,
|
151 |
stdout=subprocess.PIPE,
|
|
|
156 |
stdout, stderr = process.communicate()
|
157 |
|
158 |
if process.returncode != 0:
|
159 |
+
logger.error(f"Erreur yt-dlp: {stderr}")
|
160 |
+
raise Exception(f"Erreur yt-dlp: {stderr}")
|
161 |
|
162 |
downloaded_files = os.listdir(temp_dir)
|
163 |
if not downloaded_files:
|
|
|
177 |
logger.error(f"Erreur lors du téléchargement de la vidéo: {e}")
|
178 |
return None
|
179 |
|
180 |
+
|
181 |
def telecharger_pdf(url):
|
182 |
"""Télécharge un PDF et retourne le chemin du fichier"""
|
183 |
try:
|