fix(shorts): son par defaut, avance auto, anti-Forbidden DM, autoplay Twitch/Rumble
CI / build-and-test (push) Successful in 14m56s

Son active par defaut (YT/OD/DM/PT avec son ; clips Twitch en muet force, sans API de volume). Avance auto en fin de lecture (infoDelivery YT + minuteur duree generique garde par index/videoId, ignore si onglet cache). Dailymotion : allow_embed demande cote serveur, mappe en embeddable, propage en raw.allowEmbed pour le garde isPlayable (fini les Forbidden). Rumble autoplay=1/2 selon muet + nudge playVideo YT.
This commit is contained in:
2026-09-30 10:40:03 -04:00
parent 8e087daf93
commit 8e5f1d6c65
5 changed files with 144 additions and 12 deletions
+8 -1
View File
@@ -20,7 +20,11 @@ const handler = {
page: Math.max(1, Number(page || 1)).toString(),
// Map our sort to Dailymotion API sort: relevance | visited (views) | recent (date)
sort: (sort === 'date' ? 'recent' : (sort === 'views' ? 'visited' : 'relevance')),
fields: 'id,title,thumbnail_url,thumbnail_360_url,thumbnail_480_url,thumbnail_720_url,duration,views_total,width,height,owner.id,owner.screenname,owner.avatar_80_url,created_time'
// `allow_embed` est indispensable : une vidéo dont le propriétaire a
// désactivé l'embed répond "Forbidden" dans le player. Propagé tel
// quel (`embeddable`) pour que le front l'exclue AVANT l'affichage
// (même garde que le chemin historique `raw.allowEmbed`).
fields: 'id,title,thumbnail_url,thumbnail_360_url,thumbnail_480_url,thumbnail_720_url,duration,views_total,width,height,allow_embed,owner.id,owner.screenname,owner.avatar_80_url,created_time'
})
);
@@ -47,6 +51,9 @@ const handler = {
views: Number(item.views_total || 0),
uploadedDate: item.created_time ? new Date(item.created_time * 1000).toISOString() : '',
type: 'video',
// `false` explicite uniquement : champ absent = on ne sait pas (le
// doute profite à la vidéo, doctrine « absent = absent »).
...(typeof item.allow_embed === 'boolean' ? { embeddable: item.allow_embed } : {}),
...(Number.isFinite(w) && w > 0 ? { width: w } : {}),
...(Number.isFinite(h) && h > 0 ? { height: h } : {}),
};