NEWS
SOLVED [gelöst]Frage: Wer hat die "Tagesschau in 100s" eingebunden?
-
Bei startet das Video automatisch.
Und nur 1x; also keine Endlosschleife. -
Hallo,
ich habe im letzten Post ja nur das Ergebnis gezeigt, nicht den Weg dahin. Wird hier nachgeholt:
Wie oben erwähnt, ändert sich der Link zur aktuellsten Version der Sendung ständig. Deshalb nutze ich dieses Skript, um den Link zeitgesteuert zu aktualisieren. Das Skript legt einen Datenpunkt "VIS.URL.Tagesschau" an. Den brauche ich später in VIS.
Neue Version vom 11.11.2018
/* VIS Tagesschau_Link parsed die Seite https://www.tagesschau.de/100sekunden/ und sucht nach der URL zum aktuellsten Video 02.03.2016 erstellt von pix 15.03.2016 zu Javascript Instanz 1 gewechselt 24.09.2016 umbenannt in VIS_Link_Tagesschau 11.11.2018 Skript angepasst und optimiert */ const fC = false; // forceCreation für createState() const logging = false; const instanz = 'javascript.1.'; const idURL = instanz + 'VIS.URL.Tagesschau'; // ab hier nix mehr ändern const link = "http://www.tagesschau.de/100sekunden/"; createState(idURL,"", fC, { name: "Link zu Tagesschau in 100s", desc: "geparster Link aus tagesschau.de", type: "string", role: "text.url" }); function findeURL () { let request = require('request'); let film_url; try { request(link, function (error, response, body) { if (!error && response.statusCode == 200) { // kein Fehler, Inhalt in body //log(body); // HTML Code der Webseite: Inhalt zwischen und speichern let text1 = " Wir bieten dieses Video in folgenden Formaten zum Download an: ", text2 = " **Hinweis:** Falls die Videodatei beim Klicken nicht automatisch gespeichert wird, können Sie mit der rechten Maustaste klicken und 'Ziel speichern unter ...' auswählen. "; let start = body.search(text1) + text1.length; let ende = body.search(text2); if (logging) log("Startposition: " + start); if (logging) log("Endposition: " + ende); let zwischenspeicher = ((start != -1) && (ende != -1) ) ? body.slice(start,ende) : "Fehler beim Ausschneiden"; if (logging) log("Zwischenspeicher: " + zwischenspeicher); let text3 = "//download", text4 = ".websm.h264.mp4"; let start2 = body.search(text3); let ende2 = body.search(text4); if (logging) log("Startposition2: " + start2); if (logging) log("Endposition2: " + ende2); let zwischenspeicher2 = ((start2 != -1) && (ende2 != -1) ) ? body.slice(start2,ende2) : "Fehler beim Ausschneiden 2"; if (logging) log(zwischenspeicher2); film_url = "http:" + zwischenspeicher2 + ".webl.h264.mp4"; setState(idURL, film_url); if (logging) log ("URL: " + film_url); } else { // Error beim Einlesen log(error, 'error'); } }); // Ende request } catch (fehler) { log("Fehler (try): " + fehler, "error"); } } // Ende findeURL schedule("8 */1 * * *", findeURL); // jedeStunde um 8 nach voll setTimeout(findeURL, 2000);
ALTE VERSION VON 2016
/* VIS Tagesschau_Link parsed die Seite https://www.tagesschau.de/100sekunden/ und sucht nach der URL zum aktuellsten Video erstellt: 02.03.2016 von pix 15.03.2016 zu Javascript Instanz 1 gewechselt */ var logging = false; var instanz = 'javascript.1.'; // ab hier nix mehr ändern createState('VIS.URL.Tagesschau','', { name: 'Link zu Tagesschau in 100s', desc: 'geparster Link aus tagesschau.de', type: 'string' }); var idURL = instanz + 'VIS.URL.Tagesschau'; var link = 'http://www.tagesschau.de/100sekunden/'; var film_url; function findeURL () { var optin = true; var request = require('request'); if (optin) try { request(link, function (error, response, body) { if (!error && response.statusCode == 200) { // kein Fehler, Inhalt in body //log(body); // HTML Code der Webseite: Inhalt zwischen und speichern var text1 = ' Wir bieten dieses Video in folgenden Formaten zum Download an: ', text2 = ' **Hinweis:** Falls die Videodatei beim Klicken nicht automatisch gespeichert wird, können Sie mit der rechten Maustaste klicken und "Ziel speichern unter ..." auswählen. '; var start = body.search(text1) + text1.length; var ende = body.search(text2); if (logging) log('Startposition: ' + start); if (logging) log('Endposition: ' + ende); var zwischenspeicher = ((start != -1) && (ende != -1) ) ? body.slice(start,ende) : 'Fehler beim Ausschneiden'; if (logging) log(zwischenspeicher); var text3 = 'http://download', text4 = '.websm.h264.mp4'; var start2 = body.search(text3); var ende2 = body.search(text4); if (logging) log('Startposition: ' + start2); if (logging) log('Endposition: ' + ende2); var zwischenspeicher2 = ((start2 != -1) && (ende2 != -1) ) ? body.slice(start2,ende2) : 'Fehler beim Ausschneiden'; if (logging) log(zwischenspeicher2); film_url = zwischenspeicher2 + '.webl.h264.mp4'; setState(idURL, film_url); } else { // Error beim Einlesen log(error, 'error'); } }); // Ende request } catch (fehler) { log('Fehler (try): ' + fehler, 'error'); } } // Ende findeURL schedule("8 */1 * * *", findeURL); // jedeStunde um 8 nach voll findeURL();
Jetzt muss in VIS noch ein Widget mit Dialog gebaut werden, das bei Tastendruck den Dialog öffnet, in welchem dann das Video läuft:
[{"tpl":"tplMetroTileDialogStatic","data":{"visibility-cond":"==","visibility-val":1,"hover":false,"transform":"true","bg_class":"bg-darkCyan","icon_class":"","icon_badge":"","badge_bg_class":"","brand_bg_class":"","dialog_draggable":"true","dialog_icon_class":"icon-film","gestures-offsetX":0,"gestures-offsetY":0,"name":"Tagesschau","label":"tagesschau in 100s","html":"\n<video src="\"{javascript.1.VIS.URL.Tagesschau}\"" width="\"950\"" height="\"543\"" \nposter="\"video-standbild.jpg\"" autobuffer/autoplay/\ncontrols="">\n\nSchade – hier käme ein Video, wenn Ihr \nBrowser HTML5 Unterstützung hätte, wie z.B. der \naktuelle Firefox\n\n</video>","dialog_width":"960","dialog_height":"623","dialog_title":"Tagesschau in 100s","dialog_flat":true,"dialog_shadow":true,"dialog_modal":true,"icon_src":"/vis.0/iPad/img/tagesschau100_logo_base.png","icon_height":"22","icon_width":"96","icon_top":"50","icon_left":"24","dialog_icon_src":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false},"style":{"left":"428px","top":"8px","z-index":"20"},"widgetSet":"metro"}]
Der Link zum Video ist im Widget als {Binding} hinterlegt. Die Größen sind für ein iPad Air Landscape ausgelegt.
Wenn ich Zeit habe, teste ich noch andere Sendungen von anderen Sendern.
Gruß
Pix
EDIT: Neues Skript vom 11.11.2018 im Spoiler
-
@bahnuhr Mit der iFrame Variante? Welchen Browser nutzt Du? Mit dem Script zur URL + iFrame und Chrome funktioniert es bei mir leider auch nicht
-
@schittl
win7 laptop und chromeAuf dem tablet ist es aber auch so.
-
@bahnuhr @schittl
ich habe ein Notebook mit Win10 und Firefox, ein iPad mit Safari, ein FireTab mit Silk und mein Smartphone getestet. Nirgendwo läuft bei meiner Variante das Video von selbst.
Bei deiner Variante, bahnuhr, muss ich ja aber auch erstmal selbst das Icon anklicken damit das Video eingeblendet wird und ich merke erst nach dem Anklicken, ob es was neues gibt oder nicht.
Da das Video auf meinem Wandpanel aber immer eine Ebene hinter dem Vollbild eingeblendet wurde, hatte ich nur Ton. Daher hab ich mich für die iFrame Variante entschieden. -
Super Lösung! Ich habe allerdings folgendes Problem:
Datenpunkt einmalig über Dein Skript angelegt. Zweites Script ausgeführt - er schreibt den aktuellen link in den Datenpunkt! Bis hierhin perfekt.
Wenn ich nun im VIS-Editor das Iframe-Widget nehme und das Binding entsprechend Deiner Vorlage nehme, dann erscheint im VIS-Editor folgendes, was wohl auch richtig ist:
Starte ich nun aber mein VIS erscheint leider nicht das Video, sondern folgendes:
Habt ihr einen Tipp, woran das liegen kann?
-
@Termina sagte in [gelöst]Frage: Wer hat die "Tagesschau in 100s" eingebunden?:
Iframe-Widget
Wieso iframe ???
Warum nimmst du nicht das Widget was pix oben geschrieben hat !
-
Meinst Du das Metro Widget? Da hatte ich in der Vergangenheit mal Probleme mit anderen Adaptern, daher hatte ich das damals wieder entfernt. Dazu gibt es keine Alternative?
-
@Termina sagte in [gelöst]Frage: Wer hat die "Tagesschau in 100s" eingebunden?:
Meinst Du das Metro Widget? Da hatte ich in der Vergangenheit mal Probleme mit anderen Adaptern, daher hatte ich das damals wieder entfernt. Dazu gibt es keine Alternative?
Ja, das meine ich.
Das Widget macht bei mir keine Probleme.Dort ist halt ein html Code eingegeben der dann das video startet.
Alternativen gibt es bestimmt. Hab ich aber noch nicht probiert.
-
@bahnuhr
Nun habe ich die Metro Widgets wieder installiert und beim entsprechendem Widget import bekomme ich folgendes:
-
@Termina wie sieht denn dein Objekt im Admin aus? Welchen Inhalt hat es?
Bei mir ist es aktuell folgender: -
Der Datenpunkt passt:
-
@Termina bei mir gibt es exakt deinen beschriebenen Fehler, wenn die Adresse im {binding} nicht korrekt ist. Eventuell ist da ein Tippfehler drin?
Oder hast du mal den Editor neu gestartet nachdem du den Datenpunkt angelegt hast. Vielleicht hatte er den noch nicht gefunden. -
Bei mir steht in dem DP:
http://download.media.tagesschau.de/video/2020/0117/TV-20200117-1008-5601.webl.h264.mp4merkwürdig?
-
@bahnuhr Anderes System (Metro Widget statt iFrame) -> Anderer Inhalt im DP.
Ich hatte das Script entsprechend angepasst, damit für den iFrame ein anderer Link im DP generiert wird. -
@Udo_E sagte in [gelöst]Frage: Wer hat die "Tagesschau in 100s" eingebunden?:
@bahnuhr Anderes System (Metro Widget statt iFrame) -> Anderer Inhalt im DP.
Ich hatte das Script entsprechend angepasst, damit für den iFrame ein anderer Link im DP generiert wird.Naja, dann wird wohl der Link nicht stimmen.
-
-
@Udo_E
Na wenn alles stimmt warum läufst dann nicht ? -
@Udo_E
Also, bei meinem Link benötige ich nun doch kein Metro Widget? Also iframe? -
@bahnuhr das versuche ich ja mit @Termina zu klären. Zwei Möglichkeiten hab ich ja schon genannt. Ich warte auf Antwort. Vielleicht war ja die Lösung dabei.
Einfach nur zu Sagen: "Mach es doch ganz anders als du es eigentlich machen willst, obwohl es so wie du es gerne hättest bei jemandem funktionert." ist schließlich auch keine vernünftige Lösung.
-
@Termina genau, dein Link ist für ein iFrame. Ich habe damals das Originalscript vom Metro Widget für den iFrame verändert. Bei mir gab es mit dem Metro Widget unlösbare Probleme.