A decentralized music tracking and discovery platform built on AT Protocol 馃幍
rocksky.app
spotify
atproto
lastfm
musicbrainz
scrobbling
listenbrainz
1import consola from "consola";
2import init, { extract_audio_metadata } from "../pkg/raichu";
3
4export class Metadata {
5 // eslint-disable-next-line @typescript-eslint/no-explicit-any
6 private metadata: any;
7
8 async load(url: string) {
9 const response = await fetch(url);
10 const arrayBuffer = await response.arrayBuffer();
11 const uint8Array = new Uint8Array(arrayBuffer);
12
13 await init(); // Initialize WASM
14 this.metadata = extract_audio_metadata(uint8Array);
15 consola.log(">> Metadata Loaded Successfully");
16 }
17
18 get_metadata() {
19 return this.metadata ? JSON.parse(this.metadata) : {};
20 }
21}
22
23export default Metadata;