Se il tuo provider IPTV ti ha dato un login Xtream (server, username, password) ma il player che vuoi usare accetta soltanto un singolo URL M3U — o viceversa — non sei bloccato. Le due cose sono la stessa cosa. Sotto sotto, un login Xtream è solo un modo ordinato di scrivere tutto quello che un URL M3U contiene già.

Questa guida spiega la conversione in entrambe le direzioni, a cosa fare attenzione e come farla senza digitare le credenziali in posti dove uno sconosciuto può leggerle. Il convertitore URL Xtream ↔ M3U su questo sito fa la conversione interamente nel tuo browser — dietro quella pagina non c'è alcun endpoint server.

Tre etichette in alto — server, username, password — con impulsi colorati che scendono nelle parti corrispondenti della formula dell'URL get.php in basso.

L'URL M3U è un template fisso; un login Xtream sono solo le tre credenziali infilate dentro.

Perché la conversione si pone

Lo stesso provider supporta quasi sempre entrambe le forme, ma il player che capita di installare ne chiederà solo una. Le app non sono d'accordo su qualche punto specifico:

  • I player solo M3U vecchio stile (VLC, le app di base delle Smart TV, i box IPTV dedicati) prendono un singolo URL. Non conoscono gli endpoint API di Xtream; scaricano un file di playlist piatto e riproducono gli stream da lì.
  • I player che conoscono Xtream (la maggior parte delle app IPTV moderne, Klipa compresa) preferiscono la tripla di credenziali. La usano per scaricare la lista canali live, la libreria VOD, il catalogo serie e l'EPG come documenti separati — una categorizzazione migliore, aggiornamento dinamico, sezioni on-demand che l'export M3U non può rappresentare.

Se il provider ti ha dato una forma e il player vuole l'altra, la conversione è un'operazione da 30 secondi. Non devi chiedere al provider "l'altro formato" — te li sta già dando entrambi, solo in una forma sola.

La formula da Xtream a M3U

Ogni provider Xtream usa lo stesso template di URL. Una volta che lo conosci, puoi costruire l'URL M3U a mano dalle credenziali:

http://<server>:<porta>/get.php?username=<USERNAME>&password=<PASSWORD>&type=m3u_plus&output=mpegts

Tre esempi concreti, date le credenziali server: http://server.example:8080, username: ABC, password: XYZ:

M3U:        http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus&output=mpegts
EPG:        http://server.example:8080/xmltv.php?username=ABC&password=XYZ
player_api: http://server.example:8080/player_api.php?username=ABC&password=XYZ

Le parti:

  • get.php è l'endpoint della playlist. Si chiama sempre get.php — qui non esiste una convenzione di naming specifica del provider.
  • type=m3u_plus chiede il formato M3U esteso, che include loghi dei canali e group title. type=m3u liscio funziona anche, ma produce una playlist più scarna; vuoi quasi sempre m3u_plus.
  • output=mpegts chiede stream da riprodurre in MPEG-TS grezzo. L'altra opzione comune è output=hls, che produce URL HLS (.m3u8) — utili per i browser e alcuni dispositivi Apple, meno supportati universalmente sui box TV. Se il tuo player è schizzinoso, cambiare output è la prima cosa da provare.
  • xmltv.php è l'endpoint EPG. Stesse credenziali, documento separato. La maggior parte dei player accetta questo URL in un campo diverso ("URL EPG" o "URL XMLTV").
  • player_api.php è l'API JSON. I player che "parlano Xtream nativamente" la usano per ottenere gli alberi live/VOD/serie e i loghi dei canali.

Il contrario: estrarre le credenziali da un URL M3U

Dato un URL M3U che assomiglia alla formula sopra, puoi leggere i tre campi Xtream direttamente da lì:

http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus
                                            └────┘          └────┘
                                          username        password
  • Server è tutto ciò che sta prima del primo slash dopo l'host: http://server.example:8080. Togli /get.php e tutto quello che viene dopo.
  • Username è il valore del parametro di query username.
  • Password è il valore del parametro di query password.

Se manca un parametro, l'URL non è nel formato Xtream standard. Alcuni provider distribuiscono URL M3U semplici che non contengono affatto credenziali — di solito playlist statiche o basate su token in cui il segreto è l'URL stesso. Da questi non c'è nulla da estrarre; li usi così come sono in qualsiasi player che accetti M3U.

Trappole comuni

Alcuni dettagli fanno regolarmente cadere in errore.

Codifica URL dei caratteri speciali

Se la tua password contiene caratteri come &, =, +, #, % o /, vanno codificati in percent-encoding dentro l'URL. Un & letterale in mezzo alla password rompe il parsing — il player tratterebbe tutto ciò che viene dopo come un parametro di query separato.

La maggior parte dei pannelli di controllo dei provider lo fa per te. Se stai costruendo l'URL a mano e nella password hai qualcosa di strano, fai prima passare la password da un qualsiasi strumento di "URL encode". Oppure salta del tutto e lascia che il convertitore nel browser lo faccia per te.

La porta

I provider Xtream girano molto raramente sulle porte di default 80 o 443. Le tipiche sono 8080, 25461, 8000, o qualche porta alta a caso. La porta fa parte dell'URL del server, non è opzionale. Se vedi http://server.example/get.php?… senza porta, o sta usando la 80 (raro) o il provider ha un reverse proxy davanti (anche raro). Quasi sempre la porta manca semplicemente perché qualcuno ha copiato l'URL a mano e l'ha persa.

http vs https

La maggior parte dei provider Xtream serve HTTP, non HTTPS. La forma https:// spesso restituisce un errore di certificato o un 404 perché il server non fa proprio il bind del TLS. Se ti hanno dato un URL del server con https:// e non funziona, prova http://. Il trade-off è che la tua password viaggia in chiaro; purtroppo è la norma per i provider IPTV.

Path personalizzato sull'URL M3U

Alcuni provider personalizzano il routing — invece di /get.php vedrai /playlist.m3u, /m3u.php o addirittura /index.php?type=m3u. Le credenziali in quegli URL corrispondono comunque a quello che si aspetta l'API Xtream, quindi il convertitore le estrarrà correttamente, ma l'URL della playlist che usa il provider è non standard. Se costruisci il tuo URL M3U usando il path standard /get.php, il provider potrebbe rifiutarlo. In questi casi, tieni l'URL originale che ti ha dato il provider — non provare a "sistemarlo".

Spazi invisibili in coda alle credenziali

Incollare da un'email o da un post di un forum si trascina dietro regolarmente uno spazio finale invisibile, un a capo o uno spazio non separabile sullo username. L'API Xtream tratta ABC e ABC come due username diversi; ottieni una risposta di autenticazione fallita identica a quella di una password sbagliata. Il convertitore taglia automaticamente gli spazi dall'username e ti avvisa quando l'ha dovuto fare. Se costruisci l'URL a mano, incolla prima ogni campo in un editor di testo semplice e controlla visivamente la fine.

Fare la conversione in sicurezza

Diversi siti offrono questa conversione online. La maggior parte è ok; alcuni sono sospetti. Il rischio è semplice: credenziali incollate nel form di uno sconosciuto possono essere loggate, raccolte o riusate. Anche un operatore onesto e senza intenti malevoli ha dei log di accesso.

Il convertitore su questo sito è costruito in modo da non poter avere log di accesso sulle tue credenziali, perché dietro non c'è alcun endpoint server. La conversione gira interamente nel tuo browser come JavaScript. Le credenziali vivono in elementi di input del DOM finché la pagina non viene chiusa; non sono nella barra dell'URL, non sono in localStorage e non vengono inviate da nessuna parte. Se apri la scheda di rete del browser durante una conversione, vedrai esattamente zero richieste in uscita che trasportano le credenziali.

Questo è lo standard che ti devi aspettare da qualunque strumento che chiede credenziali IPTV. Se l'interfaccia di un convertitore manda una richiesta di rete quando clicchi "converti", per definizione ha trasmesso le tue credenziali da qualche parte.

Dopo la conversione: verifica prima di importare

Un URL costruito con successo non significa un URL funzionante. Entrambe le direzioni di conversione sono trasformazioni di stringhe deterministiche — sono corrette come trasformazioni, ma non ti dicono se le credenziali sono valide, se l'abbonamento è attivo o se il server è raggiungibile.

Due controlli economici prima di impegnarti a importare:

  • Per gli URL M3U, incolla il risultato nel tester di playlist M3U. Scarica la playlist, la analizza e sonda i primi 100 stream. Qualunque cosa verde significa che l'URL è buono; qualunque cosa rossa ti indica la modalità di errore specifica (risposta HTML, 404, stream morti).
  • Per le credenziali Xtream, incolla la tripla nella verifica credenziali Xtream. Chiama l'API lato server e restituisce lo stato di autenticazione, la scadenza, i limiti di connessione e il numero di canali. Distingue "password sbagliata" da "abbonamento scaduto" da "server irraggiungibile".

Lanciare uno di questi prima di metterti a installare un player ti risparmia circa venti minuti di debug quando il problema sono le credenziali stesse.

Quando l'URL M3U non contiene credenziali

Una piccola parte degli URL M3U che incontrerai non sono affatto Xtream. Sono playlist piatte ospitate su un server statico, o URL bearer-token in cui il segreto è incorporato nel path invece che nella query string:

https://server.example/playlists/9c1f4a8b3e/stream.m3u8

Non c'è niente da estrarre — l'URL stesso è la credenziale. Questi funzionano nei player solo M3U esattamente così come sono. Non hanno una rappresentazione equivalente Xtream perché non sono generati dal pannello Xtream Codes; vengono da uno stack IPTV diverso (più vecchio). Se il tuo provider ti ha dato solo questo e il tuo player insiste sulle credenziali Xtream, non ha un login Xtream da darti. Chiedi al provider, o scegli un player che accetti URL M3U.

Com'è in Klipa

Klipa accetta entrambe le forme nella stessa libreria, fianco a fianco. Puoi aggiungere un URL M3U e un login Xtream dello stesso provider come sorgenti separate; l'app usa quella sana. Se un giorno l'export M3U inizia a restituire HTML, la chiamata all'API Xtream tiene viva la tua lista canali fino al prossimo refresh, e viceversa.

Questa è la risposta semplice a "quale formato dovrei usare?" — entrambi. Se ne stai scegliendo solo uno, il confronto Xtream vs M3U ti dice quando partire da quale.