Diferència entre revisions de la pàgina «Resum de vídeos de JLCava»

De wikijoan
Salta a la navegació Salta a la cerca
 
(Hi ha 3 revisions intermèdies del mateix usuari que no es mostren)
Línia 70: Línia 70:
 
És a dir, el directori del projecte és */home/joan/jlcava*, però necessito executar-ho amb la versió de python que hi ha en el projecte */home/joan/model-whisper*, on també he instal·lat la funcionalitat de descarregar vídeos del youtube.
 
És a dir, el directori del projecte és */home/joan/jlcava*, però necessito executar-ho amb la versió de python que hi ha en el projecte */home/joan/model-whisper*, on també he instal·lat la funcionalitat de descarregar vídeos del youtube.
  
−
===TODO===
+
Sortida:
−
* amagar el password
+
<pre>
 +
/home/joan/model-whisper/whisper-env/bin/python /home/joan/jlcava/cava_resum.py --url https://www.youtube.com/watch?v=1O5wZd1qBqI
 +
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
 +
[20:49:30] Vídeo: Bienvenidos a La CRISIS Demócrata. Así Nos Protegemos | José Luis Cava (2026-11-12)
 +
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
 +
[20:49:32] Transcrivint amb faster-whisper (large-v3-turbo)...
 +
[20:49:52] Generant resum amb qwen3.5:9b...
 +
[20:51:09] Resum desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.md
 +
[20:51:09] Generant àudio amb Piper...
 +
[20:51:14] Àudio desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.mp3
 +
[20:51:14] Fet!
 +
</pre>
 +
 
 +
===Enviar mail (SMTP Gmail)===
 +
En el fitxer *smtp_password.txt* no s'ha de posar el password del Gmail, sinó un password d'aplicació (16 lletres). En el tutorial del Claude s'explica com fer-ho. Jo he creat un password d'aplicació que es diu *enviar_gmail*.
 +
<pre>
 +
...
 +
[23:41:42] Àudio desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.mp3
 +
[23:41:42] SMTP smtp.gmail.com:465 — missatge de 1.4 MB
 +
[23:41:46] Correu enviat a joanqc@gmail.com (port 465)
 +
[23:41:46] Fet!
 +
</pre>
 +
 
 +
Per tal d'amagar el password, en comptes de tenir el fitxer *smtp_password.txt*, el copiem a una carpeta oculta, i la v4 del script accedeix a aquest fitxer.
 +
 
 +
<pre>
 +
mkdir -p ~/.config/cava
 +
mv /home/joan/jlcava/smtp_password.txt ~/.config/cava/smtp_password
 +
chmod 700 ~/.config/cava
 +
chmod 600 ~/.config/cava/smtp_password
 +
</pre>
  
 
{{Autor}}, novembre 2026
 
{{Autor}}, novembre 2026

Revisió de 22:52, 13 nov 2026

Introducció

Com funciona cada pas

  • Vídeo: fa servir yt-dlp i agafa l’últim vídeo del canal que encara no hagi processat. Guarda els ja fets a processats.json, així no repeteix res encara que l’executis dues vegades.
  • Transcripció: fa servir faster-whisper si el tens instal·lat, i si no, openai-whisper, amb el model large-v3-turbo forçat a castellà. En acabar allibera la VRAM.
  • Resum: crida l’API d’Ollama i després li demana que descarregui el model (keep_alive: 0). Així Whisper i el LLM no comparteixen mai els 16 GB. Si el vídeo és molt llarg, primer fa resums parcials per trossos i després els uneix en un de sol.
  • TTS: fa servir Piper amb la veu es_ES-davefx-medium. Funciona amb CPU, és ràpid i té un castellà prou natural. Treu el format markdown abans de llegir el text.
  • Correu: ja hi és, però està desactivat (ENVIAR_CORREU = False) -> ho canvio a True, i funciona.

El directori del projecte:

mkdir jlcava
cd jlcava

ara bé, el whisper està en un altre directori, i en aquest directori del whisper hi ha un venv.

Ollama

pregunta: el ollama suposo que l'he de tenir encès en un altre terminal? Resposta: No cal, en principi. Normalment Ollama ja funciona com a servei en segon pla i el script s’hi connecta sol a http://localhost:11434. Linux: l’instal·lador oficial crea un servei systemd que s’engega sol. Pots comprovar-ho amb systemctl status ollama.

he de canviar el script per un model que tingui descarregat (ollama list). D'entrada, faré servir qwen3.5:9b

Whisper

He de tenir el whisper activat. I puc aprofitar aquest entorn venv per utilitzar el yt-dlp que em permet descarregar vídeos del youtube.

source model-whisper/whisper-env/bin/activate        # Linux
# source model-whisper/whisper-env/Scripts/activate  # si és Windows amb Git Bash
pip install -U yt-dlp piper-tts
pip list | grep -i whisper
  • Si surt faster-whisper, el script fa servir el model large-v3-turbo.
  • Si surt openai-whisper, fa servir turbo. -> aquest és el que faig servir

A l'executar el script *cava_resum.py* surt un error d'incompatibilitat de llibreries

La versió de faster-whisper que tens fa servir una opció de PyAV (la llibreria que llegeix l’àudio) que la versió de PyAV que tens instal·lada ja no accepta. Ho he arreglat al script: ara l’àudio el descodifica ffmpeg i a Whisper li arriba ja preparat, així que PyAV no hi intervé. Substitueix el teu cava_resum.py per la versió nova que t’he enviat.

L’avís de “JavaScript runtime”: Ara mateix no fa fallar res, però yt-dlp avisa que aviat necessitarà Deno per descarregar de YouTube. De moment no ho faig, però en el Claude ss'explica com fer-ho.

Un altre error: RuntimeError: Library libcublas.so.12 is not found or cannot be loaded

/home/joan/model-whisper/whisper-env/bin/pip install nvidia-cublas-cu12 "nvidia-cudnn-cu12==9.*"

veus (la part de TTS)

El resum ja s’ha fet. El trobaràs a sortida/2026-11-12_<id>/2026-11-12_Cava_resumen.md. Ara falla l’últim pas, el de generar l’àudio, perquè no tens descarregada la veu de Piper.

Cada veu de Piper són dos fitxers, el .onnx i el .onnx.json, i tots dos han d’estar a la carpeta veus/. Descarrega’ls així:

mkdir -p /home/joan/jlcava/veus && cd /home/joan/jlcava/veus
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/es/es_ES/davefx/medium/es_ES-davefx-medium.onnx
wget https://huggingface.co/rhasspy/piper-voices/resolve/main/es/es_ES/davefx/medium/es_

Execució

Finalment ja funciona:

/home/joan/model-whisper/whisper-env/bin/python /home/joan/jlcava/cava_resum.py

/home/joan/model-whisper/whisper-env/bin/python /home/joan/jlcava/cava_resum.py --url https://www.youtube.com/watch?v=1O5wZd1qBqI

És a dir, el directori del projecte és */home/joan/jlcava*, però necessito executar-ho amb la versió de python que hi ha en el projecte */home/joan/model-whisper*, on també he instal·lat la funcionalitat de descarregar vídeos del youtube.

Sortida:

 /home/joan/model-whisper/whisper-env/bin/python /home/joan/jlcava/cava_resum.py --url https://www.youtube.com/watch?v=1O5wZd1qBqI
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
[20:49:30] Vídeo: Bienvenidos a La CRISIS Demócrata. Así Nos Protegemos | José Luis Cava (2026-11-12)
WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add  --js-runtimes RUNTIME[:PATH]  to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See  https://github.com/yt-dlp/yt-dlp/wiki/EJS  for details on installing one
[20:49:32] Transcrivint amb faster-whisper (large-v3-turbo)...
[20:49:52] Generant resum amb qwen3.5:9b...
[20:51:09] Resum desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.md
[20:51:09] Generant àudio amb Piper...
[20:51:14] Àudio desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.mp3
[20:51:14] Fet!

Enviar mail (SMTP Gmail)

En el fitxer *smtp_password.txt* no s'ha de posar el password del Gmail, sinó un password d'aplicació (16 lletres). En el tutorial del Claude s'explica com fer-ho. Jo he creat un password d'aplicació que es diu *enviar_gmail*.

...
[23:41:42] Àudio desat: /home/joan/jlcava/sortida/2026-11-12_1O5wZd1qBqI/2026-11-12_Cava_resumen.mp3
[23:41:42] SMTP smtp.gmail.com:465 — missatge de 1.4 MB
[23:41:46] Correu enviat a joanqc@gmail.com (port 465)
[23:41:46] Fet!

Per tal d'amagar el password, en comptes de tenir el fitxer *smtp_password.txt*, el copiem a una carpeta oculta, i la v4 del script accedeix a aquest fitxer.

mkdir -p ~/.config/cava
mv /home/joan/jlcava/smtp_password.txt ~/.config/cava/smtp_password
chmod 700 ~/.config/cava
chmod 600 ~/.config/cava/smtp_password

creat per Joan Quintana Compte, novembre 2026