NeverWise / plugin.video.dplay

Kodi unofficial plugin for Dplay
GNU General Public License v3.0
27 stars 17 forks source link

Broken due to APIs #10

Closed dev-giacomopalma closed 5 years ago

dev-giacomopalma commented 7 years ago

APIs seems to be unreachable (dplay changed website and apparently they changed APIs too). I've worked for a bit on a solution but at the moment I've found none.

Scannow commented 7 years ago

Ho osservato il traffico di rete dell'app Dplay per Android. Dato un episodio, viene caricata una playlist m3u8 contenente tutti i formati disponibili. Per ogni formato c'è il link ad un'altra playlist contenente i segmenti video. Il problema è che per richiedere i segmenti sono necessari i cookie generati dalle richieste precedenti. Non essendo esperto di plugin per Kodi, e non avendo trovato risposta googlando, volevo chiedervi: è possibile far eseguire al player integrato di Kodi segmenti in formato .ts?

Se la risposta è negativa, una soluzione alternativa sarebbe scaricare il file m3u8, convertire i percorsi relativi dei segmenti video in assoluti, e darla in pasto al player, a cui però vanno anche passati i cookie per permettergli di effettuare le richieste.

NeverWise commented 7 years ago

Non so se ho capito bene ma una volta trovato il file m3u8 con le qualità del video ti ritroverai con qualcosa tipo questo:

#EXT-X-STREAM-INF:BANDWIDTH=512000,AVERAGE-BANDWIDTH=503000,RESOLUTION=480x270,CLOSED-CAPTIONS=NONE,CODECS="avc1.42001e,mp4a.40.5" EHD~160000D-0.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=775000,AVERAGE-BANDWIDTH=765000,RESOLUTION=640x360,CLOSED-CAPTIONS=NONE,CODECS="avc1.42001e,mp4a.40.5" EHD~160000D-1.m3u8

a questo punto basta sostituire all'indirizzo principale uno dei nuovi m3u8 ossia da così:

https://dplayit.akamaized.net/EHD~160000D/0/hls/EHD~160000D.m3u8?hdnts=st=1492159023~exp=1492245423~acl=/*~hmac=b679b750eb6a00a3fde5f2bfe32f66b2a06d901bb2a9e2d3d44eb8147d517bc9

a così:

https://dplayit.akamaized.net/EHD~160000D/0/hls/EHD~160000D-0.m3u8?hdnts=st=1492159023~exp=1492245423~acl=/*~hmac=b679b750eb6a00a3fde5f2bfe32f66b2a06d901bb2a9e2d3d44eb8147d517bc9

dai in pasto a kodi il nuovo indirizzo ottenuto e lui lo riproduce... se ho capito bene così dovrebbe funzionare...

Ho anche io una domanda per te, come hai fatto a vedere il traffico dell'app DPlay per android? mi spiego meglio, sono anche io riuscito ad analizzare il traffico ma ad un certo punto le chiamate https non le riconosce più e l'app mi da un errore generico. L'unica idea che mi è venuta è che il certificato autofirmato che uso per le chiamate https debba essere installato tra quelli di sistema...

Scannow commented 7 years ago

Se il player interno supporta le playlist m3u8, allora sì, dovrebbe funzionare!

Ho utilizzato Fiddler per Windows. Dalle impostazioni devi:

A questo punto modifica le impostazioni Wi-Fi di Android in modo che utilizzi come proxy ip-computer:8888. Vai su ip-computer:8888 e installa il certificato su Android. Attenzione: Nougat non permette di decriptare traffico HTTPS con certificati non root, quindi ti consiglio di utilizzare Android <7 o installare il certificato come root. Ti lascio una mini guida.

NeverWise commented 7 years ago

Si, il player interno supporta i file m3u8, l'ho fatto più volte ne sono sicurissimo. L'unica cosa che mi lascia un po' perplesso è il discorso che hai fatto sui cookie... mi sembra strano...

Ad ogni modo ti ringrazio molto per il tuo aiuto, mi hai confermato che il mio problema è Android 7, proverò con una versione più vecchia.

Scannow commented 7 years ago

Mi sono confuso io, guardando le richieste http ho notato che venivano passati ogni volta dei cookie nell'header, però effettivamente passandoli come parametri nell'url funziona.

Se posso essere d'aiuto in altro modo sono qui.