k47.cz
mastodon twitter RSS
bandcamp explorer
««« »»»

Bandcamp explorer - 6 milionů

— k47

Když jsem minule zmínil, že bandcamp explorer dosáhl mety pěti megaalb, lhal jsem. Článek odráží stav k 27.2., kdy jsem ho původně napsal. Ale když jsem ho v červnu s obrovským zpožděním hodil online, BC explorer měl v indexu už o jeden milion alb víc.

Překvapivě za to mohla chyba na straně bandcampu.

Asi takhle: Abych zjistil, co je na bandcampu nového, používám celou plejádu metod a heuristik, hlavní z nichž je url https://bandcamp.com/api/hub/1/dig_deeper. Jde o interní bandcampovské API používané kdesi na jejich webu. Není nikde dokumentované, nikdo neříká, že ho můžu používat a nikdo neručí, že nebudu eventuálně praštěn přes prsty, když to přeženu. Nicméně jsem na něj poslal stovky tisíc požadavků a kromě občasné HTTP 429 signalizující abych zpomalil, si nikdo nestěžuje. Dovolí 2 požadavky za vteřinu každou vteřinu a to stačí.

A právě tenhle dig_deeper API přestal fungovat. Ne úplně. Jen nevracel očekávaných tisíc plus novinek denně, ale jenom něco jako 50.

Kdybych za tuhle metodu nenašel náhradu a místo ní používal méně efektivní způsoby, doba mezi publikací alba na bandcampu a jeho nalezením by byla dlouhá. V ideálním případě, kdybych dokolečka kontroloval všechny skupiny a nedělal nic jiného, trvalo by to přinejmenším 5 dnů. Kdybych síly napínal cíleným způsobem a preferoval skupiny, které nejspíš něco vydají, pořád by to trvalo několik dnů a musel bych bandcamp zasypávat požadavky každou vteřinu každého dne, což není ale zdalekoa ideální. Ve finále by to všechny novinky našlo, ale BC explorer by neplnil roli přehledu a RSS kanálu toho nejčerstvější & nejnovějšího.

Tak jsem se začal poohlížet po náhradě za věrného dříče.

Starý dobrý dig_deeper API má několik parametrů, jeden z nich – kterému jsem do té doby nevěnoval pozornost – specifikuje, co přesně se má vrátit. Možnosti jsou následující: nejnovější, nejlepší a náhodné. Když nejnovější přestaly fungovat, zkusil jsem dolovat náhodná alba a vracelo to překvapivě dost nahrávek, které jsem ještě neměl v indexu. To znamenalo jediné: index je nekompletní a chybí toho hodně.

Začala operace, kdy jsem celé dny dokola tloukl na API endpoint, aby vysypal náhodná alba z velkých tagů a alba se sypaly. Milion alb. Tenhle proces – najít náhodná alba & zkontrolovat katalog nově nalezených umělců pro kompletní seznam nahrávek – běžel nepřetržitě několik dnů. Přes den rozhazoval sítě po novinkách, v noci stahoval diskografie. Ve finále jsme se dostali na šest milion alb v indexu. Což není úplně špatné.

Za pár dnů pak bandcamp API dig_deeper opravil. Takže teď mám větší katalog a zároveň se do něj dostanou nová alba téměř okamžitě.

píše k47, ascii@k47.cz