Nou sistema de decarrega 3alacarta (part 1)

Avui he volgut posar-me a intentar recuperar una eina que tenia una mica oblidada i que había modificat per mí, el gnulinux.cat tv3 que fa molt bé la seva feina però es va deixar d’actualitzar de fa molt temps.

Els developers es van posar en contacte amb mí per afegir-me al projecte (gràcies per pensar amb mí!) però alguna cosa vaig fer malament i m’han suprimir (o no vaig arribar a crear) la meva compra de SourceForge.net… un desastre.

Avui a mes he entrat a la secció de vídeos del Club Super 3 i he pogut comprobar que tenen continguts HD d’algunes sèries, concretament conviuen formats de 360p, 480p (alguns casos l’anomenen 576p) y 720p, així que era l’hora de posar-se mans a l’obra!

Per començar tenia que saber com ho feia el reproductor integrat per triar entre una font i l’altre, tenia un butó que intercanviava una versió amb l’altre (com a mínim en el capítol de Bola de Drac Z Kai que estava fent les probes ja que és el que estava en le TV en aquell moment, i mira…) així que he instalat el Wireshark i hem començat a mirar paquets… us he dit que ni idea de Wireshark? doncs això… ni idea del que tenia que buscar…

Reproduía el video, li donava a play (o rec) en el wireshark, esperava a un determinat segon per canviar la versió (5, 10segons), parava wireshark i mirava el que havía fet…

Al cap d’una estona i de 3 intents d’uns 15-30 segons al final he trobat el que buscava (ha set més complicat del que explico però més senzill del que esperava).

Una crida a un servidor que resultava ser del ccma (bingo!) i que retornava un JSON, en aquest JSON he pogut veure el títol del capítol, tocava buscar la font del video. Abans de carregar res en algun visualitzador de JSON he anat per feina passant pel notepad++ (que no em pintava res de colors com esperava, però bé… millor que el notepad/Bloc de notas) i he anat buscant. Entre les coses que hi ha en el JSON destacar les següents:

  • Nom de la sèrie
  • Número de capítol
  • Nom del capítol (que algunes vegades porta escrit el número)
  • URL al vídeo de la versió 720p
  • URL al vídeo de la versió 480p
  • URL als subtítols en format vtt

Fantàstic! Què mes es pot demanar? He començat a tocar des de windows amb PowerShell, té la comanda curl redireccionada a Invoke-WebRequest (igual que wget LOL) i he pogut importar el JSON sense problemes, però el tractament de JSON en PowerShell esta lluny de ser prou senzill i no he trobat la manera d’accedir a les dades que volia, per tant… ens hem arrumengat (bé, anava amb màniga curta) i ens hem passat al mac, era hora d’entrar a la consola per excelència en base unix/linux.

En poques paraules, que ampliarem en un pròxim post, ens hem centrat en aquest JSON, mitjançant awk (m’encanta awk per si algú no ho sabia, awk salva vides cada dia… o no, però bueno) per tant no és necessari cap altre eina, he estirat la funció de gnulinuxcat per triar entre wget i curl (tot i que soc més de curl, però el wget és mes maco quan descarrega), també comprobavem els dos servidors diferents que hi ha actualment (que de fet son quatre, dos per calitat 480p i dos per 720p), versió 720p per defecte si no existeix (tot i forçar-la) tria la 480p, anomena el fitxer automàticament “sèrie – captiol.mp4” i crec que poc més he afegit.

Com us dic, en pròxims post passarem a comentar i penjar el codi a no sé que al final sigui integrat en el projecte existent.

Us espero!

 

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir el correu brossa. Aprendre com la informació del vostre comentari és processada