Last active
March 7, 2024 08:51
-
-
Save gokaybiz/84d957dcb07b6c5e03ae74c7bc6be4d5 to your computer and use it in GitHub Desktop.
Clientless vavoo.tv ip tv
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"bufio" | |
"encoding/json" | |
"errors" | |
"fmt" | |
"net/http" | |
"os" | |
"strings" | |
) | |
var signedKey string = "" | |
type playlist []struct { | |
Group string `json:"group"` | |
Logo string `json:"logo"` | |
Name string `json:"name"` | |
URL string `json:"url"` | |
} | |
func getGuest() (string, error) { | |
body := strings.NewReader(`{"platform": "Windows NT x86 32-bit","version": "2.2","service_version": "1.2.24","branch": "master"}`) | |
req, err := http.NewRequest("POST", "http://www.vavoo.tv/api/box/guest", body) | |
if err != nil { | |
return "", errors.New("Bir seyler ters gitti") | |
} | |
req.Header.Set("Connection", "keep-alive") | |
req.Header.Set("Content-Type", "application/json") | |
req.Header.Set("User-Agent", "VAVOO/2.2") | |
resp, err := http.DefaultClient.Do(req) | |
if err != nil { | |
return "", errors.New("Vavoo'ya baglanilamadi!") | |
} | |
defer resp.Body.Close() | |
dec := json.NewDecoder(resp.Body) | |
if dec == nil { | |
return "", errors.New("Vavoo'dan gelen veri hatali!") | |
} | |
jsonMap := make(map[string]interface{}) | |
err = dec.Decode(&jsonMap) | |
if err != nil { | |
return "", errors.New("Json verisi bozuk!!!") | |
} | |
return jsonMap["response"].(map[string]interface{})["signed"].(string), nil | |
} | |
func generateChannelList() (string, error) { | |
var channels strings.Builder | |
resp, err := http.Get("https://vjackson.info/live/index?output=json&vavoo_auth") | |
if err != nil { | |
return "", errors.New("Vavoo'ya baglanilamadi!") | |
} | |
defer resp.Body.Close() | |
dec := json.NewDecoder(resp.Body) | |
if dec == nil { | |
return "", errors.New("Kanal listesi hatali!") | |
} | |
jsonMap := &playlist{} | |
err = dec.Decode(&jsonMap) | |
if err != nil { | |
return "", errors.New("Json verisi bozuk!!!") | |
} | |
channels.WriteString(`#EXTM3U | |
`) | |
for _, v := range *jsonMap { | |
if v.Group == "Turkey" { | |
channels.WriteString(`#EXTVLCOPT:http-user-agent=VAVOO/2.2 | |
#EXTINF:-1 tvg-name="`) | |
channels.WriteString(v.Name) | |
channels.WriteString(`" group-title="Turkey",`) | |
channels.WriteString(v.Name) | |
channels.WriteString(` | |
`) | |
channels.WriteString(v.URL) | |
channels.WriteString("?n=1&b=4&vavoo_auth=") | |
channels.WriteString(signedKey) | |
channels.WriteString(` | |
`) | |
} | |
} | |
return channels.String(), nil | |
} | |
func main() { | |
var fileName, playlistData string = "vavoo-end.m3u", "" | |
var err error | |
signedKey, err = getGuest() | |
if err != nil { | |
fmt.Println(err) | |
return | |
} | |
playlistData, err = generateChannelList() | |
if err != nil { | |
fmt.Println(err) | |
return | |
} | |
file, err := os.Create(fileName) | |
if err != nil { | |
fmt.Println("Liste olusturulamadi!") | |
file.Close() | |
return | |
} | |
_, err = file.WriteString(playlistData) | |
if err != nil { | |
fmt.Println(err) | |
file.Close() | |
return | |
} | |
file.Close() | |
fmt.Println("Playlist basariyla olusturuldu!\r\nCikmak icin enter tusuna dokun.") | |
scanner := bufio.NewScanner(os.Stdin) | |
for scanner.Scan() { | |
os.Exit(0) | |
} | |
} |
merhaba @ersinkhr
Bir güncelleme bulabildinizmi acaba ?
I'm not interested with ip tv services for a long time.
I don't think there is a free trial exist anymore. You can get channel list by this payload but probably token won't work because of that.
If I have free-time I'll check but I don't think there is a way.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi @gokaybiz ,
I request an update on the subject.
Thanks,
Güncelleme yaparsanız çok seviniriz.