Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29b9753aa3 |
No files matched your search
+1
-1
@@ -5,7 +5,7 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
VERSION = "v1.11.2"
|
VERSION = "v1.11.3"
|
||||||
|
|
||||||
|
|
||||||
APP_NAME = "MusicTools"
|
APP_NAME = "MusicTools"
|
||||||
|
|||||||
+18
-1
@@ -247,6 +247,7 @@ def download_playlist(
|
|||||||
**subprocess_flags(),
|
**subprocess_flags(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
last_lines: list = [] # buffer per capire l'errore se exit != 0
|
||||||
for line in _current_process.stdout:
|
for line in _current_process.stdout:
|
||||||
if is_stopped():
|
if is_stopped():
|
||||||
_current_process.terminate()
|
_current_process.terminate()
|
||||||
@@ -254,6 +255,13 @@ def download_playlist(
|
|||||||
progress_callback(i, total, query, "stopped", 0)
|
progress_callback(i, total, query, "stopped", 0)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# Tieni le ultime 10 righe non-progress per il report d'errore
|
||||||
|
stripped = line.strip()
|
||||||
|
if stripped and not re.match(r"^\[download\]\s+\d", stripped):
|
||||||
|
last_lines.append(stripped)
|
||||||
|
if len(last_lines) > 10:
|
||||||
|
last_lines.pop(0)
|
||||||
|
|
||||||
# Parse progress da output yt-dlp
|
# Parse progress da output yt-dlp
|
||||||
pct_match = re.search(r"(\d+(?:\.\d+)?)%", line)
|
pct_match = re.search(r"(\d+(?:\.\d+)?)%", line)
|
||||||
if pct_match and progress_callback:
|
if pct_match and progress_callback:
|
||||||
@@ -278,8 +286,17 @@ def download_playlist(
|
|||||||
if progress_callback:
|
if progress_callback:
|
||||||
progress_callback(i, total, query, "done", 100)
|
progress_callback(i, total, query, "done", 100)
|
||||||
else:
|
else:
|
||||||
|
# Estrai la vera causa da last_lines: cerca la riga ERROR di yt-dlp
|
||||||
|
err_hint = ""
|
||||||
|
for l in reversed(last_lines):
|
||||||
|
if "ERROR" in l or "error" in l:
|
||||||
|
err_hint = l[:220]
|
||||||
|
break
|
||||||
|
if not err_hint and last_lines:
|
||||||
|
err_hint = last_lines[-1][:220]
|
||||||
|
detail = f" — {err_hint}" if err_hint else ""
|
||||||
if progress_callback:
|
if progress_callback:
|
||||||
progress_callback(i, total, query, f"error: yt-dlp exit {return_code}", 0)
|
progress_callback(i, total, query, f"error: yt-dlp exit {return_code}{detail}", 0)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
with _process_lock:
|
with _process_lock:
|
||||||
|
|||||||
Reference in new issue
Block a user