fix(youtube): el tema de investigación no es la descripción del vídeo
Build & Deploy ResearchOwl / build-and-push (push) Successful in 8s
Build & Deploy ResearchOwl / build-and-push (push) Successful in 8s
`build_metadata` encabezaba la descripción con el `topic` de la sesión, que no es prosa: es la consulta con la que se investigó, sopa de palabras clave, y en la mitad de las sesiones en español. El Short de Trans-en-Provence subió al canal en INGLÉS con la descripción empezando por "Trans-en-Provence Francia 1981 GEPAN CNES análisis suelo evidencia física". Quien describe el vídeo es el título, y ése ya sale de `meta.title`, que el modelo escribe en inglés. El tema sigue alimentando las etiquetas, donde una frase de búsqueda sí es lo que se quiere. Dos tests: el caso real clavado, y el borde que abre el arreglo — un spec sin nada que citar no puede quedarse con la descripción vacía. No arregla el vídeo ya subido: el token tiene sólo scope `youtube.upload` y `videos.update` pide `youtube` o `youtube.force-ssl`. Ese scope mínimo es deliberado (el bot no puede leer ni borrar nada del canal) y ampliarlo para editar una descripción sale caro; se edita en Studio, que es donde hay que entrar a publicar de todas formas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EHakatofHeJAzdXL26Q5bq
This commit is contained in:
+28
-1
@@ -307,7 +307,34 @@ def test_metadata_carries_the_article_link_and_the_citations():
|
||||
def test_metadata_without_article_url_still_builds():
|
||||
description = build_metadata(SPEC, "JAL 1628")["snippet"]["description"]
|
||||
assert "Full investigation" not in description
|
||||
assert "JAL 1628" in description
|
||||
# Sigue habiendo descripción: las fuentes y los hashtags.
|
||||
assert "FAA · 5 MARCH 1987" in description
|
||||
assert "#Shorts" in description
|
||||
|
||||
|
||||
def test_the_research_topic_never_reaches_the_description():
|
||||
"""El `topic` es la consulta de investigación, no prosa que describa el vídeo.
|
||||
|
||||
Ocurrió: el Short de Trans-en-Provence subió al canal en INGLÉS con la
|
||||
descripción encabezada por "Trans-en-Provence Francia 1981 GEPAN CNES
|
||||
análisis suelo evidencia física" — la consulta tal cual, en español y en
|
||||
sopa de palabras clave. El título ya describe el vídeo y ése sí lo escribe
|
||||
el modelo en inglés (`meta.title`).
|
||||
"""
|
||||
topic = "Trans-en-Provence Francia 1981 GEPAN CNES análisis suelo evidencia física"
|
||||
meta = build_metadata(SPEC, topic)
|
||||
assert topic not in meta["snippet"]["description"]
|
||||
for palabra in ("análisis", "suelo", "evidencia"):
|
||||
assert palabra not in meta["snippet"]["description"]
|
||||
# Pero sigue alimentando las etiquetas, donde una frase de búsqueda sí vale.
|
||||
assert any(topic.startswith(tag[:20]) for tag in meta["snippet"]["tags"])
|
||||
|
||||
|
||||
def test_the_description_survives_a_spec_with_nothing_to_cite():
|
||||
"""Sin tema y sin citas queda el mínimo, no una cadena vacía."""
|
||||
description = build_metadata({"meta": {"title": "T"}, "shots": []},
|
||||
"cualquier tema")["snippet"]["description"]
|
||||
assert description.strip() == "#Shorts #UAP #UFO"
|
||||
|
||||
|
||||
def test_title_comes_from_the_spec_and_is_truncated():
|
||||
|
||||
Reference in New Issue
Block a user