Synology-Forum.nl

Packages => Officiële Packages => Audio Station => Topic gestart door: waterglas op 11 juni 2012, 16:46:17

Titel: nrs excluden in random 100 audiostation
Bericht door: waterglas op 11 juni 2012, 16:46:17
Ik speel vaak random 100 nummers af in audiostation.
Nu heb ik ook wat mapjes met daarin Sinterklaas/kerst/kindermuziek.
Is er een manier om die niet mee te laten doen aan de random 100 van audiostation?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: Tien op 11 juni 2012, 16:51:26
Leuke vraag. Ik ben benieuwd naar het antwoord!
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 02 april 2013, 16:39:35
Ik heb wel een oplossing, maar dat vereist wat interactieve commando's via een ssh sessie.
De volgende stappen zorgen ervoor dat je een playlist krijgt van alle korte nummers uit je database (kort is tussen de 60 en 200 seconden) waarbij verschillende genres zijn uitgesloten.
Wanneer je SQL kent, kan je dit aanpassen en de filtering op andere gebieden doen.

1) voer het volgende commando uit om een playlist folder te maken in de music folder
mkdir /volume1/music/playlists2) bewaar de volgende sql code in een file bijvoorbeeld /tmp/audiostation-playlist.sql
select path from music
        where
                ( duration <= 200 AND duration >= 60 ) AND
                ( ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Podcast') AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() ;
3) voer het volgende commando uit om een playlist te krijgen die 'short' heet
cat   /tmp/audiostation-playlist.sql | /usr/syno/pgsql/bin/psql mediaserver admin -t | sed 's# /volume1/music#..#' > /volume1/music/playlists/short.m3u
4) voeg de playlist toe aan AudioStation
synoindex -a /volume1/music/playlists/short.m3u
Wanneer je de playlist weg wilt hebben, kan je dit commando gebruiken:
synoindex -d /volume1/music/playlists/short.m3u
Let op: dit zal geen negatieve gevolgen hebben voor AudioStation, maar je kunt misschien eerst tussen stap 3 en stap 4 de inhoud van het nieuwe bestand bekijken, alvorens de playlist toe te voegen aan AudioStation.
Let op: als dit allemaal abracadabra is, doe het dan niet. Je kan ook via de web-interface playlists maken en daar telkens muziek bij toevoegen, en die later randomizen.
Let op: De music tabelbevat de volgende kolommen die je kan gebruiken in je SQL
                                      Table "public.music"
    Column    |            Type             |                     Modifiers
--------------+-----------------------------+----------------------------------------------------
 id           | integer                     | not null default nextval('music_id_seq'::regclass)
 path         | text                        | not null
 title        | text                        | not null
 filesize     | bigint                      | not null default 0
 album        | text                        |
 artist       | text                        |
 album_artist | text                        |
 composer     | text                        |
 comment      | text                        |
 year         | integer                     |
 genre        | character varying(128)      |
 frequency    | integer                     |
 bitrate      | integer                     |
 duration     | integer                     |
 channel      | integer                     |
 track        | integer                     |
 disc         | integer                     |
 covercount   | integer                     |
 date         | timestamp without time zone |
 mdate        | timestamp without time zone |
 fs_uuid      | text                        |
 fs_online    | boolean                     | default true
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 25 mei 2015, 15:37:27
De playlist en random generator zijn idd. vrij beperkt in synology.
Ik bekeek even de oplossing van #klen en heb daar wat resultaat mee. Alleen staan de muziekbestanden bij mij niet in de standaard /music map. Ik krijg dan problemen in de playlist dat het pad niet klopt. Als ik de file info opvraag van een track in een playlist zie ik staan: /music/playlists/ /volume1/Muziek/en de rest van het pad.. 
er lijkt daar een soort samenvoeging te gebeuren, ik krijg dan een rood kruisje voor elke track in de playlist.
In de .m3u file zie ik staan: /volume1/Muziek/...
Weet iemand de correcte syntax bij de voorgaande instructies als je bestanden niet in /music staan?
Vreemd dat er geen 3th party Package lijkt te bestaan die wat dieper ingaat op het aanmaken van playlists?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 03 juli 2015, 13:59:13
Ik heb mijn playlist .m3u files in deze folder staan:
/volume1/music/playlists

Mijn muziek collectie staat in zijn geheel in /volume1/music

De filenamen in de m3u files zien er als volgt uit (slechts 1 regel als voorbeeld)
../Paul McCartney/Tripping The Live Fantastic/01 Things We Said Today.mp3

Dat betekent dat de files in een playlist in een relatief pad moeten staan ten opzichte van de hoofdfolder van de muziek-collectie.

Ik kan je helaas niet helpen met iets dat daarvan afwijkt, omdat ik dat zelf niet heb.

Succes
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 15 juli 2015, 01:52:07
Inderdaad, nu ik mijn media in de /music map staan heb, lukt het 100%! Ik zie nu ook een relatief pad in de m3u file en ze spelen goed af in Audio station.  8)
Via de SQL Select komen er heel wat mogelijkheden bij om je muziek te selecteren, die je niet kan met standaard interface van Synology.
Vooral het feit dat je geen mappen kan excluden bij Random 100 vind ik persoonlijk een flink gebrek.
Maar een playlist blijft natuurlijk een playlist met een voorgemaakte volgorde, een grote lijst (pakweg >1000 tracks) kan je dan wel random afspelen maar dan verlies je weer de afspeel overzicht volgorde in de player.
Ook een Smart playlist maakt telkens weer dezelfde selecties in dezelfde volgorde! Die moet je ook random afspelen.
Random 100 is dan wel telkens willekeurig en die kan je gewoon sequentieel afspelen zodat je de vorige track nog steeds kan vinden/zien tov. de huidige, alleen die functie kan geen mappen excluden....

De zelfgemaakte m3u files zijn wel telkens random van volgorde dankzij de Where met 'order by RANDOM()'. Ik merk zelf dat eens je de m3u file heb toegevoegd aan Audiostation dat enkel de opdracht voor het creëren van de m3u volstaat om een playlist met nieuwe inhoud in audio station te bekomen. Dat benadert al flink de random100 lijst, alleen die opdracht voor de m3u file kan enkel via de SSH sessie (putty) uitgevoerd worden.
Zou er een mogelijkheid zijn om dat vanuit de Synology interface te doen? Of mogelijks automatisch op dagelijks basis bijvoorbeeld?
En kan je met Where de aangemaakte playlist beperken in aantal tracks?
Ik vrees dat mijn probleem nog steeds blijft bestaan.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: raym0nd93 op 19 juli 2015, 10:35:12
Ik heb dit zelf niet getest, maar het zou een workaround kunnen zijn die je probleem oplost.

Zet in audio station de optie aan voor persoonlijke bibliotheek en geef aan dat je persoonlijke muziek en shared music wilt luisteren. Als je de sinterklaas/kerst/kindermuziek in de bibliotheek van een losse user zet(evt. een user kindermuziek oid maken) en de rest in de user waar je mee inlogt of gewoon in de /music map kom je niet bij de kindermuziek uit. Als je wel de kindermuziek erbij wilt hebben log je in als user kindermuziek en krijg je ook de muziek uit /music erbij.

Je zou ook nog kunnen kiezen voor enkel personal, dan heb je dus of enkel de kindermuziek of enkel jouw muziek.

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 05 augustus 2015, 14:50:58
Je kunt de select/where/order sql statement uitbreiden met 'LIMIT getal'

Dus bijvoorbeeld:
select path from music
        where
                ( duration <= 200 AND duration >= 60 ) AND
                ( ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() limit 100;

Verder kan je alles in een script doen en het elke dag uitvoeren via crontab, maar dat vereist weer iets meer/andere Unix kennis.

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 05 augustus 2015, 15:07:59
ha ja de 'limit' mogelijkheid, had ik niet bij stil gestaan. Is inderdaad een stap in goede richting.
Blijft dan die cronjob, ik vrees dat dit een beetje boven mijn petje zal gaan. Of heb je daar een voorbeeld code van beschikbaar? ik veronderstel dat het toch wel wat werk is?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 05 augustus 2015, 16:32:10
Ik ben op dit moment een test aan het schrijven met een named pipe (mkfifo)
Het werkt geniaal -al zeg ik het zelf  ;) -, maar ik denk niet dat het goed is om dit zomaar op een server te draaien als je geen verstand hebt van Linux. Bovendien vereist het installatie van de coreutils ipkg.

Ik zal je een wat robustere manier beschrijven die je via crontab kunt draaien, maar dat kost wat meer tijd.
Dat kan dan elk uur (elke dag, wat je wilt) de lijst vernieuwen.

Ik kom erop terug.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 06 augustus 2015, 11:01:07
Ik heb een methode gevonden om periodiek een random 100 afspeellijst te maken

Hier zijn de stappen:


Hier zijn de scripts:
1) SQL voorbeeld - bewaar dit in een bestand bijvoorbeeld /opt/etc/audiostation-stuff/random100.sql - pas het aan met je eigen code om nummers te 'excluden' via nog meer SQL statements.
select path from music
        where
                ( duration >= 60 ) AND
                ( ( genre != 'Podcast' ) AND ( genre != 'Classical' ) AND ( genre != 'Kinderen' ) AND (genre != 'Luisterboek') AND (genre != 'Children\'s Music') )
                order by RANDOM() limit 100;
2) script voorbeeld - bewaar dit in een ander bestand, bijvoorbeeld /opt/etc/audiostation-stuff/random100.sh
#!/bin/sh

# random100.sh
# this script will try to create a playlist with random songs, based on a SQL statement or file
# change the following values:

# BASE folder - this is were the SQLFILE is located and this script
BASE=/opt/etc/audiostation-stuff

# this is the output file - this is where the playlist resides in the filesystem
PLAYLIST=/volume1/music/playlists/random100.m3u

# Only change these values if your music library is located in another location
SEARCH="/volume1/music"
REPLACE=".."

# a better approach is to put the SQL statements into a file:
# there is more flexibility then and it is better readable
SQLFILE=$BASE/random100.sql

# run the command, but only when the playlist file already exists.
if [ -f $PLAYLIST ] ; then
    # this is with the SQL statements from a file
    if [ -f $SQLFILE ] ; then
        /usr/syno/pgsql/bin/psql -P pager=off -A -q -t -f $SQLFILE mediaserver admin | sed "s#$SEARCH#$REPLACE#" > $PLAYLIST
    fi
else
    exit
fi

# you should add the PLAYLIST file one time to Audiostation with the following command
#synoindex -a $PLAYLIST

# you can add the following line to the file /etc/crontab to run this file once every day, but remove the '#' in front of it
#5       6      *       *       *       root    /opt/etc/audiostation-stuff/random100.sh

# when done, restart the cron process with the following command
#/usr/syno/sbin/synoservicectl --restart crond


3) zorg dat het script executeerbaar is: chmod 755 /opt/etc/audiostation-stuff/random100.sh

4) draai het script handmatig om te zien of het werkt /opt/etc/audiostation-stuff/random100.sh - het resultaat moet zijn dat de playlist file is veranderd (in dit geval /volume1/music/playlists/random100.m3u)
Wanneer je nog geen afspeellijst aan AudioStation hebt toegevoegd moet je dat nog doen via dit commando:
synoindex -a /volume1/music/playlists/random100.m3u

5) controleer of de verandering bij AudioStation komen door naar de AudioStation website te gaan en te kijken of de playlist is aangepast

6) voeg een regel toe aan de file /etc/crontab om dit commando periodiek uit te voeren - zie het voorbeeld in het script, dat zal een maal per dag de file aanpassen, om 06:05 (vijf over 6 in de ochtend, elke ochtend)
5       6      *       *       *       root    /opt/etc/audiostation-stuff/random100.sh

7) herstart crontab via dit commando /usr/syno/sbin/synoservicectl --restart crond

Bij mij werkt dit zoals beschreven en verandert de random lijst elke keer als de crontab regel wordt uitgevoerd. Als test deed ik dit elke 10 minuten en Audiostation geeft dat goed weer.

Let op 1 Het is wel belangrijk dat de lijst evenlang blijft. Omdat de playlist in de database staat als een lijst met 100 nummers, moet je die lengte intact houden. Verander je het aantal resultaten, dan moet je de lijst weghalen en opnieuw toevoegen via synoindex -d / synoindex -a

Let op 2 Een groot aantal stappen moet je doen als admin user (root), dat is niet anders. Met name de laatste twee die met crontab te maken hebben. Afhankelijk van de plek waar je de bestanden neerzet moet je ook sommige dingen als admin gebruiker doen. Zet de bestanden in je home folder of ergens op /volume1 maar zet ze niet in /usr/local of /var/tmp want dan zijn ze weg na een upgrade. In mijn voorbeeld staat alles in /opt/etc/audiostation-stuff maar het kan ook in /var/services/homes/kael/src ofzo

Ik hoop dat mensen er iets aan hebben, het was leuk om het uit te zoeken.
Laat weten als er iets niet klopt of onduidelijk is.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 06 augustus 2015, 12:12:55
Dat ziet er goed uit, ik ga dit eens uittesten aan de hand van je gedetailleerde beschrijving.
Bij punt 7,  herstart crontab, was die dan eerder gestopt?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 06 augustus 2015, 13:02:59
Wanneer je de crontab file verandert, moet je cron herstarten, om de verandering kenbaar te maken, dat gaat dus niet automagisch.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 11 augustus 2015, 22:32:16
ik geraak niet tot het einde;
mijn playlist.sql en random.sh file staan beide in volume1/music/playlists als ik dan in die map de rechten wil instellen via:
DiskStation> chmod 755 random.sh
krijg ik: chmod: random.sh: Operation not permitted (Ik ben aangemeld via admin in Putty.) Wat doe ik verkeerd?

Die mappen waarvan sprake: /usr/syno, /opt/etc, /var/services, vind ik niet terug, niet in Putty niet in verkenner.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: Birdy op 11 augustus 2015, 22:42:48
Met PuTTY moet je ook inloggen als gebruiker root met password van admin.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 11 augustus 2015, 23:42:08
OK, dat lukt, via dir zie dan wel /music niet meer maar kan blijkbaar wel de chmod uitvoeren zonder fout.
Terug met mijn admin loopt de random.sh nog steeds niet; ik krijg nu: DiskStation> random.sh
-sh: random.sh: not found
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 13 augustus 2015, 12:48:30
Dat komt omdat '.' niet in je pad staat (en dat is goed)

Probeer eens ./random.sh  -of- /volume1/music/playlists/random.sh  (of waar het bestand ook staat)
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 14 augustus 2015, 00:06:27
lukt ook niet zelfde foutmelding.
Met die sh ervoor (een tip die via Google zag) heb ik wel enig resultaat:
DiskStation> sh ./random.sh
./random.sh: line 29: syntax error: unexpected end of file (expecting "then")

Ik heb intussen de lege lijnen uit de random.sh  gehaald want daar kwam ook een foutmelding van : not found: line 2:, blijft nu nog die laatste betreft die 'then', raar, de 2 nested if-then's lijken toch OK?

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 14 augustus 2015, 14:37:04
Als je het alleen kan draaien via sh random.sh herkent de shell de eerste regel niet en heb je een fout gemaakt.
Vermoedelijk heb je het eerst in windows binnengebracht. Je kan ook nooit een foutmelding over regel 2 hebben.

Vermoedelijk zitten er \n en \r karakters in.
Hoe bewerkte je het bestand voor het op de synology te krijgen?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 02 september 2015, 22:04:06
ik heb de code geselecteerd met de 'selecteer' optie en gekopieerd daarna geplakt in Notepad++ op W7 en opgeslagen als 'normaal tekstbestand'.
Ik probeer net nog eens met een nieuw bestand random2.sh maar zelfde probleem; krijg het bestand niet uitgevoerd.
Ook nog eens opgeslagen als 'unix script file' maar zelfde probleem.

Ik ervaar ook iets eigenaardigs met de shell. Voor elke opdracht staat, als prompt, DiskStation>
ik gaf de opdracht chmod 644 random;sh (met typfout) en er komt;
chmod: random: No such file or directory
BusyBox v1.16.1 (2015-06-29 18:08:12 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

en nu ziet de prompt er plots zo uit (waar ik wel het path kan zien):
/volume1/music/playlists $
De opdracht dir (ipv. ls -l om de rechten te kunnen zien) lukt nu niet meer, voorheen wel. Maar ik kan nog steeds de sh niet uitvoeren.



Titel: Re: nrs excluden in random 100 audiostation
Bericht door: Pippin op 02 september 2015, 22:13:06

Misschien zit Apparmor hier in de weg?

Probeer eens:

/usr/syno/etc.defaults/rc.sysv/apparmor.sh stop

Dan het script, en dan Apparmor weer starten:

/usr/syno/etc.defaults/rc.sysv/apparmor.sh start
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 02 september 2015, 23:03:01
ik zie die apparmor.sh niet staan in die map. Wel een 20-tal andere  bijv. ups-net.sh maar als ik die wil uitvoeren komt terug: not found.
Bij aanmelden via Putty als admin merk ik ook dat er de melding komt Could not chdir to home directory...
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: Birdy op 02 september 2015, 23:26:12
Aanmelden als root met het password van admin.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 09 september 2015, 13:57:22
ik gaf de opdracht chmod 644 random;sh (met typfout) en er komt;

Dit is -op zich- wel een typfout, maar wel een ernstige: je geeft nu twee commando's aan de shell, waarvan de laatste een nieuwe shell opstart.
Dit soort dingen zijn vrij serieus en je moet echt verstand hebben van linux. Je moet zeker geen tikfouten maken.

Dat dan opeens 'dir' niet meer werkt snap ik wel.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 09 september 2015, 14:02:02
ik heb de code geselecteerd met de 'selecteer' optie en gekopieerd daarna geplakt in Notepad++ op W7 en opgeslagen als 'normaal tekstbestand'.

Probeer eens Edit->EOL Conversion->UNIX format  (engelse versie van Notepad++)
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: satje4u op 04 oktober 2015, 10:54:52
Hoi Klen

Zie ook topic  Maximum afspeelwachtrij van 8192 nummers

Heb je ook een oplossing om dat max getal op te schroeven??

satje4u :D
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 08 oktober 2015, 17:54:05
Nee, geen oplossing.

Deze file heeft de definitie /volume1/@appstore/AudioStation/app/audio-common.js

Citaat
SYNO.SDS.AudioStation.Define={MAX_SONG_LIMIT:8192}

Maar ik ga die waarde niet veranderen, hij is mij hoog genoeg  ;)
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: satje4u op 08 oktober 2015, 19:57:37
bedankt

nu nog uitvinden hoe ik dat kan wijzigen want bij mij staat dat op 4092 en dat is te krap.

satje 4u
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 23 november 2015, 23:51:29
na een onderbreking toch nog eventjes terugkomen op deze;
Ik sla de randoms.sh nu op met Notepad++ als Unix met de EOL zoals je zei en ik heb nu geen problemen meer om de random5.sh zoals ik ze noemde, uit te voeren.
Echter er wordt nog steeds geen m3u file aangemaakt!
Ik ben ingelogd via Putty met Root en admin pw en zie via Dir:
-rwxr-xr-x    1 kurt     users         1413 Nov 23 23:18 random5.sh
in de derde kolom, moet daar geen root of admin staan? Sommige bestanden van eerdere tests in die map hebben admin, allicht omdat ik toen met admin aangemeld was op de Synology?
Ik probeerde ook eventjes met 777: '-rwxrwxrwx    1 kurt', maar ook geen m3u file te zien.
Dat is mijn script file:
#!/bin/sh

# random5.sh
# this script will try to create a playlist with random songs, based on a SQL statement or file
# change the following values:

# BASE folder - this is were the SQLFILE is located and this script
BASE=/volume1/music/playlists/

# this is the output file - this is where the playlist resides in the filesystem
PLAYLIST=/volume1/music/playlists/random100.m3u

# Only change these values if your music library is located in another location
SEARCH="/volume1/music"
REPLACE=".."

# a better approach is to put the SQL statements into a file:
# there is more flexibility then and it is better readable
SQLFILE=$BASE/playlist.sql

# run the command, but only when the playlist file already exists.
if [ -f $PLAYLIST ] ; then
    # this is with the SQL statements from a file
    if [ -f $SQLFILE ] ; then
        /usr/syno/pgsql/bin/psql -P pager=off -A -q -t -f $SQLFILE mediaserver admin | sed "s#$SEARCH#$REPLACE#" > $PLAYLIST
    fi
else
    exit
fi

# you should add the PLAYLIST file one time to Audiostation with the following command
#synoindex -a $PLAYLIST

# you can add the following line to the file /etc/crontab to run this file once every day, but remove the '#' in front of it
#5       6      *       *       *       root    /opt/etc/audiostation-stuff/random100.sh

# when done, restart the cron process with the following command
#/usr/syno/sbin/synoservicectl --restart crond

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 03 december 2015, 14:10:41
In het script staat dit:

# run the command, but only when the playlist file already exists.
if [ -f $PLAYLIST ] ; then


Dat betekent dat het script alleen draait als er al een file staat die de goede naam heeft.
Dat is een veiligheidsmaatregel.
Wat je kan doen is het volgende:

/usr/syno/pgsql/bin/psql -P pager=off -A -q -t -f /volume1/music/playlists/playlist.sql mediaserver admin | sed "s#/volume1/music#..#" > /volume1/music/playlists/random100.m3u
Dit is gebaseerd op jouw script. Dus ik ga ervan uit dat je een bestand hebt gemaakt dat playlist.sql heet en dat staat in /volume1/music/playlists

Je moet ook de playlist bekend maken bij Audiostation. Ik dacht dat dat allemaal al gebeurd was, maar misschien niet.

Probeer het nog maar eens, en laat het maar weten.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 04 december 2015, 23:42:37
OK, ik ben een stukje verder geraakt. De .m3u wordt nu aangemaakt bij het manueel uitvoeren van de .sh file
Ik heb een oude .m3u hernoemd tot random.m3u, zo bestaat de file dus en kan de script uitgevoerd worden. Maar ik had ook een fout in de sql opdracht; ( path = 'disco' ) was niet correct, nu aangepast tot ( path LIKE '%disco%' )
Na het manueel uitvoeren (als root) van:  synoindex -a /volume1/music/playlists/random100.m3u krijg ik echter nog niet de aangemaakte playlist te zien in de Audio Station playlists (afspeellijst). Die moet toch daar verschijnen neem ik aan?
Dan rest nog die cron job maar dat is voor later.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 07 december 2015, 22:00:02
Ja, dat commando zou moeten werken, wanneer het geen foutmelding geeft.

Kan je eens dit commando uitvoeren: tail /volume1/music/playlists/random100.m3u
Het spijt me dat het nog niet gelukt is, maar je bent denk ik echt op de goede weg.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 07 december 2015, 23:35:49
Die tail is dus type in DOS. Ik zie de mp3's en hun locatie uit de .m3u playlist. Je herinner je allicht van uit mijn eerste berichten dat mijn muziek niet in de standard \music map stond maar in een eigen map ..\muziek. Ik heb ze toen als test gekopieerd naar \music en kon zo een stuk verder. Nu blijkt die .m3u toch enkel links naar bestanden te bevatten uit \muziek! Hoe kan dit? Ik zie nergens geen link in de opdrachten.
Allicht de indexering op de Synology zelf, bij Media indexering, Geindexeerde map zie ik deze tabel;
Naam   Map                         Foto Muziek Video
Music   /music                      niks aangevinkt
Muziek /Vol1/media/muziek           v
Bij naam Music is niks aangevinkt wel bij naam Muziek met bestandstype Muziek, hierdoor bekom ik allicht dan toch mijn muziek bestanden uit mijn niet standard muziek map. Dit kan de locatie verwijzingen in de m3u file verklaren. Mogelijks lukt dan toch om deze instructies random af te spelen vanuit niet standard music map?
Ik heb Music nog niet laten indexeren (10000den bestanden, waarvan een reeks dubbel als test, zal dat geen problemen geven?)

OK, maar blijft de vraag; waarom wordt de m3u niet opgenomen bij de playlists in Audio Station?
Met de opdracht synoindex -a /volume1/music/playlists/random100.m3u.  (zowel met admin als root user)
Bij mij staat Persoonlijke Bibliotheken niet actief bij de instellingen van audio station. Kan dat een reden zijn?
Heel vreemd; bij bericht #3 kreeg ik wel de playlist te zien maar die waren dan met een verkeerd path. Kan het te maken hebben met een update van de DS? DSM 5.2-5644 Update 1
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 08 december 2015, 15:45:36
Wat er in de m3u file staat komt uit de database.
Je hebt het nu eenmaal anders dan ik en dan is het moeilijk om je te helpen.
Je hebt ook minder verstand van linux en je laat niet zien wat ik vroeg, namelijk een tail van de file, zodat ik sneller kan zien wat er IN de m3u file staat. Nu moet ik het uit je antwoord halen en dat is wat lastiger.

Volgens mij gaat het werken als je de m3u file in je muziek collectie zet, in de folder playlists en dan het synoindex programma weer aanroept. De regels in de m3u file verwijzen naar de mp3 tracks, dus moet de m3u file in de muziek collectie staan 'ergens'

In jouw geval zal dat dan in /Vol1/media/muziek moeten zijn. Maak een folder playlists en zet daar de m3u eens in
Doe dan nog eens het synoindex commando met -a /Vol1/media/muziek/playlists/random100.m3u

Maar geef toch ook even het resultaat van het tail programma dat ik vroeg (en dat iets anders doet dan TYPE)

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 08 december 2015, 23:45:31
Ik had niet begrepen dat je die Tail output wenste te zien.  :oops: Bij deze:
DiskStation> tail random100.m3u
/volume1/Vol1/Media/Muziek/Unpop/Dance/disco/Deniece Williams - I've Got The Next Dance.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/ambi/apresski/Olaf Henning - Cowboy & Indianer (remix).mp3
/volume1/Vol1/Media/Muziek/Top/Dance/disco/Crown Heights Affair - You Gave Me Love.mp3
/volume1/Vol1/Media/Muziek/Unpop/Dance/disco/Jan Miles - You Shouldn't Do Me Like That.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/ambi/apresski/Die Atzen Frauenarzt & Manny Marc - Disco Pogo (Atzen Musik Mix).mp3
/volume1/Vol1/Media/Muziek/Top/Dance/ambi/Willy Lustenhouwer - Zet Je Vanachter.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/slow70s/Claude François - Le mal aimé.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/slow70s/Rob De Nijs - Ik laat je vrij.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/disco/Van McCoy - The Hustle.mp3
/volume1/Vol1/Media/Muziek/Top/Dance/disco/Sharon Redd - Can You Handle It.mp3
Ik snap niet waarom daar nog steeds verwijzingen naar /Muziek in staan terwijl ik net probeer om de standaard Music uit je instructies probeer te gebruiken.
Mijn SQL file:
select path from music
        where
                ( duration <= 250 AND duration >= 60 ) AND
(( path LIKE '%disco%' ) OR ( path LIKE '%ambi%' ) OR (path LIKE '%slow70s%'))
                order by RANDOM() limit 100;
en mijn SH file;
# random6.sh
BASE=/volume1/music/playlists/
PLAYLIST=/volume1/music/playlists/random100.m3u
SEARCH="/volume1/music"
REPLACE=".."
SQLFILE=$BASE/playlist.sql
if [ -f $PLAYLIST ] ; then
    # this is with the SQL statements from a file
    if [ -f $SQLFILE ] ; then
        /usr/syno/pgsql/bin/psql -P pager=off -A -q -t -f $SQLFILE mediaserver admin | sed "s#$SEARCH#$REPLACE#" > $PLAYLIST
    fi
else
    exit
fi
deze creëert dus de .m3u inhoud zoals getoond bij Tail...
Ik vermoed dat de index instelling in Synology niet correct zijn. Naar wat verwijst de music in; select path from music?
Naar de System default folder? Zoals te zien bij Config scherm, Gedeelde mappen? Daar activeerde ik het Indexeren van bestanden maar merk geen verschil.
Maar mogelijks verwijst 'music' naar Config, Media indexering, Geindexeerde map? Daar heb ik zowel een music als Muziek, alhoewel enkel Muziek /Vol1/Media/Muziek aangevinkt is met Bestandtype muziek. Music naar /music wil niet opslaan met Bestandtype muziek, blijft dus steeds afgevinkt.

Ik deed dezelfde test in /music/playlists met aangepaste .sh maar daar geraakt de .m3u niet bijgewerkt.
En inderdaad als ik daar mijn gekopieerde  .m3u file laat toevoegen aan de Plaulists in Audio player verschijnt ze wel maar met verkeerde path verwijzingen: /Vol1/Media/Muziek/Playlists//volume1/Vol1/Media/Muziek/Top/Dance...
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 09 december 2015, 13:30:36
Pfffff - dit schiet niet op omdat je alles anders hebt
Toch ben je er bijna denk ik.

De 'music' in het SQL bestand wijst naar de music database - dat is  verder niet interessant.
Wat interessant is zijn de PADEN in je music database. Die beginnen allemaal met /volume1/Vol1/Media/Muziek
Nou, goed, dat is dus zo.
Dan moet je de playlist file in /volume1/Vol1/Media/Muziek/playlists stoppen en dat aangeven in het script
Dan moet je de tracks in de file relatief maken ten opzichte van de folder /volume1/Vol1/Media/Muziek/playlists

De SEARCH= variabele in het script moet worden aangepast

Uiteindelijk moeten de paden relatief zijn ten opzichte van het bestand. Dus zo zijn (in mijn geval):
../Johnny Cash/The Legend/62 Daddy Sang Bass.mp3

En voor jouw nummers dus:
../Top/Dance/ambi/Willy Lustenhouwer - Zet Je Vanachter.mp3
of
../Muziek/Top/Dance/ambi/Willy Lustenhouwer - Zet Je Vanachter.mp3

(dat hangt er dus van af waar je random100.m3u staat)

Dus /volume1/Vol1/Media/Muziek moet .. worden

Probeer deze regel eens te veranderen
SEARCH="/volume1/music"
in
SEARCH="/volume1/Vol1/Media/Muziek"

En zorg ervoor dat in de file random100.m3u de nummers er uitzien zoals boven, dus met ../Top aan het begin
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 09 december 2015, 22:17:18
Er komt schot in de zaak  :D
De SEARCH regel had ik al goed staan.
Als test hernoemde ik eens mijn playlist.sql, en voerde de .sh uit. Zelfde resultaat, niks, geen bijwerking van de .m3u maar ook geen foutmelding. Er lijkt geen foutmelding te komen als de .sql niet gevonden wordt? Kan zo'n 'file-exist-check' erbij in de script?
Bij mij was de variable PLAYLIST niet correct ingesteld. Ze staat nu zo: PLAYLIST=/volume1/Vol1/Media/Muziek/Playlists/random100.m3u  (/Playlist stond er niet bij  :oops:)
Nu wordt dus .m3u wel goed ververst en toevoegen aan AS lukt ook, Eureka!!!

Maar kijk eens naar de Tail, ik heb zowel lijnen met ../ en zonder ../ vooraan:
die met ../ worden in AS getoond als /Vol1/Media/Muziek/Top...
die zonder ../ als /music/Top/...
Beide soort locaties verwijzingen spelen goed af in AS!
DiskStation> tail random100.m3u
/volume1/music/Top/Dance/ambi/apresski/Partyjocks - Sweet Caroline.mp3
../Unpop/Dance/ambi/Marc Pircher & Band - Heute Oder Nie.mp3
/volume1/music/Top/Dance/ambi/Black Lace - Superman.mp3
/volume1/music/Top/Dance/ambi/Regenboogtrio - De Lichtjes Van De Schelde.mp3
../Top/Dance/ambi/Heideroosjes - Barbie Girl.mp3
../Top/Dance/slow70s/Deniece Williams - Free.mp3
../Top/Dance/club00s/David Guetta & Chris Willis vs Tocadisco - Tomorrow Can Wait.mp3
../Top/Dance/ambi/Dynamite - De Opblaaskrokodil.mp3
../Unpop/Dance/disco/Gloria Gaynor - Searchin'.mp3
../Unpop/Dance/ambi/Sam Gooris - Wully Bully.mp3

Ik heb effectief staan in de SQL: SEARCH="/volume1/Vol1/Media/Muziek"
maar toch worden er bestanden uit /music gevonden, allicht omdat die (nu) ook geïndexeerd staat.
Dat indexeren blijft nog wat mysterieus: je kan bij Media indexering index aanzetten maar ook bij Gedeelde map.
Ik heb destijds mijn, niet standaard, /Muziek map gekopieerd naar /music als test. Alles staat er dus dubbel op, ik moet dit nog opkuisen.
Maar mijn bevindingen lijken aan te duiden dat random in alle geïndexeerde muziek zoekt en niet enkel via die SEARCH, kan dit?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 31 januari 2016, 22:05:08
Ik heb intussen nog wat verder geëxperimenteerd met de random playlist. Dankzij de uitgebreide hulp van Klen kon ik toch resultaat boeken.
De meeste problemen die ik tegenkwam waren vooral te wijten aan het feit dat mijn media in een afwijkende map stond.
De verwarring rond de indexering functie van DSM is ook uitgeklaard. Enkel Media indexering in het Config scherm is van belang voor AS niet de file indexering uit Gedeelde map.
Ik heb nu de playlist script in submap van /music staan en ik merk dat nieuwe playlists (.m3u) bijna ogenblikkelijk automatisch in Audiostation terecht komen, dus zonder de opdracht synoindex -a $PLAYLIST. Dit komt allicht om dat die map ook geïndexeerd is.
Alleen het automatisch refreshen elke dag van de .m3u heb ik nog niet geprobeerd, het bestand /etc/crontab is enkel via putty bereikbaar (niet vanuit windows file explorer of DSM File station). Voor zover ik begrepen heb (http://www.synology-forum.nl/algemeen/verslag-van-een-installatie-phpxmail-telaen-sabnzbd/msg7795/#msg7795) moet je dit met de interne editor VI doen.
Ik maakte dus eerst een reserve kopie via de opdracht: cp crontab crontab-copy
Verder zou het ook handig zijn dat je vanuit de AS interface zou kunnen de .m3u files vernieuwen ipv. manueel of via de dagelijkse auto-opdracht. Zo kan je dan een aantal scripts klaarstaan hebben en ze refreshen net voordat je ze wil afspelen.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: klen op 18 februari 2016, 17:32:28
Mooi dat het gelukt is.

Het commando synoindex -a $PLAYLIST hoeft maar één keer worden uitgevoerd inderdaad. Daarna zal AS altijd in het bestand kijken wanneer je de lijst wil afspelen.

Wanneer de crontab regel is gelukt kan je die zelfs elke minuut draaien, zodat het bestand elke minuut verandert. Dat raad ik niet aan, maar bij mij werkt het wel. AS 'ziet' die veranderingen gewoon als je de lijst opent.

Ik zou gewoon elk uur een nieuwe lijst maken, dat lijkt mij ruim voldoende.

Succes verder.
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 01 mei 2016, 23:03:39
Met de DSM 6.0 upgrade lijkt de mogelijkheid voor eigen playlists ontregeld!
Bij het uitvoeren van de .sh file komt een fout dat /usr/syno/pgsql/bin/psql  niet gevonden werd.
Inderdaad ik zie de map /pgsql niet meer, heft deze een andere locatie gekregen of wat is het probleem?

Ik merk ook de aangemaakte playlists verdwenen zijn in Audiostation, alsook de bestanden om ze aan te maken in /playlists.
Niet alle bestanden in die map zijn weg maar wel de recentste, raar.
Edit: als ik /usr/syno/pgsql/bin/psql  aanpas naar /usr/bin/psql lukt het manueel aanmaken terug zonder fouten.
Nog eventjes bekijken als het automatiseren van de .m3u update ook zal lukken.
Edit2: Root login lukt niet meer direct, maar zo lukt het wel:
-Putty: inloggen met admin user en zijn paswoord.
Als je dan root-rechten nodig hebt voor een commando, laat dat dan vooraf gaan door 'sudo'. Of switch, na inloggen, alsnog naar het root account via het commando "sudo -i", gevolgd door het wachtwoord van de administrator
Putty en Root (http://www.synology-forum.nl/algemeen/nas-benaderen-met-ssh-winscp-putty/)

Verder had ik bij de SQL selectie ook graag  de mogelijkheid gehad om selecties uit 1 map in verhouding meer te laten aanwezig zijn dan andere, bijv. in deze:
((path LIKE '%Dance%')OR(path LIKE '%Rock%')OR(path LIKE '%Country%'))
                order by RANDOM() limit 100;
Hoe laat ik bestanden uit map Rock meer aanwezig zijn dan die uit Country? bijvoorbeeld 25xDance, 50x Rock, 25x Country, samen 100 tracks.
Of een stapje verder: Telkens 1 track random selecteren uit een vooraf bepaalde mapvolgorde: bijvoorbeeld:
1 uit Rock, 1 uit Rock, 1 uit Dance, 1 uit country, 1 uit Dance, repeat tot 100....
Een SQL kenner die daar weg mee weet?

Titel: Re: nrs excluden in random 100 audiostation
Bericht door: fruit op 01 mei 2018, 11:56:33
Kan iemand vertellen of dit nog werkt op de huidige DSM? Ik zit op DSM 6.1.4-15217 Update 5 maar kan daar geen /usr/syno/pgsql/bin/psql vinden..
Staat dit nu op een andere locatie of is er iets anders voor in de plaats gekomen? (mariaDB?)
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: kael op 06 augustus 2018, 11:31:53
ik heb DSM 6.2, ik heb dit toen ingesteld en dit werkt nog steeds naar behoren. Log je in met een Admin account?
Titel: Re: nrs excluden in random 100 audiostation
Bericht door: Ben(V) op 06 augustus 2018, 13:17:38
Lijkt me niet dat dit nog werkt want pgsql bestaat niet meer in DSM 6.2

Wel is er de standaard psql binary.
Deze vind je hier:
/var/packages/SynologyApplicationService/target/postgres/bin/psql