diff --git a/src/lib/audio/getAudioIDMetadata.ts b/src/lib/audio/getAudioIDMetadata.ts
new file mode 100644
index 0000000..22f11dd
--- /dev/null
+++ b/src/lib/audio/getAudioIDMetadata.ts
@@ -0,0 +1,22 @@
+import * as musicMetadata from 'music-metadata-browser';
+import localforage from 'localforage';
+
+export default function (audioId: string, callback: Function) {
+ localforage.getItem(`${audioId}-metadata`, function (err, metadata) {
+ if (metadata) {
+ callback(metadata);
+ } else {
+ localforage.getItem(`${audioId}-file`, function (err, file) {
+ if (file) {
+ const f = file as File;
+ musicMetadata.parseBlob(f).then((metadata) => {
+ if (metadata) {
+ localforage.setItem(`${audioId}-metadata`, metadata);
+ callback(metadata);
+ } else callback(null);
+ });
+ }
+ });
+ }
+ });
+}
diff --git a/src/lib/components/cover.svelte b/src/lib/components/cover.svelte
index 91b966d..40df60d 100644
--- a/src/lib/components/cover.svelte
+++ b/src/lib/components/cover.svelte
@@ -1,6 +1,5 @@