"Linkgenerierung" zum aktuellen Tagesschau 100 Sekunden Video

Begonnen von jojoja, 08 Dezember 2015, 22:22:42

Vorheriges Thema - Nächstes Thema

jojoja

Guten Abend!

Habe eine kleine Funktion geschrieben, die den Link zum aktuellen Tagesschau 100 Sekunden Video zurückgibt. Der optionale Übergabeparameter steht für die Auflösung:
m: 512x288
l: 960x544
xl: 1280x720
Standard ist m.

Hier der Code für die myUtils:
sub getTagesschau100Sek(;$){

fhem("set rss_Tagesschau100Sek update");
my ($aufloesung) = @_;
$aufloesung //= "m";
use Time::Local;
        my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
my $zeit = ReadingsVal("rss_Tagesschau100Sek", "n00_description", "error");
my $stunde = substr($zeit, 44,2);
my $minuten = substr($zeit,47,2);

return "http://media.tagesschau.de/video/100s/".($year+1900)."/".sprintf("%02d%02d", $month+1, $mday)."/TV-100s-".sprintf("%02d%02d", $stunde, $minuten).".web".$aufloesung.".h264.mp4";
}

der ein rssFeed Modul ausliest:
define rss_Tagesschau100Sek rssFeed http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/ 300
attr rss_Tagesschau100Sek rfReadings title,description


Nun zu meinem Anliegen :D
Ich hätte vom jeweiligen Video gern die mp3-Spur, die per Sonos wiedergegeben kann. Einen Audiopodcast habe ich bei der ARD nicht gefunden. Am liebsten würde ich online konvertieren, zb. auf http://www.online-convert.com, die stellen auch eine API bereit, nur leider habe ich von diesem Thema wenig bis keine Ahnung. Falls mir jemand einen Tipp geben kann, in was ich mich einlesen sollte, wäre ich sehr dankbar! Speziell die Frage, lässt sich soetwas zb. über POST oder wget realisieren?

Viele Grüße, Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Rince

Hab wenig Zeit, muss in die Arbeit.
Aber wenn deine Link generierung klappt, hast du mal versucht das Video einfach mit wget runterzuladen?
Vielleicht dabei noch den Namen ändern, tagesschau100.mp4
Dann das runtergeladene Video demuxen, dann ggfs. das demuxte Audio konvertieten und Sonos bereit stellen?
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

jojoja

Der Codeschnipsel funktioniert.
Wie gesagt, ich wollte die Konvertierung online ablaufen lassen (auch aus "Fortbildungsgründen"), aber ich werde ersteinmal die Offline-Variante probieren. Dafür möchte ich vorher ein paar Umstellungen machen, das dauert wahrscheinlich eine Weile... Wenn ich zu etwas komme werde ich es hier wieder posten, damit andere auch was davon haben  ;D
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Grinsekatze

Weil ich gerade vor selbiger Aufgabe stehe aus Neugier: Hast Du schon Zeit gehabt hier weiter zu arbeiten?

hartenthaler

Habe das eben mal ausprobiert. Klappte aber nicht, da der generierte Link http://media.tagesschau.de/video/100s/2016/1004/TV-100s-2106.webm.h264.mp4 so im Moment nicht passt. Es muss ...2016/1003/... statt ...2016/1004/... heißen, da es nun am frühen Morgen noch keine Tagesschau gibt und die vom Vortag die aktuelle ist.

Ansonsten nett! Wie verwendet ihr den Link auf das Video? Als iframe auf einem Floorplan?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

jojoja

#5
Ich habe inzwischen auf HTTPMOD umgestellt, weil das mir fehlersicherer vorkommt. Die oben genannte Funktion ist dafür nicht notwendig.
define rss_tagesschau100 HTTPMOD http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/ 60
attr rss_tagesschau100 event-on-change-reading Link
attr rss_tagesschau100 readingsName_Link Link
attr rss_tagesschau100 readingsRegex_Link <enclosure url="(.*)" length
attr rss_tagesschau100 room hidden
attr rss_tagesschau100 stateFormat Link
attr rss_tagesschau100 userattr event-on-change-reading readingsName_Link readingsRegex_Link stateFormat


da ich das Video in wav konvertiere um es auf Sonos zu wiedergeben starte ich mit diesem Notify:
define Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* {
system("/opt/fhem/tagesschau/tagesschau.sh ".ReadingsVal("rss_tagesschau100", "Link", ""));
}


dieses Skript:
#echo Tagesschau in 100 Sekunden:
#echo Video mit dem Link $1 wird heruntergeladen...
wget $1 --output-document=tagesschau100sek.mp4  --quiet

#echo Wird in .wav konvertiert...
ffmpeg -loglevel quiet -y -i /opt/fhem/tagesschau100sek.mp4 /media/SynologySonos/tagesschau100sek.wav


Die Pfade sollten natürlich angepasst werden. So wird minütlich kontrolliert ob ein neues Video vorhanden, falls dies der Fall ist wird es heruntergeladen und konvertiert.

Edit: Sorry, das mit der Onlinekonvertierung habe ich ganz vergessen. Da habe ich nichts mehr gemacht, da die Offline-Variante für mich gut funktioniert.

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

hartenthaler

Dazu ist dann die Installation von ffmpeg nötig. Ich habe dazu eine Anleitung gefunden: http://www.jeffreythompson.org/blog/2014/11/13/installing-ffmpeg-for-raspberry-pi/
Scheint aber etwas langwierig zu sein. Wieso gibst Du das File als wav und nicht als mp3 aus?

Bevor ich mich daran mache, würde ich gerne noch das Nutzungsszenario festlegen.
@jojoja wie verwendest Du das Sonos-File? Gibst Du es sofort nach der Konvertierung auf einem Sonos-Lautsprecher wieder? Oder nur adhoc bei Bedarf? Oder zu festen Zeiten?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

jojoja

Hallo hartenthaler,

man kann natürlich auch avconv verwenden, die Syntax sollte ähnlich sein. ffmpeg ist wohl (wie ich im Nachhinein erfahren habe) eh veraltet: https://wiki.ubuntuusers.de/avconv/

Warum ich wav verwende hat keinen driftigen Grund, habe das gefühl dass es etwas schneller geht als mp3 - Speicherplatz spielt für mich keine Rolle, da es ja eh überschrieben wird. Ich verwende das Ganze für meinen Wecker, da soll Datei einfach gleich vorhanden sein, also auf Bedarf.

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

hartenthaler

Ich habe nun avconv auf meinem RaspberryPi installiert.

sudo apt-get install libav-tools
sudo apt-get install libavcodec-extra


Der Aufruf erfolgt dann bei mir im Shell-Script mit

wget $1 --output-document=tagesschau100sek.mp4  --quiet
avconv -i tagesschau100sek.mp4 -vn -y /mnt/SonosSpeak/tagesschau100sek.mp3


Die Sprache ist gut verständlich, aber ab und an gibt es Rauschen und einige Nebengeräusche im mp3-File.
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Ellert

Zitat von: hartenthaler am 06 Oktober 2016, 18:32:46
Ich habe nun avconv auf meinem RaspberryPi installiert.

sudo apt-get install libav-tools
sudo apt-get install libavcodec-extra


Der Aufruf erfolgt dann bei mir im Shell-Script mit

wget $1 --output-document=tagesschau100sek.mp4  --quiet
avconv -i tagesschau100sek.mp4 -vn -y /mnt/SonosSpeak/tagesschau100sek.mp3


Die Sprache ist gut verständlich, aber ab und an gibt es Rauschen und einige Nebengeräusche im mp3-File.

Es geht auch
avconv -i $1 -vn -y /mnt/SonosSpeak/tagesschau100sek.mp3
wenn man das Video nicht benötigt.

jojoja

Zitat von: Ellert am 06 Oktober 2016, 20:27:03
Es geht auch
avconv -i $1 -vn -y /mnt/SonosSpeak/tagesschau100sek.mp3
wenn man das Video nicht benötigt.


Wunderbar, funktioniert. Ich hab noch -loglevel quiet hinzugefügt, damit der fhem-log nicht vollgemüllt wird :D

Dass manchmal komische Geräusche dabei sind kann auch ganz einfach daran liegen, dass die ARD ihr Videomaterial nicht stummschält und so im Hintergrund zu hören ist...
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

accessburn

Funktioniert :-)
Mich würde mich für eine Implementierung in FTUI interessieren.

<li data-row="1" data-col="1" data-sizex="3" data-sizey="3">
<header>Tagesschau</header>
<video width="320" height="240" controls>
<source src="http://media.tagesschau.de/video/100s/2016/1007/TV-100s-1135.webm.h264.mp4" type="video/mp4">
</video>
<div data-type="label" data-device="rss_tagesschau100" data-get="Link" class="inline"></div>
</li>


Wie bekomme ich den Link dynamisch in das src-Tag?
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Ellert

Zitat von: jojoja am 07 Oktober 2016, 11:56:10
Wunderbar, funktioniert. Ich hab noch -loglevel quiet hinzugefügt, damit der fhem-log nicht vollgemüllt wird :D

Dass manchmal komische Geräusche dabei sind kann auch ganz einfach daran liegen, dass die ARD ihr Videomaterial nicht stummschält und so im Hintergrund zu hören ist...

Man braucht eigentlich auch kein Shell-Script, ein notify sollte reichen

rss_tagesschau100:Link:.* "avconv -v quiet -y -i $EVTPART1 /mnt/SonosSpeak/tagesschau100sek.mp3"

accessburn

Zitat von: accessburn am 07 Oktober 2016, 12:16:22
Mich würde mich für eine Implementierung in FTUI interessieren.
Wie bekomme ich den Link dynamisch in das src-Tag?

Scheint nicht zu gehen. Kenne keinen Lösungsweg dazu.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

hartenthaler

#14
Ich weiß nicht, ob Dir das hilft:
define tagesschau100_Weblink weblink htmlCode { '<table><tr><td><iframe src="'.ReadingsVal("tagesschau100","Link", 0).'" width="512" height="288">iframes disabled</iframe></td></tr></table>' }

Das habe ich verwendet um den dynamischen Link in einen Frame zu bekommen, den ich auf einem Floorplan anzeigen kann. Mit FTUI kenne ich mich nicht aus, aber es sollte dort wohl ähnlich gehen.

PS: es gibt übrigens noch einen Thread zum Anzeigen der Tagesschau-Schlagzeilen: https://forum.fhem.de/index.php/topic,33813.0.html
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

accessburn

Internals:
   DEF        htmlCode { '<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>' }
   LINK       { '<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>' }
   NAME       tagesschau100_Weblink
   NR         420
   STATE      initialized
   TYPE       weblink
   WLTYPE     htmlCode


<div data-type="label" data-device="tagesschau100_Weblink" data-get="LINK"></div>

Das war wohl nix :-p
Habe versucht das Reading "LINK" in ftui einzubinden, aber außer { ' ' } kommt nix an. Die Playerkontrollen sind da aber das war es schon.
Verstehe es nicht  :'(

Trotzdem danke für den Ansatz hartenthaler.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

hartenthaler

Wenn ich Deinen html-code verwende, dann geht es bei mir auch nicht.
'<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>'
Warum verwendest Du nicht meinen?
<table><tr><td><iframe src="'.ReadingsVal("rss_tagesschau100","Link", 0).'" width="512" height="288">iframes disabled</iframe></td></tr></table>
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

accessburn

Iframe wollte ich eigentlich nicht nutzen. <Video> von HTML5 macht seinen Dienst eigentlich immer recht gut. Verstehe nicht warum es so nicht gehen sollte.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Heitum

Zum Video konvertieren in das richtige Format nutze ich meistens http://www.mp3party.cc wenn es um Youtube Videos geht.

Tyllux

#19
Wer nicht die 100 Sekunden-Variante, sondern die volle Länge sucht/bevorzugt, kann dies auch im Podcast-Archiv direkt als mp3 laden:

http://www.tagesschau.de/download/podcast/

Ich versuche noch die Logik der dort verwendeten Dateinamen zu verstehen, um diese automatisiert herunterzuladen - stehe aber (noch) auf dem Schlauch. Wenn ihr einen Tipp habt .... ;)

Ronn

Zitat von: jojoja am 04 Oktober 2016, 16:37:03
Ich habe inzwischen auf HTTPMOD umgestellt, weil das mir fehlersicherer vorkommt. Die oben genannte Funktion ist dafür nicht notwendig.

da ich das Video in wav konvertiere um es auf Sonos zu wiedergeben starte ich mit diesem Notify:
[code]define Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* {
system("/opt/fhem/tagesschau/tagesschau.sh ".ReadingsVal("rss_tagesschau100", "Link", ""));
}


Ich versuche dieses notify zu implementieren. Jedoch kommt folgende Meldung


Missing right curly or square bracket at (eval 4901) line 1, at end of line
syntax error at (eval 4901) line 1, at EOF


Das sollte ja eigentlich funktionieren. Aber irgendwo fehlt wohl ne Klammer? Aber wo?

jojoja

Sollte so passen, nun kommt die übliche Frage: direkt in fhem.cfg editiert? Ansonsten mal die geschweiften Klammern und die Zeichen samt Zeilenumbruch rauslöschen und wieder reinschreiben, damit Copy/Paste Fehler ausgeschlossen werden können.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Hey,

Vielen Dank für deine Rückmeldung. Also irgendwie bin ich wohl zu blöd dafür. Dein Tipp mit ,,grade ziehen" der Formel hat funktioniert. Ich hatte das Enter-Zeichen vergessen zu löschen.  :( Ich habe nun die ganzen Formeln eingefügt. Aber irgendwie bekomme ich bekomme ich die Sache nicht zum laufen:


deftmod rss_tagesschau100 HTTPMOD http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden 60
attr rss_tagesschau100 userattr event-on-change-reading readingsName_Link readingsRegex_Link stateFormat
attr rss_tagesschau100 event-on-change-reading Link
attr rss_tagesschau100 readingsName_Link Link
attr rss_tagesschau100 readingsRegex_Link <enclosure url="(.*)" length
attr rss_tagesschau100 room Testplattform
attr rss_tagesschau100 stateFormat Link


Notify

deftmod Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* { system("/opt/fhem/tagesschau/tagesschau.sh" .ReadingsVal("rss_tagesschau100", "Link", ""));; }


Tagesschau.sh

#echo Tagesschau in 100 Sekunden:
#echo Video mit dem Link $1 wird heruntergeladen...
wget $1 --output-document=tagesschau100sek.mp4  --quiet

#echo Wird in .mp3 konvertiert...
avconv -loglevel quiet -i $1 -vn -y /opt/fhem/tagesschau/tagesschau100sek.mp3


Die 99_myUtils.pm ist mit den Daten ausm ersten Post befüllt.

Was mache ich falsch?

jojoja

Dann müssen wir sehen, wo der Haken liegt.
Die Funktion für myUtils.pm brauchst du nicht, wird ja auch nirgends aufgerufen.
Wie sieht's denn aus mit:
- HTTMOD, kommen Aktualisierungen, ändert sich das Reading?
- Löst das Notify aus?
- Funktioniert das Skript aus der Shell heraus? Aufruf wäre mit:
/opt/fhem/tagesschau/tagesschau.sh <aktueller Link>
- Liegt das Skript im richtigen Ordner?
- Hat fhem die Berechtigung für das Skript? (Benutzer darf ausführen etc.)
Ein Blick ins Logfile schadet sicherlich auch nicht :)

Viele Grüße
Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Ich versuche mal deine Fragen zu beantworten. Anbei mal ein List:


Internals:
   BUSY       0
   CHANGED   
   DEF        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden 60
   FUUID      5cebbbef-f33f-0fee-4079-768bb36fd7b2d053
   Interval   60
   LASTSEND   1559075062.05449
   MainURL    http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       rss_tagesschau100
   NOTIFYDEV  global
   NR         542
   NTFY_ORDER 50-rss_tagesschau100
   STATE      http://media.tagesschau.de/video/100s/2019/0528/TV-100s-2105.webm.h264.mp4
   TRIGGERTIME 1559075122.05147
   TRIGGERTIME_FMT 2019-05-28 22:25:22
   TYPE       HTTPMOD
   addr       http://www.tagesschau.de:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/
   header     
   host       www.tagesschau.de
   httpheader HTTP/1.0 200 OK
Server: Apache/2.4.18 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Accept-Ranges: bytes
Content-Length: 977
Date: Tue, 28 May 2019 20:24:22 GMT
Connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 330
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /export/video-podcast/webm/tagesschau-in-100-sekunden/
   protocol   http
   redirects  1
   timeout    2
   url        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/
   value      0
   QUEUE:
   READINGS:
     2019-05-28 22:24:22   Link            http://media.tagesschau.de/video/100s/2019/0528/TV-100s-2105.webm.h264.mp4
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden
     value      0
   defptr:
     readingBase:
       Link       reading
     readingNum:
       Link       _Link
     readingOutdated:
     requestReadings:
       update:
         Link       reading _Link
   sslargs:
Attributes:
   event-on-change-reading Link
   readingsName_Link Link
   readingsRegex_Link <enclosure url="(.*)" length
   room       Testplattform
   stateFormat Link
   userattr   event-on-change-reading readingsName_Link readingsRegex_Link stateFormat

(Ist von gestern abend)

Soweit ich das sehe/verstehe wird der trigger minütlich ausgeführt. Als Reading steht ,,Link". Die Zeit dahinter ändert sich ebenfalls.

Notify. Bin ich ehrlich. Hab ich bis heute nicht wirklich verstanden wie ich das manuell testen kann oder irgendwie ,,kontrollieren" kann. Bin eher der DOIF Typ. Das versteh ich irgendwie besser.   :-[
Ich kann daher leider nicht so viel dazu sagen.

Ich habe das Skript jetzt aber mal ausführen lassen. Hatte als erstes nicht funktioniert. Habe dann $1 gegen den link ausgetauscht. Und nach dem Download wurde die mp3 erzeugt. Rechte vom Ordner sind auf 777 gestellt. Ordner Tagesschau, wo da Skript liegt, ist erstellt.

jojoja

#25
Probiers mal mit diesem Notify, der schreibende Pfad sollte natürlich zu deinem System passen. So kommt man sogar ohne Tagesschau.sh aus:
defmod Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* "ffmpeg -i $EVTPART1 -vn -loglevel quiet -y /media/SynologySonos/tagesschau100sek.wav"


Edit: Wenn $1 durch den Link ersetzt wird, wird auch immer nur dieser Link heruntergeladen :D Spielt aber (hoffentlich) eh keine Rolle mehr.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Hey,

war die Tage jetzt etwas beschäftigt. Daher erst jetzt wieder ne Meldung von mir. Ich wollte nur kurz zurückgeben, dass es jetzt auch bei mir funktioniert. Entscheidend waren deine Fragen die du gestellt hattest. Im Endeffekt läuft es so wie du es auf der ersten Seite beschrieben hast. Keine Ahnung wo da der Fehler war (also ein Benutzerfehler :)) Aber deine Fragen haben mich dann auf die Richtige Spur geführt. Danke dafür. Und danke für den coolen Schnipsel. Einen schönen Tag allen noch :)

curt

@jojoja
Ich bin zu doof. :(


define rss_tagesschau100 HTTPMOD http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/ 60
attr rss_tagesschau100 userattr event-on-change-reading readingsName_Link readingsRegex_Link stateFormat
attr rss_tagesschau100 event-on-change-reading Link
attr rss_tagesschau100 readingsName_Link Link
attr rss_tagesschau100 readingsRegex_Link <enclosure url="(.*)" length
attr rss_tagesschau100 stateFormat Link
attr rss_tagesschau100 room 05 Die Lage

define TagesschauDownloadStart notify rss_tagesschau100:Link:.* {system("/opt/fhem/tagesschau/tagesschau.sh ".ReadingsVal("rss_tagesschau100", "Link", ""))
attr TagesschauDownloadStart room 05 Die Lage



# cat /opt/fhem/tagesschau/tagesschau.sh
#echo Tagesschau in 100 Sekunden:
#echo Video mit dem Link $1 wird heruntergeladen...
wget $1 --output-document=tagesschau100sek.mp4  --quiet


Ich stelle mich echt zu doof an: Ich würde da ja nun erwarten, das in diesem (oder einem anderen Verzeichnis) ein mp4 rumliegt und ich mich anschließend damit rumärgere, dass irgendwie in FHEM nutzen zu können.

Aber da ist nirgendwo ein mp4 - was mache ich denn falsch?
RPI 4 - Jeelink HomeMatic Z-Wave

jojoja

@curt nimm mal aus den Zeilen "--quiet" und "-loglevel quiet" raus - dann sollten Logs im fhem Global log auftreten.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

curt

Zitat von: jojoja am 15 Juli 2019, 18:25:48
@curt nimm mal aus den Zeilen "--quiet" und "-loglevel quiet" raus - dann sollten Logs im fhem Global log auftreten.

Soooo. Als erstes: Das war der ganz typische Schusselfehler, fehlende abschließende geschweifte Klammer. Das funktioniert nun - ging aber in /opt/fhem - auch im bash-Script korrigiert.

Ich habe noch Fragen:
* Ich konnte  "-loglevel quiet" nicht herausnehmen, da ich das gar nicht habe. Das führt mich zu der Frage - wo müsste das denn hin?

* Einbindung in FHEM, also die Standard-Weboberfläche: Wie habt ihr das denn gemacht? Als Link oder eingebettet? Da wäre euer Code als Beispiel sehr hilfreich.

Zur Frage FTUI: Da gibt es ein Video-Widget: https://wiki.fhem.de/wiki/FTUI_Widget_Video - ich habe das aber noch nicht getestet.
RPI 4 - Jeelink HomeMatic Z-Wave

jojoja

Mahlzeit curt,

Mir ging es nur ums Audio, damit man es auf Sonos laufen lassen kann -  habe es also nicht in der Weboberfläche. Die Zeile
ffmpeg -loglevel quiet -y -i /opt/fhem/tagesschau100sek.mp4 /media/SynologySonos/tagesschau100sek.wav
im bash-Skript konvertiert das Video in eine wav, da war ursprünglich auch das "-loglevel quiet".

Viele Grüße
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

curt

Ok, verstanden - also nicht meine Baustelle.

Kann denn bitte jemand anders mir sagen, wie er das Video in die Weboberfläche eingebunden hat?
RPI 4 - Jeelink HomeMatic Z-Wave

curt

Aber das brachte mich auf eine Idee ... ein Standbild aus dem Video.

Der Teaser dauert 13 Sekunden oder so. Erstes sinnvolles Bild ist nach 15 Sekunden - und das schneiden wir aus. Das Video ist original 512x288. Ich verkleinere das für FTUI auf Briefmarkengröße. Aber das kann ja jeder anders machen.

Ich schreibe es mal auf, vielleicht findest das irgendwann jemand und freut sich. So geht es (Pfade ggf anpassen, es gehört in die oben beschriebene Scriptdatei):


ffmpeg -y -loglevel quiet -an -ss 0:0:15 -t 0:0:0.001 -i /opt/fhem/www/tablet/tagesschau/tagesschau100sek.mp4 -f image2 -s 98x55 /opt/fhem/www/tablet/tagesschau/tagesschau100sek.jpg

RPI 4 - Jeelink HomeMatic Z-Wave

Pr3mut05

Gibt es dafür immer noch keine komfortablere Lösung?

Habe auch schon unzählige Versuche gestartet um die "Tagesschau 100 Sekunden" wiederzugeben :/
Die Konvertierung ist schon viel Arbeit für einen einfachen Stream

curt

Zitat von: Pr3mut05 am 19 Mai 2020, 23:23:30
Gibt es dafür immer noch keine komfortablere Lösung?

Konkretisiere bitte "dafür": Was meinst Du konkret?

Vielleicht gibt es auch ein Missverständnis:
Ich konvertiere genau nichts. Denn ich will Bild und Ton. - Andere konvertieren, weil sie auf einem Zielgerät nur Ton hören können. Weil dieses Gerät Ton kann, aber keinen Bildschirm hat.
RPI 4 - Jeelink HomeMatic Z-Wave

Christoph Morrison


Pr3mut05

Zitat von: curt am 20 Mai 2020, 01:21:15
Konkretisiere bitte "dafür": Was meinst Du konkret?

Vielleicht gibt es auch ein Missverständnis:
Ich konvertiere genau nichts. Denn ich will Bild und Ton. - Andere konvertieren, weil sie auf einem Zielgerät nur Ton hören können. Weil dieses Gerät Ton kann, aber keinen Bildschirm hat.

Sorry, war etwas undeutlich
Ich benötige für meinen Sonos nur Ton

Pr3mut05

Zitat von: Christoph Morrison am 20 Mai 2020, 15:35:34
Es gibt die 100-Sekunden doch inzwischen als Audio Podcast (RSS)?

Das sieht grundsätzlich schon mal sehr gut aus
Aber wie lese ich via Sonos eine RSS aus? Über die PlayURI klappt das ja nicht. Ich muss da ja erst die URL zur MP3 rauslesen

Christoph Morrison

Du musst halt mit HTTPMOD den Feed lesen, die URL rauspopeln und dann PlayURI mit der rausgepopelten URL versorgen, z.B. mit DOIF oder so.
Das RSSFeed-Modul liefert leider nicht was du brauchst.

betateilchen

#39
Zitat von: Christoph Morrison am 26 Mai 2020, 15:38:16
Du musst halt mit HTTPMOD den Feed lesen

Dafür braucht man weder HTTPMOD noch RSSFeed, das geht per einfachster regex:


sub tagesschau {
  my $url = "http://www.tagesschau.de/export/podcast/hi/tagesschau-in-100-sekunden/";
  my $content = GetFileFromURL($url);
  $content =~ m/url=.(http.*\.mp3)/;
  return $1;
}


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Pr3mut05

Vielen Dank

Mit ein bisschen stöbern hab ich es jetzt doch tatsächlich so zum laufen gebracht

Allerdings wir die MP3 immer wieder abgespielt. Soll das so sein?!
Reading Repeat ist auf 0

betateilchen

Zitat von: Pr3mut05 am 26 Mai 2020, 17:34:08
Allerdings wir die MP3 immer wieder abgespielt. Soll das so sein?!

Das läßt sich mit den wenigen Informationen, die Du hier lieferst, nicht beantworten. Die Wiederholung kommt bestimmt nicht vom MP3 File selbst, und wie Du das Abspielen nun tatsächlich realisiert hast, wurde bisher hier noch nicht verraten.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Gator99

Hallöchen,

ich weiß der Thread ist alt, hoffe aber trotzdem auf Hilfe.
Ich möchte die MP3 Version der Tagesschau in 100 Sekunden aus dem Rss Feed über Sonos abspielen lassen.
Habe dazu den sub von betateilchen in meine 99_myUtils.pm übernommen.

Wenn ich das über ein notify aufrufe kommt auch die richtige URL ins FHEM LogFile.

Aber wie bekomme ich denn jetzt Sonos dazu das ganze auch abzuspielen?

Mit "set sonos_player playURI $1 15" spielt sonos immer nur den Track ab der noch im Player hinterlegt ist.

Also Frage: bleibt der Inhalt der Variable $1 (also die URL zum aktuellen File der Tagesschau)  nach ausführen des Notify vorhanden, und wie übergebe ich das an das play Kommando von Sonos ?

Wäre toll wenn hier jemand helfen kann!

Vielen Dank im Voraus
FHEM auf Raspi mit:
MAX! CUN - Busware CUL - MiLight Wifi LED - Brennenstuhl FunkDosen - Brennenstuhl Remote - Techem HKV und Wasserzähler - IR MCE Remote - Enigma2 VUUno - Kodi FireTV Stick - Sprachausgabe

Halvif

Die Videos von der Tagesschau auf YT kann man problemlos mit https://www.mp3juices3.cc herunterladen

Papaloewe

Seit einer Woche funktioniert die Linkgenerierung via HHTPmOD bei mir nicht mehr?

Weiß jemand was sich geändert hat?
Der Link: https://www.tagesschau.de/export/podcast/hi/tagesschau-in-100-sekunden
liefert jetzt das Ergebnis:
https://www.tagesschau.de Der Tagesschau-Nachrichtenüberblick in 100 Sekunden als Audio-Podcast. de ARD-aktuell / tagesschau.de Sun, 27 Mar 2022 18:56:06 +0200 Sun, 27 Mar 2022 18:56:06 +0200 https://www.tagesschau.de/image/podcast/ts100s-1400.jpg https://www.tagesschau.de redaktion@tagesschau.de webmaster@tagesschau.de manual 60 News Redaktion tagesschau.de redaktion@tagesschau.de tagesschau No Nachrichten, Inland, Ausland, Wirtschaft, Kultur, Reportagen, Berichte, News, Tagesthemen, Tageschau, Aktuelles, Neues, Neuigkeiten, Hintergrund, Hintergrundinformationen, Inneres, Politik, Innenpolitik, Aussenpolitik, Videos Der Tagesschau-Nachrichtenüberblick in 100 Sekunden als Audio-Podcast. Die aktuelle Tagesschau in 100 Sekunden von 18:21 Uhr vom 27.03.2022 00:02:28 Sun, 27 Mar 2022 18:21:00 +0200 20220327-TV-100s-1821.hi.mp3

Welchen Teil brauch ich denn genau für das MP§ File?

Danke
Thomas

Ellert

Es hat sich nichts geändert, die URL befindet sich im Body unter <enclosure url=