diff --git a/frontend/src/pages/Watch.jsx b/frontend/src/pages/Watch.jsx
index 24f5f6f..efaa861 100644
--- a/frontend/src/pages/Watch.jsx
+++ b/frontend/src/pages/Watch.jsx
@@ -671,8 +671,8 @@ export default function Watch() {
const { data: subtitleFiles = [] } = useQuery({
queryKey: ["subtitle-files", youtubeVideoId],
queryFn: () => getSubtitleFiles(youtubeVideoId).then(r => r.data),
- enabled: fileReady,
- staleTime: Infinity,
+ enabled: !!youtubeVideoId,
+ staleTime: 60_000,
});
const { data: dlStatus } = useQuery({
@@ -995,41 +995,22 @@ export default function Watch() {
)}
{(() => {
- // Subs already on disk → show langs + "+" to add more
- if (subtitleFiles.length > 0 && !subsRequested) return (
-
-
- CC: {subtitleFiles.map(s => s.lang).join(", ")}
-
-
-
- );
- // Not yet asked → show CC chip
+ const onDisk = subtitleFiles.map(s => s.lang);
+ const onDiskSet = new Set(onDisk);
+
if (!subsRequested) return (
);
- // Loading YouTube subtitle list
- if (subsLoading) return (
-
-
- CC
-
- );
- const manual = new Set(availableSubs?.manual ?? []);
- const auto = (availableSubs?.auto ?? []).filter(l => !manual.has(l));
- if (!manual.size && !auto.length) return (
- No CC
- );
+
+ const ytManual = (availableSubs?.manual ?? []).filter(l => !onDiskSet.has(l));
+ const ytAuto = (availableSubs?.auto ?? []).filter(l => !onDiskSet.has(l) && !ytManual.includes(l));
+ const needsDownload = selectedSubLang && !onDiskSet.has(selectedSubLang);
+
return (
<>
- {dlComplete && selectedSubLang && (
+ {dlComplete && needsDownload && (
)}