A music player that connects to your cloud/distributed storage.

chore: show music-metadata errors as warnings in browser console

+12 -2
+12 -2
src/Javascript/processing.ts
··· 5 5 // Audio processing, getting metadata, etc. 6 6 7 7 import type { IAudioMetadata } from "music-metadata"; 8 - import type { MediaInfo, MediaInfoType } from "mediainfo.js"; 8 + import type { MediaInfoType } from "mediainfo.js"; 9 9 10 10 import * as Uint8arrays from "uint8arrays"; 11 11 import { transformUrl } from "./urls"; ··· 74 74 tokenizer.rangeRequestClient.resolvedUrl = undefined; 75 75 } 76 76 77 - const mmResult = await musicMetadata.parseFromTokenizer(tokenizer, { skipCovers: !covers }).catch(() => null); 77 + const mmResult = await musicMetadata.parseFromTokenizer( 78 + tokenizer, 79 + { skipCovers: !covers } 80 + ).catch(err => { 81 + console.warn(err) 82 + return null 83 + }); 84 + 78 85 const mmTags = mmResult && pickTagsFromMusicMetadata(filename, mmResult); 79 86 if (mmTags) return mmTags; 80 87 81 88 const miResult = await (await mediaInfoClient(covers)) 82 89 .analyzeData(getSize(headUrl), readChunk(getUrl)) 83 90 .catch((_) => null); 91 + 84 92 const miTags = miResult && pickTagsFromMediaInfo(filename, miResult); 85 93 if (miTags) return miTags; 86 94 ··· 160 168 : null; 161 169 162 170 if (!artist && !title) return null; 171 + 172 + // TODO: Encoding issues with mediainfo.js 163 173 if (artist?.includes("�") || album?.includes("�") || title?.includes("�")) return null 164 174 165 175 if (artist && artist.includes(" / ")) {