URLs vom Smartphone an den TV senden
LocalTrigger – HTTP-Requests Empfänger-App für z. B. Android TV: URL senden → Intent auslösen
Die Android-App ›LocalTrigger‹ lauscht als Dienst auf URLs, die man ihr per HTTP im Heimnetzwerk sendet. Daraufhin öffnet sich (z. B. auf dem Fire TV Stick / Android TV) die mit dieser URL verknüpfte Anwendung (z. B. Joyn, Netflix, Browser, …). Man kann also vom Smartphone oder PC URLs ohne Zwischendienst direkt an den TV (oder ein anderes Android-Gerät) senden.
Auf meinem Fire TV Stick (Android) habe ich diverse Filmdienste-Apps installiert. ›Joyn‹ wäre z. B. eine solche oder eben ›Youtube‹. Ich kann nun per Fernbedienung die Kategorien durchforsten. Aber praktischer finde ich es, wenn ich dies am Browser auf meinem Tablet mache. Nur wie übergebe ich die jeweilige Film-URL (Website-Adresse) dem Fernseher? Ich sende diese per sogenanntem HTTP-Request über mein Heimnetzwerk an den z. B. Fire TV Stick.
Denn darauf läuft permanent im Hintergrund ein kleiner Dienst – der LocalTrigger:

Hinweis: Auf zumindest dem Fire TV Stick lassen sich solche Apps schlecht bis gar nicht mit der Fernbedienung konfigurieren. Hier helfen eine Bluetooth-Maus, eine Fernbedienungs-App oder s. g. ADB-Befehle (scroll).
Mein LocalTrigger empfängt diese URL (z. B. die Adresse eines Youtube-Videos, die Adresse eines Mediathek-Eintrages) und öffnet daraufhin die mit dieser Domain verknüpfte App → in diesem Fall die Youtube-App (oder eine Alternative wie „SmartTube“). Sofort beginnt das Video.
Ist auf dem Empfangsgerät (hier mein Fire TV Stick) noch keine dort installierte App mit der jeweiligen Domain verknüpft, erscheint der „Öffnen-mit-Bildschirm“ und man kann die jeweilige Anwendung öffnen, an die dann die gesendete URL übergeben wird. Am universellsten bzw. als „Fallback“ böte sich hier der lokale Browser an. Reine Film-URLs (die z. B. auf mp4 enden) kann man natürlich idealerweise mit einer Video-App wie dem ›VLC for Android‹ öffnen.
Technisch wird dann auf dem Zielgerät ein ACTION_VIEW-Intent ausgelöst auf Basis der übermittelten URL. Ganz einfach.
Die Lausch-App LocalTrigger
Ich habe mir meine App LocalTrigger via KI selbst programmieren lassen. Vorher nutzte ich auf dem Ziel-Android Tasker für genau diesen Zweck. Zum einen ist hier die Einrichtung recht kompliziert. Zum anderen läuft das kostenpflichtige und schwergewichtige Tasker leider nicht mehr zuverlässig auf meinem Fire TV Stick. Abhilfe schafft diese kleine kostenlose App.
Der Vorteil: Da LocalTrigger eine (ggf. unsichtbare) dauerhafte Benachrichtigung ausgibt, wird sie vom Fire OS nicht mehr automatisch beendet. Dies passiert hier nämlich schnell bei solchen Hintergrunddiensten. LocalTrigger läuft auf dem Fire TV Stick jedoch stabil und startet (nach etwas Verzögerung) auch automatisch bei Systemstart.
Noch etwas technisches Hintergrundwissen: LocalTrigger lauscht auf dem Zielgerät auf zwei HTTP-Requests:
http://IP:PORT/start_intent (für reguläre URLs)
http://IP:PORT/start_video_intent (für tatsächliche Video-URLs)
Den zweiten Befehl kann man nutzen, wenn man konkret die Video-Abspieler-Apps (z. B. VLC) auf dem Zielgerät ansteuern möchte. Diese werden dann nämlich forciert.
Im Body der HTTP-Anfrage wird dann die eigentliche URL übermittelt. Dazu gleich mehr.
Werbung
Test vom PC
Hat man die App LocalTrigger auf Android installiert (zum Test vielleicht auf dem Smartphone), kann man z. B. vom Linux-PC aus in der Konsole bereits testen, ob sich auf dem Zielgerät etwas tut:
curl -X POST "http://IP:PORT/start_intent" -H "Content-Type: text/plain" --data-raw "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Befinden sich beide Geräte im selben Heimnetzwerk, sollte sich auf dem Android-Smartphone die Youtube-App öffnen und das Video sollte abgespielt werden. Oder es öffnet sich ein Fenster mit der Frage „Öffnen mit?“. Selbstverständlich muss man die korrekte IP (des z. B. Smartphones) und den Port (standardmäßig „5002“) im Befehl übergeben.
Beispiel: curl -X POST "http://192.168.178.4:5002/start_intent" -H "Content-Type: text/plain" --data-raw "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Genau so funktioniert es dann auch auf Android TV bzw. auf meinem Fire TV Stick. Einen „Sicherheits-Token“ sollte man für erste Tests noch nicht in LocalTrigger eintragen. Dies dient später dazu, dass niemand Fremdes Befehle senden kann. Da ich dies nur im eigenen Heimnetzwerk nutze, benötige ich eh keine Token-Prüfung.
Befehl vom Smartphone senden
Doch niemand sendet die HTTP-Befehle auf Dauer gerne via Linux-Konsole ab. Auf meinem Android-Tablet nutze ich hierfür die kostenlose App HTTP Shortcuts:

Sie ermöglicht das Teilen von URLs an diverse Dienste. Und einer dieser Dienste läuft ja auf dem anderen Android-Gerät im Heimnetzwerk: der LocalTrigger!
Folgendes muss man bei HTTP Shortcuts anlegen:
- Als erstes legen wir dort eine neue Variable an und nennen diese
url_ohne-titel. Alles andere lassen wir hier unberührt außer den Punkt ›Teilen erlauben‹. Hier machen wir ein Häkchen. Denn ansonsten würde HTTP Shortcuts nicht im Android-Teilen-Menü auftauchen. Bei „Art der geteilten Dateien“ wählen wir „Nur Text“. - Nun legen wir einen neuen Shortcut an (Plus-Zeichen unten rechts). Wir wählen hier die Option Von Grund auf erstellen. Wir nennen ihn z. B. „URL an LocalTrigger senden“ und konfigurieren wie folgt:
Allgemeine Einstellungen:
Methode:POST
URL:http://IP:PORT/start_intentDie IP-Adresse des Zielgerätes im Heimnetzwerk hier wieder anpassen. Wenn man den Standardport in LocalTrigger nicht änderte, wäre der richtige Port eben 5002. Im Router oder in den Netzwerkeinstellungen des Zielgerätes sollte man natürlich konfigurieren, dass sich diese lokale IP-Adresse dieses Gerätes nie ändert.
Request-Header: nichts eintragen
Request-Body:
Typ: „Benutzerdefinierter Text“
Content-Type:text/plain
Body:
die eben erstellte Variable (per {}-Zeichen auswählen bzw. einfügen, nicht händisch schreiben!)
Unter den „Response-Einstellungen“ dieses Shortcuts habe ich unter „Anzeige-Typ“ noch ›Toast-Popup‹ definiert. Dann erhält man lediglich eine kleine Rückmeldung am unteren Bildschirmrand. Andere Einstellungen hatte ich hier nicht verändert. Man kann noch das Icon ändern.
Nun sollte im Teilen-Menü einer Android-Anwendung (Browser) auf dem Quellgerät (Smartphone / Tablet) HTTP-Shortcuts angeboten werden. Klickt man darauf, erscheint eine Liste mit Shortcuts (wir haben bisher nur einen). Nach Klick auf den Shortcut namens URL an LocalTrigger senden sollte die aktuelle URL des Browser an das Zielgerät bzw. an LocalTrigger übermittelt werden. Daraufhin sollte sich dort entweder der „Öffnen-mit-Dialog“ öffnen oder eine bereits definierte, konkrete App.
Zumindest mit Chromium-Browsern (bei mir „Brave“) auf Android funktioniert das sehr gut: Die aktuelle URL wird als Variablen-Inhalt im Befehl übergeben.
Werbung
Konkrete Video-URLs forcieren
Wenn man tatsächliche Video-URLs teilen möchte (z. B. von MediathekViewWeb) und es wird auf dem Zielgerät lediglich der Browser angeboten (und nicht z. B. VLC), sollte man einen zweiten, fast identischen Shortcut anlegen:
Der einzige Unterschied zum bereits bestehenden wäre ein etwas anderer Befehl: http://IP:PORT/start_video_intent (anstelle von http://IP:PORT/start_intent). Denn dann wird LocalTrigger das Öffnen mit einer Video-Anwendung forcieren.
Eingebettete Videos
Mit dem ›LocalTrigger-Server‹ auf dem Ziel-Android-Gerät und ›HTTP Shortcuts‹ auf dem Quell-Android bzw. via Konsole vom PC können wir nun einfache URLs an z. B. einen Smart-TV senden, auf dem ebenfalls ein Android läuft (bei mir eben mein Fire TV Stick). Es öffnet sich dann die für die jeweilige URL zuständige App (oder eben der lokale Browser).
Wenn es jedoch darum geht, dass man in Websites eingebettete Videos immer per z. B. VLC auf dem TV ansehen möchte, reicht diese Technik noch nicht aus. Hierfür benötigt man einen Mittelsmann, welcher die eigentliche (geheime) Video-URL extrahiert und dann erst an LocalTrigger sendet:
Ich nutze hierzu in der Mitte einen Raspberry Pi bzw. dort eine auf ›yt-dlp‹ basierende Eigenentwicklung. Diese Sache ist schon komplizierter als das Übermitteln der offiziellen URL an das Zielgerät.
Download LocalTrigger
Noch einmal der Hinweis: Diese App habe ich mir mit der Hilfe von „KI“ selber erstellt. Die Benutzung erfolgt natürlich auf eigenes Risiko. Ich stehe vor solchem Code auch nur da wie die Kuh vor dem Uhrwerk
Zum Prüfen, Ändern, Kontrollieren, selber Kompilieren gibt es hier auch den Quellcode von LocalTrigger zum Download.
Fazit
Ich benötige auf meinem TV und auf meinem Smartphone nicht die original Youtube-Apps, um URLs an den TV zu übertragen. Auf diesem läuft mein Universal-Lauscher, der auch mit vielen anderen Medien-Adressen etwas anfangen kann: Entweder öffnet sich dann die dazugehörige App auf dem Fernseher oder eben wenigstens der Browser mit der eben übermittelten Adresse. Konkrete Film-URLs (z. B. von MediathekViewWeb) reiche ich einfach an VLC auf dem TV weiter.
Konkret nutze ich LocalTrigger auf Fire OS bzw. auf meinem Fire TV Stick (die App läuft natürlich auch auf anderen Android-Geräten). Wie man dort externe APK-Dateien (meine App) installiert, die sich nicht im offiziellen App-Store befinden, kann man z. B. hier nachlesen.
Ab dem Jahr 2027 wird Google (Android) übrigens dazu übergehen, auf allen Geräten, auf denen die s. g. Play-Dienste laufen (und dies sollten die meisten sein), das Installieren von solchen privaten Apps (wie die meinige) nicht mehr zu ermöglichen – siehe diese Info-Seite. Das Installieren solcher Anwendungen wie die meinige wird dann wohl auf solchen Geräten nicht mehr möglich sein – oder mit etwas weiterem Aufwand, siehe Link. Sie sind ja nicht „lizenziert“. Zumindest auf meinem alten Fire TV Stick gibt es keine Play-Dienste und ich denke, die Sache wird noch eine Zeit lang gut funktionieren. Eine „offizielle“, schlanke App, die das kann, was mein LocalTrigger macht (auch Schutz vor Beenden), ist mir leider nicht bekannt. Oder kennt jemand eine solche?

