Add track downloading functionality and improve error handling

This commit is contained in:
wont-stream 2025-04-17 01:07:38 -04:00
parent 43667b79f0
commit 80d73027a6
2 changed files with 27 additions and 3 deletions

View file

@ -52,3 +52,29 @@ Bun.serve({
}, },
development: true development: true
}) })
const tracks = await utils.fetchTracks();
for await (const track of tracks.items) {
const { id } = track.item
const trackId = parseInt(id)
if (await Bun.file(`downloaded/${trackId}.flac`).exists()) {
console.log(`Already downloaded ${trackId}.flac`)
continue
}
const { manifestMimeType, manifest } = await utils.fetchTrack(parseInt(id))
try {
const audio = await utils.tagFlac(trackId, await utils.downloadFlac(manifestMimeType, manifest))
await Bun.write(`downloaded/${trackId}.flac`, audio)
console.log(`Downloaded ${trackId}.flac`)
} catch (e) {
console.error(`Failed to download ${trackId}.flac`)
}
}
console.log("Done")

View file

@ -113,8 +113,6 @@ export default class {
], ],
} }
console.log(track)
return FlacStreamTagger.fromBuffer(Buffer.from(audioBuffer), { return FlacStreamTagger.fromBuffer(Buffer.from(audioBuffer), {
tagMap: { tagMap: {
title: track.title, title: track.title,