Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Gibt es ein Tool, mit dem man massenhaft Portal/Mac-Kombinationen testen kann?

Ich kann dir glaub noch nicht ganz folgen.

Ein Scanner der "Massenhaft" Panele und dort Macs prüft ist zb der Priacy Scanner.
Dem kannst ne .txt mit deinen gewünschten Panelen reinwürgen und er prüft die alle dann mit gewähltem Mac-Präfix für dich durch.

Was du nicht bekommen wirst ist ein Tool das dir Latenzen oder gar mögliche Bandbreiten anzeigt.
Das ist evtl sogar möglich wenn nen Scanner deiner Wahl nimmst und dich mit ChatGPT mal paar Tage hinsetzt.
Nur für Was? Es spielen zuviele Faktoren rein so das solche Angaben nicht wirklich brauchbar sind.
Netzauslastung, welcher Tag, wieviele Kunden hängen grad am Server, gibt es ein Grossereignis. ect.
 
@m0n0g0n ;)
Ich würde nix von Hand machen und irgendwas testen.
Dafür gibt's es andere Lösungen, die sowas im Hintergrund erledigen und ich kann einfach Fernseh schauen.
(Portals, xtreammulti, Stalker Portal Manager, STB Proxy, hls Server...)
 
Ein bisserl schon ...
Portals und Co nur mit Mac's zu füttern, die noch Laufzeit haben, die tatsächlich aufrufbar sind und letztlich auch noch deutsche Streams dabei haben, ist nicht zwingend nötig, aber finde ich schon sinnvoll.
Das kann man mit py's erledigen und dann die "guten" Mac's einstellen.

Ich gebe Dir aber Recht, dass es sich zeitmäßig eigentlich nicht lohnt, weil es ja auch ohne gut klappt. Aber irgendwie ist es ja auch Hobby und macht Spaß...
 
Zuletzt bearbeitet:
 
Ich kann dir glaub noch nicht ganz folgen.

Ein Scanner der "Massenhaft" Panele und dort Macs prüft ist zb der Priacy Scanner.
Dem kannst ne .txt mit deinen gewünschten Panelen reinwürgen und er prüft die alle dann mit gewähltem Mac-Präfix für dich durch.

Was du nicht bekommen wirst ist ein Tool das dir Latenzen oder gar mögliche Bandbreiten anzeigt.
Das ist evtl sogar möglich wenn nen Scanner deiner Wahl nimmst und dich mit ChatGPT mal paar Tage hinsetzt.
Nur für Was? Es spielen zuviele Faktoren rein so das solche Angaben nicht wirklich brauchbar sind.
Netzauslastung, welcher Tag, wieviele Kunden hängen grad am Server, gibt es ein Grossereignis. ect.
Also, ich habe schon massenhaft geprüfte Macs und viele Portale. Das Problem ist jedoch, dass nicht jeder "Hit" solcher Scanner auch in der Praxis funktioniert.

In der Praxis bedeutet das, dass oft nur 50% der gefundenen Hits funktionieren, also am Ende des Tages einen funktionierenden Stream liefern.
Und um diese 50% zu finden, muss ich halt derzeit per Hand testen. Anschließend muss ich noch per Hand die aktuelle Qualität des Streams beurteilen. Diese Schritte würde ich halt gerne automatisieren. Ich hoffe nun ist mein Anliegen etwas klarer?

Und klar gibt es unterschiedliche Auslastungen über den Tag verteilt, das ist aber irrelevant für meinen einfachen Test den ich mir vorstelle.
 
Mit welchem Scanner fischst du in welchen Panelen?
Dann nehme deine Trefferlisten von welchem Scanner auch immer, zieh die macs raus (mit zb dem Manzera unter "Tools" oder andern Programmen), pack se alle in ne controllieren.txt rein und scanne diese Macs nochmal mit m Foxy 3.6 / 3.9 so hast auf VPN / NoVPN gefiltert.
Dann hab ich da im Post über dir n Tool gepostet, das mit der Foxy Ergebnisliste arbeitet und dir noch nach Mindestlaufzeit und Land filtert.
 
Mit MacAttack, zum Filtern habe ein eigenes Script geschrieben. Ist die Hauptursache für einen "Hit" der in der Praxis gar nicht funktioniert Geoblocking?
 
Zuletzt bearbeitet von einem Moderator:
Nein.
Ansonsten würdest du ja keinen Hit bekommen.
Außer das Portal entscheidet das erst über die Streamanfrage.
Viel wahrscheinlicher: es ist ein Reseller und dann passiert genau das.
 
Den Hit bekomme ich, weil ich Proxies in verschiedenen Ländern nutze. Das umgeht ggf. das Geoblocking. Wenn ich den Stream aber konkret Anfrage später, dann ggf. aus einer andere Location.

Was hat das mit Resellern zu tun?
 
Zuletzt bearbeitet von einem Moderator:
1. Keine Vollzitate eines direkt darüber stehen Beitrages. Bitte editieren, sonst muss ich das immer machen. ;)
Edit: erledigt

2. Naja, der Reseller hat keine eigenen Streams. Nur den Zugang (über Mac). Den bekommst du dann vielleicht noch, ohne Proxy, Geoblock. Aber die Source schaut halt danach und lehnt ab.
 
Zuletzt bearbeitet:
da hilft nur nen kleines script, der ein bestimmten Channel kurz in ffmpeg gegenprüft, so hab ich das zumindestens immer gemacht.... mittlerweile bin ich aber der meinung die Favoriten zu prüfen reicht

hab mal schnell was gebastelt, halt nur unter linux
Bash:
#!/bin/bash

URL="http://webflowmalta.club:8080"
channel="http://localhost/ch/3427_"
name="best"

### Installiere ffmpeg falls nicht vorhanden ###
command -v ffmpeg >/dev/null 2>&1 || { sudo apt update && sudo apt install -y ffmpeg; }
output_dir="$(pwd)"  # aktuelles Verzeichnis, wo das Script gestartet wurde
mkdir -p "$output_dir"
> "$output_dir/${name}mactest.txt"

while IFS= read -r MAC; do
  sleep 1
  echo "check: $MAC"

response=$(curl -s -i -H "User-Agent: Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG250 stbapp ver: 4 rev: 2721 Mobile Safari/533.3" -H "Cookie: mac=$MAC; stb_lang=en; timezone=Europe/Amsterdam;" "$URL/portal.php?type=stb&action=handshake&JsHttpRequest=1-xml")
token=$(echo "$response" | grep -oP '(?<="token":")[^"]*')
link=$(curl -s -H "User-Agent: Mozilla/5.0 (QtEmbedded; U; Linux; C) AppleWebKit/533.3 (KHTML, like Gecko) MAG250 stbapp ver: 4 rev: 2721 Mobile Safari/533.3" -H "Cookie: mac=$MAC; stb_lang=en; timezone=Europe/Amsterdam;" -H "Authorization: Bearer $token" "$URL/portal.php?type=itv&action=create_link&cmd=$channel&series=&forced_storage=undefined&disable_ad=0&download=0&JsHttpRequest=1-xml")

ffplay=$(echo "$link" | jq -r 'try .js.cmd catch ""')


  if [ -z "$ffplay" ]; then
    echo "$MAC fail"
    continue
  fi

  ffprobe_output=$(ffprobe -v error -print_format json -show_streams "$ffplay" 2>/dev/null)

  if echo "$ffprobe_output" | jq -e '.streams[]?.codec_name?' >/dev/null 2>&1; then
    echo "$MAC fail"
  else
    echo "$MAC ok"
    echo "$MAC" >> "$output_dir/${name}mactest.txt"
  fi

done < <(awk '{print $1}' mac.txt)

echo "Ergebnis gespeichert in: $output_dir/${name}mactest.txt"

exit 0

Das
URL="http://webflowmalta.club:8080"
channel=" "
name="best"

dem jeweiligen Portal anpassen, ist jetzt ein bsp von best. in den gleichen Ordner, indem sich das script befindet, eine mac.txt mit den zu prüfenden mac
 
Zuletzt bearbeitet:
Mein py Script ist viel länger... :cry: Funktioniert aber auch.
Antwort 200 oder 302 ok sollte m.M.n. reichen.

Was meinst Du genau mit Favoriten?

Aber Achtung bei besttv: Doppelbelegung ist soweit ich das getestet habe nicht möglich. Demnach sollte der Streamlink nicht kommen, wenn die Mac im Moment des Testens belegt ist. Richtig?
Dann sollte man die aussortierten Macs zu einem anderen Zeitpunkt noch mal testen.
 
Zuletzt bearbeitet:
Es ist egal ob 200 oder 302, ein prüfen ob besetzt ist bei Stalker only nie möglich... Es gibt auch keine Auskunft ob der Stream nen geblockt hat. Hatte da auch mal ne Diskussion mit salidos. Mit Favoriten meine ich die Bouquet, also die einzelnen Gruppen.

Da ich keine api Anfrage mit drin hab, kommt immer ne Antwort von ffmpeg, wenn die Mac gültig ist, egal ob bereits besetzt.

Egal wie groß deine py ist, Hauptsache es funktioniert ;-) ich hab die Scripte am Anfang noch alle ohne chatgpt geschrieben, da ist kurzer von Vorteil....


Was die Qualität angeht, kann man nur die einzelnen Streams checken und sich die infos ziehen und diese in die m3u schreiben lassen. Hab das aber nie wirklich weiter verfolgt

Bash:
#!/bin/bash

# Pfad zur M3U-Datei
m3u_file="$1"

# Überprüfen, ob eine Datei angegeben wurde
if [ -z "$m3u_file" ]; then
  echo "Bitte geben Sie eine M3U-Datei an."
  exit 1
fi

# Überprüfen, ob die Datei existiert
if [ ! -f "$m3u_file" ]; then
  echo "Die Datei '$m3u_file' existiert nicht."
  exit 1
fi

# Funktion zum Verarbeiten eines einzelnen Streams
process_stream() {
  local extinf="$1"
  local stream_url="$2"

  # Extrahieren der tvg-id, tvg-logo und des Kanalnamens
  tvgid=$(echo "$extinf" | grep -oP 'tvg-id="\K[^"]+')
  tvglogo=$(echo "$extinf" | grep -oP 'tvg-logo="\K[^"]+')
  channel_name=$(echo "$extinf" | sed -n 's/.*,\(.*\)/\1/p')

  # ffprobe-Befehl ausführen und Ausgabe in JSON formatieren
  ffprobe_output=$(ffprobe -v error -print_format json -show_streams "$stream_url")

  # Überprüfen, ob ffprobe erfolgreich war
  if [ $? -ne 0 ]; then
    echo "ffprobe konnte den Stream $stream_url nicht analysieren. Überspringen."
    return
  fi

  # Auflösung extrahieren
  width=$(echo "$ffprobe_output" | jq -r '.streams[] | select(.codec_type=="video") | .width')
  height=$(echo "$ffprobe_output" | jq -r '.streams[] | select(.codec_type=="video") | .height')
  framerate=$(echo "$ffprobe_output" | jq -r '.streams[] | select(.codec_type=="video") | .avg_frame_rate')

  # Audioinformationen extrahieren
  audio_info=$(echo "$ffprobe_output" | jq -r '[.streams[] | select(.codec_type=="audio")][0] | {codec_name, channels, sample_rate}')
  audio_codec=$(echo "$audio_info" | jq -r '.codec_name')
  audio_channels=$(echo "$audio_info" | jq -r '.channels')
  audio_sample_rate=$(echo "$audio_info" | jq -r '.sample_rate')

  # Ergebnisse anzeigen und in die Datei schreiben
  echo "#EXTINF:-1 tvg-id=\"$tvgid\" tvg-logo=\"$tvglogo\" group-title=\"${height}P $audio_codec\",$channel_name ${height}P "$framerate"FPS $audio_codec"  >> quality.m3u
  echo "$stream_url" >> quality.m3u
  echo "EXTINF: $extinf"
  echo "tvg-id: $tvgid"
  echo "tvg-logo: $tvglogo"
  echo "Channel Name: $channel_name"
  echo "Stream URL: $stream_url"
  echo "Auflösung: ${width}x${height}"
  echo "Framerate: $framerate"
  echo "Audio Codec: $audio_codec"
  echo "Audio Channels: $audio_channels"
  echo "Audio Sample Rate: $audio_sample_rate"
  echo "-----------------------------"
}

# Array zum Speichern von Prozessen
pids=()

# Funktion zum parallelen Verarbeiten
parallel_process() {
  local extinf="$1"
  local stream_url="$2"
  process_stream "$extinf" "$stream_url" &
  pids+=($!)
}

# Lesen der M3U-Datei und Verarbeiten der Einträge
count=0
while IFS= read -r line; do
  if [[ "$line" == \#EXTINF:* ]]; then
    extinf="$line"
  elif [[ "$line" != \#* ]]; then
    stream_url="$line"
    parallel_process "$extinf" "$stream_url"
    ((count++))

    # Starten Sie bis zu 6 parallele Prozesse gleichzeitig
    if (( count % 6 == 0 )); then
      # Warten auf alle Hintergrundprozesse
      for pid in "${pids[@]}"; do
        wait "$pid"
      done
      # Leeren Sie das Array
      pids=()
    fi
  fi
done < "$m3u_file"

# Warten auf alle verbleibenden Hintergrundprozesse
for pid in "${pids[@]}"; do
  wait "$pid"
done
chmod +x quali.sh
./quali.sh /pfad/zur/m3u # es wird eine quality.m3u erstellt

sieht dann zb so aus
#EXTINF:-1 tvg-id="bluesport2.ch" tvg-logo=" " group-title="720P aac",CH: Blue Sport D2 FHD 720P 50/1FPS aac
 
Zuletzt bearbeitet:
Ich versteh den sinn aber nicht.
Es wird ne Mac verlangt. Da hast, wenn ich das richtig verstehe ne .txt mit den ganzen macs. Die prüfen auf den einen channel. Heisst doch ich muss den namen im skript (wie du beschrieben hast angeben) und dann, wenn nicht nur das Panel und mac prüfen magst, auch den channel im Panel wissen, wenn du immer nur auf den prüfst?

Seh ich das irgendwie anders?
Zuviel aufwand?
 
Zuletzt bearbeitet:
es ist schon so wie salidos geschrieben hat. ne gültige mac aus einem scanner, kann trozdem nen geoblock haben. Kommt nicht oft vor, kann aber sein. Das bekommt man dann nur raus, wenn man den streamlink abfragt
 
Zurück
Oben