Docfile commited on
Commit
bea9f70
·
verified ·
1 Parent(s): 0c02eef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -4
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 youtube-dl"""
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 youtube-dl: {stderr}")
150
- raise Exception(f"Erreur youtube-dl: {stderr}")
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: