Mets à jour la page en suivant strictement les règles définies dans /home/alan/SITE/WEB/AGENTS.md (section « Règles d'affichage des cartes »).
Mets à jour la page brochu-tv.html avec l'actualité récente du média Brochu TV.

Objectif : recherche d'actualité (moins de 28 jours), max 25 cartes antéchronologiques.

RÈGLE STRICTE DE TEMPS : exécution totale en MOINS DE 3 MINUTES. Max 1 appel webfetch, max 3 appels bash, max 10 steps au total. Aucune itération de recherche : une seule collecte de données, puis édite immédiatement.

Étapes :

1. Découverte — UN SEUL appel bash (pas de webfetch, pas de navigation) :
   curl -sL --max-time 12 "https://www.youtube.com/results?search_query=%22Brochu+TV%22&sp=CAISAhAB" -o /tmp/opencode/brochu-tv.html
   VÉRIFICATION : le fichier doit contenir 'ytInitialData' et des 'videoId' (grep -c 'videoId' /tmp/opencode/brochu-tv.html). Sinon : ÉCHEC_SOURCE, ne pas éditer.
   IMPORTANT : ne JAMAIS réutiliser un fichier /tmp/opencode existant — toujours retélécharger avec le curl ci-dessus.
   IMPORTANT : ne PAS spécifier de User-Agent (curl sans -A) — un User-Agent Chrome déclenche l'anti-bot YouTube (réponse vide). Sans -A, la page s'ouvre (~1 Mo).
   puis python3 pour extraire les vidéos récentes (ytInitialData, structure 'videoRenderer' : clé 'videoId', titre dans title.runs, date dans publishedTimeText.simpleText). Ne garder que les vidéos de moins de 28 jours.
   C'est la SEULE source de découverte. Ne navigue pas ailleurs (les chaînes @BrochuTV et @BrochuTVQuébec sont inactives depuis des mois — ne pas les vérifier, pas d'Odysee, pas de Telegram).
   Les dates relatives (« Streamed 4 days ago ») : convertir par rapport à aujourd'hui 07/08/2026.
   Les titres en français sont déjà en français (Brochu TV est québécois) : conserver tels quels.
   Si le téléchargement échoue (0 octet), réessaie UNE fois (2 tentatives max). Si les 2 tentatives échouent, n'édite pas, ne conclus JAMAIS « page à jour » (interdit d'émettre VERDICT=PAGE_A_JOUR dans ce cas), et termine en signalant : ÉCHEC_SOURCE

2. Vérification des liens (30 s max, UN SEUL appel bash groupé) :
   - Les URLs viennent de l'extraction (https://www.youtube.com/watch?v=<videoId>).
   - Vérifier en parallèle (curl -o /dev/null -w "%{http_code}") les nouvelles URLs à ajouter.
   - 429 = lien valide (rate limit), ne pas retry. Codes acceptés : 200, 204, 302.
   - Dates : convertir les dates relatives en JJ/MM/2026.

3. Mise à jour de brochu-tv.html :
   - Éditer uniquement <ul class="news-grid">.
   - Ajouter les nouvelles cartes .news-card au début (antéchronologique).
   - Supprimer les cartes dont la data-date dépasse 28 jours.
   - Conserver les cartes sans data-date (chaînes YouTube, Odysee, Telegram, Facebook, X/Twitter) en fin de liste.
   - Limite : 25 cartes après filtre (les plus récentes en premier).
   - Classe src-youtube pour les vidéos, src-brochu/src-odysee/src-telegram/src-facebook/src-twitter pour les cartes sans date.
   - favicon Google : https://www.google.com/s2/favicons?domain=youtube.com&sz=64
   - news-tag : « Vidéo » pour les vidéos, « Chaîne »/« Odysee »/« Telegram »/« Facebook »/« X / Twitter » pour les cartes sans date.
   - Titres : toujours en français ; préserver la casse d'origine. Retirer les hashtags et emojis.
   - data-date au format JJ/MM/2026.
   - Ne pas modifier <section class="analysis">, le header, le footer, ni les scripts.

4. Vérifier l'ordre antéchronologique, la cohérence des dates, l'unicité des URLs,
   et que le total ne dépasse PAS 25 cartes. Terminer.
   IMPORTANT : si aucune carte n'a été ajoutée ni supprimée (page réellement à jour après analyse des données de la source), termine ta réponse par la ligne exacte : VERDICT=PAGE_A_JOUR

IMPORTANT : TERMINE TOUJOURS ta réponse par ces 5 lignes exactes (aucune ligne après) :
VERDICT=OK | PAGE_A_JOUR | ECHEC_SOURCE
CARTES_AJOUTEES=<nombre de cartes ajoutees, 0 sinon>
CARTES_SUPPRIMEES=<nombre de cartes supprimees, 0 sinon>
CARTES_TOTAL=<nombre total de cartes apres edition>
ERREURS=<nombre de problemes rencontres, 0 sinon>
