Kezdőlap › Fórumok › Vegyes gondok › playlist szerkesztése
- This topic has 34 hozzászólás, 3 résztvevő, and was last updated 14 years, 11 months telt el by
pointux.
-
SzerzőBejegyzés
-
2010-06-24-15:48 #2199951
Na, csináltam egy olyat, ami html-be lementi az éppen játszottak időpontját és címét (out-playlist.html), ilyen formában
Most játszott:
2010.06.24. 17:32:49: Valami 1
2010.06.24. 17:32:59: Valami 2
Meg lementi a tervet is (in-playlist.html), ilyen formában
Terv:
2010.06.24. 17:32:49 + 0 s: Valami 1
2010.06.24. 17:32:49 + 10 s: Valami 2
Ehhez, persze az kell, hogy a playlistben benne legyen a zene hossza (és ne üres legyen ez a „mező”), mert különben honnan tudná.
(Majd valaki összeadja a dátumot a hosszal (sec).)És fel lehet rakni a weboldalra is.
#!/bin/bash
PLAYER="mplayer -ao alsa -quiet "
IN_PLAYLIST="./in-playlist.m3u" # ezt a listat fogja lejatszani
OUT_PLAYLIST="./out-playlist.m3u" # ebbe menti el, amit jatszott
IN_PLAYLIST_HTML="./in-playlist.html" # ebbe menti el, amit jatszott
TMP_OUT_PLAYLIST_HTML="./tmp-out-playlist.html" # ebbe menti el, amit jatszott
OUT_PLAYLIST_HTML="./out-playlist.html" # ebbe menti el, amit jatszott
# (" - Last played: datummal" a neve utan, nem fogja halmozni a last played-eket)
Q_ON_SIGTSTP="true" # kilepes STOP szignal eseten (CTRL+Z), megvaltoztatasa nem ajanlott!
# a szam jatszasanak megszakitasa kilepessel pl. mplayer eseten a 'q' betuvel tortenik# terv lementese html-be
plan_to_html(){
touch ${IN_PLAYLIST_HTML}
echo -e "Terv:
" > ${IN_PLAYLIST_HTML}
LINES="1"
secs="0"
secs2="0"
while [ $((LINES)) -le $(($(cat ${IN_PLAYLIST} | wc -l))) ];do
line=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)
if [ "$(echo ${line} | grep -c "#EXTINF")" != "0" ];then
((LINES++))
extinf=`echo "${line}" | sed 's/,/#elsovesszo/;s/(.*)#elsovesszo//;s/~ Last played: (.*)//'`
((secs2+=`echo "${line}" | sed 's/#EXTINF://;s/,(.*)//'`))
# ezt majd osszeadja valaki
echo -e " $(date +%Y.%m.%d. %H:%M:%S) + ${secs} s: ${extinf}
" >> ${IN_PLAYLIST_HTML}
secs=${secs2}
fi
((LINES++))
done
echo -e "" >> ${IN_PLAYLIST_HTML}
}# most jatszott mentese html-be
now_playing_header_to_html(){
touch ${OUT_PLAYLIST_HTML}
echo -e "Most j�tszott:
" > ${OUT_PLAYLIST_HTML}
}# most jatszott mentese html-be
now_playing_to_html(){
extinf=`echo "${line}" | sed 's/,/#elsovesszo/;s/(.*)#elsovesszo//;s/~ Last played: (.*)//'`
head -n -2 ${OUT_PLAYLIST_HTML} > ${TMP_OUT_PLAYLIST_HTML}
echo -e "
$(date +%Y.%m.%d. %H:%M:%S): ${extinf}" >> ${TMP_OUT_PLAYLIST_HTML}
mv ${TMP_OUT_PLAYLIST_HTML} ${OUT_PLAYLIST_HTML}
}# ha nincs kimeno file, akkor letrehozza
if [ ! -f ${OUT_PLAYLIST} ];then
touch ${OUT_PLAYLIST}
fi# ha az elso sor nem #EXTM3U, akkor nem m3u file, ugy ujat hoz letre
head=$(head -n 1 ${IN_PLAYLIST} | tail -n 1)
if [ "$(echo ${head} | grep -c "#EXTM3U")" == "0" ];then
echo "#EXTM3U" > ${OUT_PLAYLIST}
fiplan_to_html
now_playing_header_to_htmlextinf="."
path="."
LINES="1"
exitcode="0"# soronkent nezi a file-t
while [ $((LINES)) -le $(($(cat ${IN_PLAYLIST} | wc -l))) ];doline=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)
# lementi a kimeno listaba es lejatsza
if [ "$(echo ${line} | grep -c "#EXTINF")" != "0" ];then
extinf=`echo "${line}" | sed 's/~ Last played: (.*)//'`
((LINES++))
path=$(head -n $LINES ${IN_PLAYLIST} | tail -n 1)
echo -e "${extinf} ~ Last played: $(date +%Y.%m.%d. %H:%M:%S)n${path}" >> ${OUT_PLAYLIST}now_playing_to_html
#${PLAYER} "${path}"
#exitcode=$?
fiif [ "${Q_ON_SIGTSTP}" == "true" ];then
if [ $exitcode -eq 1 ];then
exit
fi
fi((LINES++))
done
2010-06-24-21:04 #2199952A jóisten áldja meg a segítőkész lelkedet :-)))
Kipróbálom, megnézem mit értek meg belőle és jelentkezek amint jutok valamire. Őszinte hálával köszönöm Neked, hogy foglalkozol a problémámmal.2010-06-25-12:49 #2199953(Az out-playlist.html természetesen törlődik induláskor, mert tájékoztató, nem úgy mint az out-playlist.m3u, amiből készítheted az ismétlést és mentheted újra az in-playlist.m3u-ba.)
2010-06-28-07:14 #2199954Ha jól látom alsát adtál meg a programodban, Én viszont Pulseaudio-t használok. Gond lesz ez ha elindítom a programodat?
Nem merek addig semmit sem csinálni míg nem tudom. Ez a fájl: in-playlist.m3u hol legyen elmentve? Ha jól olvastam ennek meg kell lennie.2010-06-28-10:48 #2199955Tony Magic wrote:Ha jól látom alsát adtál meg a programodban, Én viszont Pulseaudio-t használok. Gond lesz ez ha elindítom a programodat?
Azért adtam meg, mert oss-t akart nekem elindítani és már futott nálam valami alsán. (Egyébként nyugodtan módosíthatod.)
Egyébként nem lesz gond, maximum nem szólal meg. (A tesztelésnél egyébként kommentelheted, vagy echo-zhatod az mplayer sort a kódrészben.)Tony Magic wrote:Ez a fájl: in-playlist.m3u hol legyen elmentve? Ha jól olvastam ennek meg kell lennie.
Ahol akarod. 🙂
Csak a scriptben is ott legyen megadva az útvonal. a „.” az aktuális könyvtárat jelenti… de lehet bárhol. (De m3u formátum legyen, mert a script csak ezt dolgozza fel. Persze másra is lehet feldolgozó scriptet írni, de persze minek.)2010-07-09-16:13 #2199956Most mertem csak elindítani amit készítettél. Azonos mappában van a scripted aminek a neve playlist.sh és az in-playlist.m3u . A következő hibaüzenetet kaptam konzolban:
sh playlist.sh
„)syntax error: invalid arithmetic operator (error token is „�jjel �rkezem
„)syntax error: invalid arithmetic operator (error token is „�lni n�lk�led
„)syntax error: invalid arithmetic operator (error token is „�voll�t – Sz�csi P�l
„)syntax error: invalid arithmetic operator (error token is „�ter – F�ltelek
És ez ment végig az összes listában lévő mp3-al.A html fájl viszont szépen létrejött, az elejét bemásolom:
Terv:
2010.07.09. 12:05:43 + 0 s: 2 EIVISSA – Meaning Of Life (Radio Version
2010.07.09. 12:05:43 + 209 s: Éjjel Érkezem
2010.07.09. 12:05:43 + 209 s: VA – Track 4
A +209 s nem pontos, nem tudom az idjc program honnan szedi az mp3 lejátszási idejét de ő pontosan látja az mp3 hosszát, de a VA – Track 4-nél a scripted által kiírt 209s az első mp3-ra igaz csak, utána majdnem a dupláját kellett volna kiírja.Úgy tűnik ezzel már el lehet indulnom valamerre, csak az a kérdésem merre? 🙂
Direkt rejtett fájlként hozza létre a scripted a html-eket? Mert nekem rejtettek lettek 🙂2010-07-09-23:44 #2199957")syntax error: invalid arithmetic operator (error token is "�jjel �rkezem
No, ezt fogalmam nincs, hogy mi írja ki és miből.
Nálam, mind utf-8, mind iso-2 karakterkészlettel hiba nélkül fut a script.
Talán ha feltöltenéd a lejátszólistádat, akkor megnézném, hogy abban mi van.A +209 s nem pontos, nem tudom az idjc program honnan szedi az mp3 lejátszási idejét de ő pontosan látja az mp3 hosszát
Amikor szerkeszted a listát, akkor „ráérsz” arra, hogy a szerkesztő lekérdezze a lejátszandó file-ból hosszát (elvileg az sem biztos módszer) és lementi a listába.
Persze ezt meg lehet csinálni lejátszás előtt is minimális késedelem árán ugye. (Végül is nem jelentős – hacsak nem 1000 file van, mert azon eltart egy darabig, amíg végigfutsz -, csak bonyolítja a dolgot, főként, hogy scripttel dolgozunk és parancssori kimenetekkel és nem könnyen kezelhető függvényekkel. Meg ugye lassítja is.)
Ez is kiderülne a lejátszási listából..Direkt rejtett fájlként hozza létre a scripted a html-eket?
Miért lennének rejtettek?
Nem cserélted meg véletlenül a./
-t/.
-ra, mert (jelen esetben) az előbbi azt jelenti aktuális könyvtár, a második rejtett file a gyökérkönyvtárban.2010-07-10-08:11 #2199958Sajnos csak később tudom megnézni és elküldeni amit kértél, annyira emlékszek, hogy egy az egyben másoltam be a scriptedet és úgy indítottam el, hozzá sem mertem nyúlni, vagyis nem merek benne semmit sem átírni 🙂
2010-07-10-09:52 #2199959A számozott playlistek kiterjesztése m3u és a számozatlanoké html.
2010-07-10-16:06 #2199960Nálam hibaüzenet nélkül fut… még windowsos sorvégekkel is. A számozás is jónak néz ki.
Csak annyi, mivel a windózos sorvége áll egy mekes + egy linugzos és csak a linugzost tartja annak, ezért a mekest otthagyja. Bár ez szerintem nem zavaró, de át lehet alakítani egy univerzálissá előtte.Terv:
2010.07.10. 17:34:03 + 0 s: 2 EIVISSA - Meaning Of Life (Radio Version
2010.07.10. 17:34:03 + 209 s: �jjel �rkezem
2010.07.10. 17:34:03 + 582 s: VA - Track 4
2010.07.10. 17:34:03 + 851 s: _szaxofon duett_miss saigon_szinetar_bereczki
2010.07.10. 17:34:03 + 1129 s: VA - Mariah Carey-Butterfly
2010.07.10. 17:34:03 + 1403 s: Jnani - Hold & Raise Your Energy
2010.07.10. 17:34:03 + 1737 s: Leningrad Cowboys - Katjusha
Esetleg feltöltöm csatolva is, hátha a kimásolás során történt volna gond.
(Ha mégsem működik, akkor valami kód sorának a számát nem ír a hibáknál?) -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz