Seite 5 von 12
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Do 20. Feb 2020, 17:31
von waringer
Hallo bill,
keine Sorge wir alle haben mal angefangen und ich helfe gerne wenn ich kann.
Das PID File ist eine Datei die der Skill erstellt, darin wird die Prozess ID des Skills gespeichert damit z.B. Systemd den Skill "wiederfinden" und beenden kann bei bedarf (Reboot z.B.). Das wird erst später wichtig wenn der Skill Automatisch starten soll nach dem Booten.
Das mit der Umleitung hört sich für mich noch nicht so an wie es sein sollte. Im Internen Netz muss, wenn du mit dem Browser auf Raspi 1 eine Musikdatei anforderst, Automatisch eine Umleitung auf Raspi 2 und die entsprechende Datei erfolgen, ohne manuellen Eingriff. Der Browser sollte dann anfangen die Datei abzuspielen oder herunterzuladen.
Hier noch ein Beispiel wie eine radio.conf aussehen könnte (nur für den Skill, ohne Scanner):
Code: Alles auswählen
{
"bindingIP": "127.0.0.1",
"bindingPort": 3081,
"amazonAppID": "amzn1.ask.skill.a12345bc-6de7-89fa-b012-34c567890d12",
"pidFile": "/var/run/alexa_radio.pid",
"streamURL": "https://von.extern.erreichbare.url/musik/",
"dbUser": "meintollerdbbenutzername",
"dbPassword": "supersicherespasswortfürdiedatenbank",
"dbName": "radiogo"
}
Die Werte musst du natürlich anpassen
Grüße
Waringer
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Do 20. Feb 2020, 17:53
von billbo40
oh je,
doch noch Arbeit am Apache, hatte gehofft der wäre soweit ok. Hatte mit Deiner sowie der Vorlage aus h-blogs getestet, da werd ich wohl noch einiges zu testen haben!
melde mich sicher wieder,
vielen Dank!
bill
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 08:53
von billbo40
Habe mir nochmals die Reverse Proxy Einträge angesehen:
RedirectMatch ^/music/(.

$
http://internal-server:88/$1
Proxypass "/echo/radio" "
http://127.0.0.1:3081/"
ProxyPassReverse "/echo/radio" "
http://127.0.0.1:3081/"
die unteren zwei Zeilen können doch schon mal weg da bei mir der Skill auf dem externen Server liegt, oder mach ich jetzt einen Denkfehler?
Ebenfalls hab ich meinem internen Server keinen Eintrag erstellt dass auf den Ordner zugegriffen werden darf:
location / {
alias /path/to/audio/files/on/nas/;
allow all;
autoindex on;
location ~ \.flac$ {
fastcgi_pass unix:/var/run/fcgiwrap/fcgiwrap.sock;
fastcgi_param ALIAS $document_root;
fastcgi_param DOCUMENT_ROOT /path/to/convert/script/;
fastcgi_param SCRIPT_NAME flac2mp3.sh;
include fastcgi_params;
}
}
das ist natürlich Deine Ngix Variante, aber grundsätzlich doch ebenfalls richtig?
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 09:30
von waringer
Moin Moin bill,
der Redirect mittels
Code: Alles auswählen
RedirectMatch ^/music/(.*)$ http://internal-server:88/$1
sollte funktionieren. Zu beachten ist hierbei das das "music" aus der URI genommen wird für den internen Server. Aus "
http://extern/music/abba/1.mp3" wird also "
http://internal-server:88/abba/1.mp3"
Die 2 Proxypass Einträge werden benötigt da der Skill selber
a) Kein HTTPS spricht
b) Nur ein rudimentärer http Server ist und auf direkte Angriffe aus dem Netz wahrscheinlich nicht gut zu sprechen wäre

Daher können diese nicht entfallen und ein ReverseProxy ist zum Betrieb notwendig!
Für den internen HTTP Server ... funktioniert es denn schon, wenn du direkt auf den internen Server mit deinem Browser gehst (von Intern natürlich) das der Browser die Musik abspielt oder sie runterlädt?
Meine Nginx Beispiele laufen so nicht unter Apache da die Config Dateien nicht kompatibel sind. Aber das sollte auch einfach sein, in meinem Beispiel ist ja auch nicht die Umwandlung von flac im mp3 mit drin was du wahrscheinlich nicht brauchst und ich auch nicht weis ob ein Raspi das überhaupt in Echtzeit schafft.
Grüße
Waringer
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 10:15
von billbo40
wenn ich direkt im Browser die interne Ip mit /ordner/ aufrufe kann ich ganz normal im Browser die mp3 abspielen, bei Aufruf von
https://server-name/ordner/ werde ich nur nach interne Ip:port weitergeleitet
Das Dein Ngix Beispiel nicht funktionieren würde war schon klar, hab ich mir halt angeschaut um nachzuvollziehen wie es laufen sollte.
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 11:00
von waringer
Ah, OK, das habe ich oben erklärt ... bei der Umleitung in den Beispielen wird das 1. Verzeichniss rausgelöscht, daher funktioniert das bei dir nicht.
Bei dir müßte das dann ca. so aussehen:
Code: Alles auswählen
RedirectMatch ^/ordner/(.*)$ http://internal-server:88/ordner/$1
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 12:21
von billbo40
genau das wars!!! wieder ein kleines Stück weiter!
mille gratie!
die Musik liegt aber schon noch in Unterordnern oder alle Mp3s direkt in diesem Ordner?
pi@raspberrypi:~ $ sudo /usr/local/bin/scanner
2020/02/21 12:29:11 can't read conf file radio.conf
radio.conf liegt in /etc
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 13:47
von waringer
Die Musik liegt so vor wie du sie abgelegt hast. Wenn du alles in ein Verzeichnis packst geht das auch, würde ich aber nicht empfehlen
Der scanner legt in der DB u.a auch ab wie der Pfad zu der Datei ist, so das der Skill später die komplette URL zusammenbauen kann.
Der Scanner sucht die radio.conf standardmäßig im selben Pfad wo auch er liegt, du kannst ihm die Datei mit Pfad aber auch als Parameter mitgeben.
Der scanner muss auch nicht als root laufen, der kann auch als User genutzt werden, der User muss nur die Rechte haben die Dateien zu lesen.
PS: Die radio.conf von oben ist für den scanner aber zu wenig, die ist nur für den Skill! Da fehlt der ganze Teil wo die Datei liegen und wie er sie scannen soll

Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 14:25
von billbo40
das kopieren der radio.conf in besagtes Verzeichnis hat nichts gebracht, der angepasste Befehl startet den Scanner.
Leider ist in der .conf noch nicht alles im Reinen, die db ist noch leer
Re: Wiedergabe von Lokaler Musiksammlung
Verfasst: Fr 21. Feb 2020, 15:03
von waringer
Wie gesagt mit der radio.conf von oben klappt das nicht ^^
Hier eine erweiterte Version die du natürlich für dich anpassen musst:
Code: Alles auswählen
{
"bindingIP": "127.0.0.1",
"bindingPort": 3081,
"amazonAppID": "amzn1.ask.skill.a12345bc-6de7-89fa-b012-34c567890d12",
"pidFile": "/var/run/alexa_radio.pid",
"streamURL": "https://von.extern.erreichbare.url/musik/",
"dbUser": "meintollerdbbenutzername",
"dbPassword": "supersicherespasswortfürdiedatenbank",
"dbName": "radiogo",
"dbServer": "ip.des.db.servers",
"scannerConfiguration": [
{
"enabled": true,
"useTags": true,
"fileAccessMode": "local",
"removeNoLongerExisting": true,
"localBasePath": "/path/to/audio/files/on/nas/",
"validExtensions": {
".mp3":true,
".ogg":true
},
"pathIncludes": [
"/music"
],
"pathExcludes": [
"/music/Playlists"
],
"tagExtractors": {
}
},
{
"enabled": false,
"useTags": true,
"fileAccessMode": "local",
"removeNoLongerExisting": true,
"localBasePath": "/path/to/audio/files/on/nas/",
"validExtensions": {
".mp3":true,
".ogg":true
},
"pathIncludes": [
"/Musik",
"/MehrMusik"
],
"pathExcludes": [
"/Musik/Playlists",
"/MehrMusik/Playlists",
"/MehrMusik/Unsortiert"
],
"tagExtractors": {
}
}
]
}
In der Wiki ist das alles genauer erklärt.
*
https://github.com/waringer/Alexa-Radio/wiki/scanner
*
https://github.com/waringer/Alexa-Radio ... figuration