Projekt-áttekintés · BigX
Zenetár-rendezés és a Mixenet bővítmény
Két külön dolog készült ugyanabból a nyersanyagból: egy elemző eszközkészlet a saját gépre, és egy WordPress bővítmény a weboldalhoz. Ez a leírás mindkettőt végigveszi.
01A két ág
Közös bennük a zenetár a lemezen. Minden más külön.
Zenetár-elemzés
Node.js parancssori eszközök. Katalogizál, duplikátumot keres, BPM-et számol, műfajt határoz meg és ID3 taget ír. A célja a helymegtakarítás és a rekordbox — nem a weboldal.
- ✓ Katalógus és duplikátum-elemzés
- ✓ Akusztikus ujjlenyomat
- ✓ BPM minden trackre
- ✓ Műfaj az ID3 tagben
- ✓ Takarítás lefutott
BigX Mixenet bővítmény
WordPress bővítmény: lejátszási listák, megszakítás nélküli lejátszó, kedvelés, megosztás, hallgatottsági statisztika, rádió-integráció. Nem tud a lemezen lévő tárról.
- ✓ Kód kész, szintaxis ellenőrizve
- ✓ Dokumentáció és adatvédelem
- ✓ Git repó, GitHub-frissítés
- ○ Éles WordPressen még nem futott
Egyetlen dolog: a CSV-fájlok. Az elemzés kiírja, mi van a lemezen, a bővítmény pedig be tudja olvasni. Nincs adatbázis-kapcsolat, nincs szinkron, nincs automatizmus. Ha a CSV-t nem viszed át, a két rész egymástól függetlenül működik tovább.
02Az elemzés eredménye
A takarítás lefutott. A fájlok a Lomtárba kerültek, nem véglegesen törlődtek.
| Állapot | Fájl | Méret |
|---|---|---|
| Elemzés előtt | 8610 | 146,35 GB |
| Törölt felesleges másolat | 1331 | 24,29 GB |
| Takarítás után | 7279 | 122,06 GB |
Hogyan találta meg a duplikátumokat
Öt szabály, csökkenő megbízhatósággal. A leglényegesebb az akusztikus ujjlenyomat: az magát a hangot hasonlítja, ezért olyat is megtalál, amit kézzel átneveztek.
| Szabály | Mire épül | Csoport |
|---|---|---|
| Bit-azonos | Méret → részleges hash → SHA-256 | 206 |
| Ujjlenyomat | A dekódolt hang spektruma | 97 |
| Előadó + cím + hossz | ID3 tag, ±2 mp | 638 |
| Cím + hossz | Fájlnév, ±2 mp | 232 |
| Rövid cím | Óvatos, méret-ellenőrzéssel | 6 |
A letöltő program néhány fájlnál felcserélve írta a mezőket: egy előadó öt különböző száma azonos „címet” kapott. A tag-alapú szabály mind az ötöt egybemosta volna. Ezért a gyengébb szabályok a fájlnévre épülnek — az a videó eredeti címéből jön, és megbízható.
03Műfaj a rekordboxhoz
A rekordbox az ID3 műfaj-mezőt olvassa. A tárban ez gyakorlatilag üres volt: 120 megvizsgált fájlból egyben szerepelt műfaj.
Négy forrásból dolgozik, és minden tracknél megjegyzi, honnan származik a műfaja — így utólag ellenőrizhető:
| Forrás | Mit jelent | Megbízhatóság |
|---|---|---|
| mappanev | A saját rendezés a lemezen | erős |
| kiado | Lemezkiadó a fájlnévben (Drumcode, Tronic, Suara) | erős |
| lista tempo | A lista medián BPM-je | közepes |
| itunes | Lekérdezés játékidő-ellenőrzéssel | közepes |
A BPM-számítás hangalapú: spektrális fluxussal keresi a dobütéseket, majd autokorrelációval a tempót. Az eredmény illeszkedik a mappanevekhez — a Hardtechno listára 152 BPM-et adott, a prog-ra 129-et.
A tisztán hangalapú műfaj-felismerés az elektronikus alműfajokra nem megbízható. A techno, tech house, progressive és melodic közti különbség nem a spektrumban van, hanem a szerkezetben és a kontextusban. Ezért a mappanevek és a lemezkiadók a valódi forrás; a tempó csak támpont.
04Hogyan működik a bővítmény
Négy réteg. A lényeg a középső: a lejátszó egységes felületet ad három különböző forráshoz.
Amit a lejátszó megold
Egy MP3-at a böngésző natív <audio> elemével kell lejátszani, egy YouTube-videót viszont az IFrame API-val. A két motor teljesen máshogy működik. A bővítmény egy közös felületet tesz föléjük — ugyanaz a play, seek, hangerő —, így a hallgató nem veszi észre, amikor a sor egyik fajtáról a másikra vált.
Mi számít lejátszásnak
Nem minden kattintás. Egy lejátszás akkor kerül rögzítésre, ha a hallgató legalább 20 másodpercet meghallgatott, és ugyanaz a hallgató 15 percen belül nem hallgatta már ugyanazt. A rendszer a ténylegesen lehallgatott időt méri, nem a lejátszó pozícióját — így a tekergetés sem hamisít.
05Rövidkódok
Ezeket bármelyik oldal vagy bejegyzés tartalmába be lehet írni.
| Rövidkód | Mit ad | Paraméterek |
|---|---|---|
| [bigx_playlists] | Listák rácsban | per_page, mine |
| [bigx_playlist] | Egy lista a számaival | id |
| [bigx_top] | Toplista | metric, period, limit, title |
A BigX Radio lejátszó már szerepel ezen az oldalon. |
„Most szól” panel | — |
| [bigx_editor] | Listakezelő | — |
[bigx_top metric="plays" period="week" limit="20" title="A hét slágerei"]
[bigx_top metric="likes" period="all" limit="10" title="Örök kedvencek"]
[bigx_top metric="trending" limit="15" title="Most kapják fel"]
A trending nem összesít, hanem változást mér: az elmúlt 7 nap lejátszásait hasonlítja az azt megelőző 7 naphoz. Így nem a régi slágerek ülnek örökre az élen.
06Telepítés
A sorrend számít. A leggyakoribb hiba, hogy valaki a 2. lépés után rögtön a 6-ra ugrik.
-
Mentés
Fájlok és adatbázis. Új oldalnál is — öt perc, és megszünteti a kockázatot.
-
Bővítmény feltöltése és aktiválása
A zip-et a Bővítmények → Új hozzáadása → Bővítmény feltöltése menüponton át.
Ellenőrzés: a
/wp-json/bigx/v1/radio/nowplayingcímnek JSON-t kell adnia. -
Médiafájlok feltöltése
Média → Új hozzáadása. Ide kerülnek az MP3-ak, amiket le akarsz játszani.
Enélkül a következő lépésnek nincs mire hivatkoznia.
-
Zeneszámok létrehozása
Egyesével a Zeneszámok menüben, vagy tömegesen a Katalógus-import fülön CSV-ből.
Ez a lépés köti össze a feltöltött fájlt a lejátszóval.
-
Lejátszási lista
A Lejátszási listák menüben, vagy egy
[bigx_editor]rövidkódos oldalon fogd-és-vidd módszerrel. -
Oldal a rövidkóddal
Új oldal, a tartalomba:
[bigx_playlists]
07Ha nem megy
Fentről lefelé, a leggyakoribb okkal kezdve.
Feltettem, aktiváltam, de nem látszik semmi a leggyakoribb
Valószínűleg működik, csak üres. A bővítmény egy keret — nem hoz magával zenét. Friss telepítésnél nincs egyetlen zeneszám és lista sem, így a [bigx_playlists] helyén jogosan nem jelenik meg semmi.
Ellenőrizd, hogy tényleg fut-e:
https://mixenet.bigxhost.hu/wp-json/bigx/v1/radio/nowplaying
Ha erre JSON-t kapsz, a bővítmény rendben van — folytasd a telepítés 3–5. lépésével.
Fehér képernyő az egész oldal helyett
Nevezd át FTP-n vagy a tárhely fájlkezelőjében a wp-content/plugins/bigx-mixenet mappát bármi másra. A WordPress a következő betöltésnél kikapcsolja, és minden visszaáll — nem kell mentést visszatölteni.
Utána nézd meg a PHP verziót: a bővítmény 7.4 vagy újabb verziót igényel.
A rövidkód szövegként jelenik meg
Két oka lehet:
- A bővítmény nincs aktiválva
- Kódblokkba írtad be a szerkesztőben — normál bekezdésbe kell
A rádió panel „offline”-t mutat
A beállítás alapból a radio.bigxhost.hu címre mutat. Ha a rádió épp nem ad, a panel nem ürül ki: a legutóbbi ismert állapotot mutatja „offline” jelöléssel. Az állomás azonosítója a BigX Mixenet → Beállítások oldalon módosítható.
Bekapcsoltam a megszakítás nélküli lejátszást, és szétesett az oldal
A Tartalmi konténer beállítás alapértéke #main-content, ami a Divi témára igaz — ezen az oldalon tehát jó. Más témánál más az azonosító, és rossz értékkel a navigáció nem találja, mit kell cserélnie.
Ha mégis gond van: kapcsold ki. A lejátszó enélkül is működik, csak oldalváltáskor újraindul.
A rekordboxban nem látszik az új műfaj
A rekordbox importáláskor egyszer olvassa ki a fájl tagjeit, és onnantól a saját adatbázisából dolgozik. Kell egy kézi frissítés:
Collection → Ctrl+A → jobb klikk → Reload Tag
A Reload Tag a beatgridet, hot cue-kat és a BPM-et nem bántja, de a fájlból jövő mezőket (cím, előadó, műfaj) felülírja. Ha valahol kézzel javítottad a címet a rekordboxban, az visszaáll — ezért érdemes először egy kisebb mappán kipróbálni.
08Adatvédelem
A bővítmény felhasználói adatot kezel, ezért valódi GDPR-kezelés került bele, nem csak egy tájékoztató szöveg.
| Kérdés | Válasz |
|---|---|
| Tárol IP-címet? | Nem. Csak visszafejthetetlen kivonatot. |
| Tárol sütit? | A bővítmény nem. A YouTube igen, ha videót játszol le. |
| Meddig őrzi? | Alapból 400 nap, az adminban módosítható. |
| Átadja harmadik félnek? | Nem. |
| Kivihető, törölhető? | Igen, a WordPress beépített eszközeivel. |
Bejelentkezés nélküli látogatónál az IP-cím és a böngésző-azonosító helyett azok egyirányú, oldalspecifikus kivonata tárolódik. Ebből az eredeti értékek nem állíthatók vissza, és az érték csak ezen az oldalon értelmezhető. Egyetlen célja, hogy ugyanaz a lejátszás ne számítson többször.
A törlési kérelemnél a kedvelések törlődnek, a lejátszások pedig névtelenítve lesznek — így a toplisták nem torzulnak el visszamenőleg, de az adat többé nem köthető senkihez.
09Biztonsági hálók
Minden veszélyes művelet mögött van visszaút.
| Művelet | Védelem |
|---|---|
| Zenetár takarítása | Alapból csak listáz; élesben a Lomtárba tesz |
| Műfaj írása a fájlokba | Mentés készül a régi értékekről, egy paranccsal visszaállítható |
| Bővítmény-hiba az oldalon | A mappa átnevezése kikapcsolja |
| Rossz import | Próbamenet alapból; ismétlésbiztos kulcs |
| Lista törlése | Kukába kerül, nem véglegesen törlődik |
| Bővítmény eltávolítása | A zeneszámok és listák tartalomként megmaradnak |
A műfaj-írás csak az ID3 tag-blokkot cseréli, a zenét nem kódolja újra. Mérésekkel ellenőrizve: a dekódolt hang hash-e bitre azonos marad a művelet után, és a cím, előadó, hangnem is megmarad. A fájl kb. 1 KB-tal lesz kisebb, mert a tag átrendeződik.