¿Qué hace Investigación de Podcasts?
Usa los scripts incluidos con el mismo intérprete de Python utilizado durante la instalación. En macOS/Linux, prefiere python3; en Windows, prefiere py -3. Si el usuario usó otro lanzador durante la instalación, sigue usando ese lanzador. No requieras una clave API para el flujo de trabajo principal.
Verificación Previa
Resuelve el directorio de este archivo como SKILL_DIR. Antes de la primera tarea en una máquina, ejecuta:
python3 "$SKILL_DIR/scripts/check_setup.py" --skill-dir "$SKILL_DIR"
Continúa solo cuando todas las comprobaciones requeridas muestren PASS. Las filas con WARN son alternativas opcionales. Si falla una comprobación requerida, lee references/setup.md, corrige el elemento informado y vuelve a ejecutar la comprobación.
Mantén al menos 5 GB de espacio libre en disco; se recomiendan 8 GB. La descarga inicial del modelo Whisper local es de aproximadamente 0.5–1.6 GB, y el audio descargado requiere espacio adicional.
Flujo de Trabajo
1. Buscar
Elige una consulta en inglés cuando mejore la cobertura, preservando el tema deseado por el usuario.
python3 "$SKILL_DIR/scripts/search_podcasts.py" \
--topic "TEMA" \
--days-back 30 \
--max 10 \
--output-dir "DIR_TRABAJO"
Usa un directorio de trabajo aprobado por el usuario. El script crea episodes.json.
2. Deja que el usuario seleccione episodios
Muestra los resultados numerados con título, programa, fecha, duración y descripción. Pregunta qué episodios analizar. No descargues todos los resultados sin la selección del usuario a menos que el usuario ya haya solicitado todos los resultados.
3. Descargar
python3 "$SKILL_DIR/scripts/audio_downloader.py" \
--episodes-json "DIR_TRABAJO/episodes.json" \
--select "1,3,5" \
--output-dir "DIR_TRABAJO"
El script intenta primero RSS y luego YouTube. La extracción de YouTube requiere FFmpeg. Escribe episodes_with_audio.json y marca los fallos como unavailable.
4. Transcribir
python3 "$SKILL_DIR/scripts/transcriber.py" \
--audio-dir "DIR_TRABAJO" \
--model turbo \
--language auto
El backend se selecciona automáticamente: MLX en Apple Silicon y faster-whisper en otros entornos. Usa --model small en máquinas más lentas solo con CPU. Usa --model api solo cuando el usuario acepte explícitamente el requisito y el costo de la API de OpenAI.
5. Analizar con fidelidad a las fuentes
Lee la transcripción de cada episodio seleccionado y episodes_with_audio.json. Trata las descripciones y los resúmenes web como evidencia secundaria, nunca como transcripciones. Si el audio no está disponible, usa la descripción del episodio y la búsqueda web solo cuando estén disponibles, etiqueta la evidencia como secundaria y no presentes texto reconstruido como una cita directa.
Escribe un informe conciso en Markdown en DIR_TRABAJO/[tema]_podcast_report.md:
# [Tema] resumen de puntos de vista del podcast
**Fecha de investigación**: AAAA-MM-DD | **Fuente**: Apple Podcasts/RSS | **Alcance**: N episodios
## Conclusión en una oración
Expresa la opinión dominante y el desacuerdo más importante en 2–3 oraciones.
## Resumen de puntos de vista
| Orador u organización | Postura | Opinión central | Cita textual | Episodio |
|---|---|---|---|---|
## Principales desacuerdos
Enumera solo 2–3 desacuerdos genuinos. Atribuye cada posición a un episodio y orador nombrados cuando la transcripción identifique claramente al orador.
## Resúmenes de episodios
### [Programa]: [Episodio]
**Invitado**: ... | **Fecha**: ... | **Duración**: ...
1. De tres a cinco puntos basados en las fuentes.
No inventes identidades de oradores, citas, fechas o posiciones. Cuando la transcripción no establezca quién dijo una línea, atribúyela al episodio en lugar de adivinar.
6. Entregar
Muestra el informe en Markdown y enlaza los archivos de trabajo. Crea un documento de Word solo cuando se solicite:
python3 "$SKILL_DIR/scripts/md_to_docx.py" \
"DIR_TRABAJO/[tema]_podcast_report.md" \
"DIR_TRABAJO/[tema]_podcast_report.docx"
En Windows, reemplaza python3 con py -3 y usa rutas de Windows. No traduzcas el script de Python en sí.
Criterios de Finalización
La tarea está completa solo cuando:
- Se indican el alcance de la búsqueda y los episodios seleccionados.
- Cada episodio descargado tiene una transcripción o está marcado explícitamente como no disponible.
- Las citas directas provienen de transcripciones; los resúmenes secundarios están etiquetados.
- El informe distingue el consenso del desacuerdo y atribuye las afirmaciones a los episodios.
- El informe y los metadatos de respaldo se guardan en el directorio de trabajo.
Alternativas
- Sin resultados de búsqueda: reintenta una vez con una consulta en inglés más clara o un rango de fechas más amplio.
- RSS falla: permite la alternativa de YouTube incluida cuando FFmpeg está instalado.
- Ambas rutas de audio fallan: usa la descripción y la evidencia web disponible, etiqueta la limitación y omite las citas directas.
- La transcripción es demasiado larga para el contexto: resúmela en fragmentos secuenciales, mantén la atribución al episodio y luego compara los resúmenes de los fragmentos.
- La transcripción local no está disponible: lee
references/setup.md; usa OpenAI solo con la aprobación explícita del usuario y una clave configurada.