+ allowfullscreen referrerpolicy="strict-origin-when-cross-origin">
} @else if (loading()) {
-
+
} @else if (error()) {
-
+
{{ error() }}
}
-
+
@if (current(); as v) {
-
+
@@ -44,12 +46,26 @@
@{{ v.uploaderName }}
Ouvrir
+ class="chip pointer-events-auto shrink-0 px-3 py-2 rounded bg-white/20 hover:bg-white/30 text-xs">Ouvrir
}
+
+
+
@if (busyMore()) {
Chargement…
}
@@ -80,4 +96,5 @@
+
Si une vidéo affiche une erreur (153, Forbidden, introuvable…), utilisez ⏭ Passer : elle est retirée du flux.
diff --git a/src/components/shorts/watch-short.component.ts b/src/components/shorts/watch-short.component.ts
index b98f628..4998bc2 100644
--- a/src/components/shorts/watch-short.component.ts
+++ b/src/components/shorts/watch-short.component.ts
@@ -8,9 +8,20 @@ import { InstanceService, Provider } from '../../services/instance.service';
import { Video } from '../../models/video.model';
import { isShortVideo, YOUTUBE_SHORT_MAX_SECONDS } from '../../app/shared/utils/video-kind';
-const SHORTS_QUERY = 'shorts';
-/** Requête de secours quand la première ne donne aucun Short. */
-const SHORTS_ALT_QUERY = '#shorts';
+/**
+ * Rotation de requêtes par provider pour un défilement infini façon YouTube
+ * Shorts : quand une page/un curseur est épuisé, on passe à la requête
+ * suivante au lieu d'afficher une impasse. Les requêtes restent génériques
+ * pour maximiser le nombre de résultats courts.
+ */
+const SHORTS_QUERIES: Record