bandcamp-fetch duration

node v18.11.0
version: 1.0.0
endpointsharetweet
Track fetch without raw data
const bandcampFetch = require("bandcamp-fetch"); const trackSearch = new bandcampFetch.BandcampFetch().track; console.log(await trackSearch.getInfo({ trackUrl: 'https://haircutsformen.bandcamp.com/track/exploring-tubes' }));
Track search with raw data. Notice the raw.basic.duration property
console.log(await trackSearch.getInfo({ trackUrl: 'https://haircutsformen.bandcamp.com/track/exploring-tubes', includeRawData: true }));
Pasing and converting the duration string to seconds
var convertBandcampDuration = function(timeString) { if (!timeString.startsWith('P') || !timeString.endsWith('S')) { throw new Error('Invalid time string format'); return -1; } // Remove the leading 'P' and trailing 'S' to isolate the time components const timeComponents = timeString.slice(1, -1); // Split the time components by the separators ('H', 'M', 'S') const componentsArray = timeComponents.split(/[HMS]/); // Ensure we have exactly three components (hours, minutes, seconds) if (componentsArray.length !== 3) { throw new Error('Invalid time string format'); return -1; } // Parse hours, minutes, and seconds from the components const hours = parseInt(componentsArray[0], 10) || 0; const minutes = parseInt(componentsArray[1], 10) || 0; const seconds = parseInt(componentsArray[2], 10) || 0; // Calculate total seconds const totalSeconds = hours * 3600 + minutes * 60 + seconds; return totalSeconds; } const bandcampTrackInfo = await trackSearch.getInfo({ trackUrl: 'https://haircutsformen.bandcamp.com/track/exploring-tubes', includeRawData: true }); const durationString = bandcampTrackInfo.raw.basic.duration; console.log("Duration string: " + durationString); console.log("Duration in Seconds: " + convertBandcampDuration(durationString));
Loading…

no comments

    sign in to comment