feat(downloads): granular post-processing phase labels

ffmpeg post-steps have no byte-progress, so instead of a silent 'Processing' the row now names
the current step (Merging / Extracting audio / Embedding thumbnail / Removing sponsors / Writing
metadata) with an indeterminate pulse. Byte-progress phases (video/audio) keep the % bar.
i18n en/hu/de.
This commit is contained in:
npeter83 2026-07-03 04:01:53 +02:00
parent 4b15d55092
commit fc69656d12
5 changed files with 39 additions and 8 deletions

View file

@ -36,7 +36,11 @@ const STATUS_CLS: Record<string, string> = {
canceled: "text-muted",
};
const PHASE_KEYS = ["video", "audio", "merging", "processing"];
// Byte-progress phases (show a % bar) vs ffmpeg post-steps (no %, indeterminate pulse).
const DOWNLOAD_PHASES = ["video", "audio"];
const PHASE_KEYS = [
"video", "audio", "merging", "audio_extract", "thumbnail", "sponsorblock", "metadata", "processing",
];
function StatusPill({ job }: { job: DownloadJob }) {
const { t } = useTranslation();
@ -116,8 +120,8 @@ function DownloadRow({
</div>
{running && (
<div className="mt-1.5">
{job.phase === "merging" || job.phase === "processing" ? (
// No meaningful percentage during ffmpeg — show an indeterminate pulse.
{job.phase && !DOWNLOAD_PHASES.includes(job.phase) ? (
// ffmpeg post-steps aren't byte-progress — show an indeterminate pulse, no %.
<div className="h-1.5 rounded-full bg-surface overflow-hidden">
<div className="h-full w-full bg-accent/60 animate-pulse" />
</div>

View file

@ -41,6 +41,10 @@
"video": "Video wird geladen",
"audio": "Audio wird geladen",
"merging": "Zusammenführen",
"audio_extract": "Audio wird extrahiert",
"thumbnail": "Vorschaubild einbetten",
"sponsorblock": "Sponsoren entfernen",
"metadata": "Metadaten schreiben",
"processing": "Verarbeitung"
},
"actions": {

View file

@ -41,6 +41,10 @@
"video": "Downloading video",
"audio": "Downloading audio",
"merging": "Merging",
"audio_extract": "Extracting audio",
"thumbnail": "Embedding thumbnail",
"sponsorblock": "Removing sponsors",
"metadata": "Writing metadata",
"processing": "Processing"
},
"actions": {

View file

@ -41,6 +41,10 @@
"video": "Videósáv letöltése",
"audio": "Hangsáv letöltése",
"merging": "Összefűzés",
"audio_extract": "Hang kinyerése",
"thumbnail": "Bélyegkép beágyazása",
"sponsorblock": "Szponzorok eltávolítása",
"metadata": "Metaadat írása",
"processing": "Feldolgozás"
},
"actions": {