Tvheadend kanalų sąrašo suderinimas su android grotuvais: Tivimate, Siptv

tvheadend php script

Nuo Plausible statistikos kaupimo, šis tekstas buvo skaitytas 128 kartą/us.

Šio teksto atnaujinimo ar rašymo laikas jau yra senesnis, kaip vieneri metai, tad per šį laiką galėjo mano nuomonė pasikeisti bei aptartos konfigūracijos.

Tekstas buvo atnaujintas: 2020-07-26.

Situacija tokia.

Kadangi gaunu android priedėlių testavimui ir kanalus dažniausiai žiūriu per tvheadend duodamą m3u sąrašą.

Ten kyla tokia problema, jog android grotuvai nelabai supranta kas jam paduodama ir jokios papildomos informacijos nerodo.

Reikia dar pačiam pridėti tv gidą, logotipus.

Tad pradėjau ieškoti, kaip galima tai išpręsti.

Radau jog tvheadend turi api ir paduoda informaciją per json failą.

Tad pradėjau savo php kelionę

Dar yra įrašas dėl atsarginio tvheadend serverio pajungimo.

Prenumeruok

Gauk į paštą žinutę apie naujus įrašus

Apie tvheadend api

Api galima pasiekti per /api adresą.

Daug informacijos surašyta apie tvheadend api yra github’e.

Realiai nagrinėjant radau jog galima paimti kanalus bei logotipus, taip pat galima paimt įrašus.

Su php nedraugauju, išvis man tai miškas (na kažkiek paaiškėjo principas ).

Tad pats skriptas gali būti kreivas arba kažką galima būtų pakeisti.

Tad jeigu yra minčių arba jeigu patobulinot, palikit tai komentaruose.

Nesugalvojau, kaip paimti kanalų kategorijas.

Vis dėl to pavyko sugalvoti, kaip paimti kategorijas iš tags nustatymo.

Skriptas

Išsaugome į index.php

<?php 

print_r(get_headers($url));
header('Content-Type: text/plain');
header("Access-Control-Allow-Origin: *");


date_default_timezone_set('Europe/Vilnius');

error_reporting(-1);
ini_set('display_errors', 'On');

$user = $_GET['user'];
$pass = $_GET['pass'];

//kanalai

$json_url = "http://$user:$pass@servo-ip-adreas-ir-portas/api/channel/grid?limit=999&sort=name";
$json_url3 = "http://$user:$pass@servo-ip-adreas-ir-portas/api/channeltag/grid";

$json1 = file_get_contents($json_url);
$json3 = file_get_contents($json_url3);

$array1 = json_decode($json1, true);
$array3 = json_decode($json3, true);
echo "#EXTM3U x-tvg-url=\"http://epg-failo-saltinis/guide.xml\"";
echo " url-tvg=\"http://epg-failo-saltinis/guide.xml\"\n";

$x = array();

foreach($array3['entries'] as $value) {

    $x[$value['uuid']] = $value['name'];

}

foreach($array1['entries'] as $value) {

    if (array_key_exists($value['tags'][0],$x)) {
        $name[] = $x[$value['tags'][0]];
    
    }
    
    echo "#EXTINF:-1 tvg-logo=\"";
    echo $value['icon_public_url'];
    echo "\" group-title=\"";
    echo $x[$value['tags'][0]];
    echo "\" tvg-id=\"";
    echo $value['name'];
    echo "\",";
    echo $value['name'];
    echo "\n";
    echo "http://$user:$pass@servo-ip-adreas-ir-portas/stream/channel/";
    echo $value['uuid'];
    echo "?profile=http-client\n";
}


// irasai

$json_url = "http://$user:$pass@servo-ip-adreas-ir-portas/api/dvr/entry/grid_finished";
$json = file_get_contents($json_url);
$array2 = json_decode($json);
foreach ($array2->entries as $o) 
 {  
$date = date("H:i d-m-Y", $o->start);
echo "#EXTINF:-1 tvg-logo=\"$o->channel_icon\" group-title=\"Įrašai ($o->channelname)\",$o->channelname|$o->disp_title|$date\n";
echo "http://$user:$pass@servo-ip-adreas-ir-portas/$o->url?profile=matroska\n";
}
?>

Reikia pasikeisti kur yra: servo-ip-adreas-ir-portas bei epg-failo-saltinis.

Nurodyti savo tvheadend IP adresą.

Norint pasiekti kanalų sąrašą

domenas.lt/index.php?user=tvheadend-vartotojas&pass=tvheadend-kodas

Vietoje: tvheadend-vartotojas rašome vartojo vardą kuris naudojamas tvheadend ir vietoje tvheadend-kodas to vartotojo kodą.

Pačiame tvheadend ties vartotojo nustatymais turi būti įjungta WEB interface nes kitaip neleis prieiti prie api.

Atidarius adresą turi paduoti kanalų sąrašą tokį kuris labiau draugauja su android grotuvais.

Prie kanalo adreso automatiškai pridės vartotoją:kodą@ nereiks rankiniu būdu suvesti.

Rodo programų gidą, logotipus.

Įrašus rodys pagal kanalo kategoriją. tarkim visi TV3 kanalai įrašai eis į savo kategoriją. Rodys kanalo logotipą, įrašo pavadinimą ir įrašo datą.

Androide, kaip minėjau neina prasukti, bet jeigu pavyks sugalvoti, kaip tai sutvarkyti, atnaujinsiu tekstą.

Naudojant VLC per Windows, bus duodamas kanalų sąrašas ir įrašai viename faile:

tvheadend php skriptas

Siūlau prenumeruoti, kaip tai padaryti aprašiau čia (el. paštu, telegram ir discord kanalai, facebook, twitter).

Comments are closed.



Gal patiks ir kiti įrašai