Skip to content

Commit

Permalink
change client key and secret
Browse files Browse the repository at this point in the history
  • Loading branch information
thoriqazzikraa committed Jun 9, 2024
1 parent c3f50fe commit b704b8f
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 146 deletions.
4 changes: 2 additions & 2 deletions dist/cjs/src/spotify.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ const fetch = require("node-fetch")
const spot = require("@nechlophomeriaa/spotify-finder")
const spotify = new spot({
consumer: {
key: "9e1c5e192a8141c59b7e91f2848e6a9c",
secret: "78e2ece45fa446c98517d2cbb3271486"
key: "270eef8d162d4444a63e3a67227396ac",
secret: "4d198cd0de064e158e5e9d9028325fd3"
}
})
const options = {
Expand Down
224 changes: 81 additions & 143 deletions dist/esm/src/spotify.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import fetch from "node-fetch"
import spot from "@nechlophomeriaa/spotify-finder"
const spotify = new spot({
consumer: {
key: "9e1c5e192a8141c59b7e91f2848e6a9c",
secret: "78e2ece45fa446c98517d2cbb3271486"
key: "270eef8d162d4444a63e3a67227396ac",
secret: "4d198cd0de064e158e5e9d9028325fd3"
}
})
const options = {
Expand Down Expand Up @@ -42,65 +42,40 @@ async function downloads2(url) {
}

async function downloads(url) {
if (!isUrl(url)) throw new Error("Please input Url");
if (!isUrl(url)) throw new Error("Please input Url")
if (url.includes("spotify.link")) {
const originalUrl = await getOriginalUrl(url);
const track = await axios.get(
`https://api.spotifydown.com/metadata/track/${
originalUrl.split("track/")[1].split("?")[0]
}`,
options
);
const { data } = await axios.get(
`https://api.spotifydown.com/download/${track.data.id}`,
options
);
const audioUrl = await fetch(data.link).then((res) => res.buffer());
const imgUrl = await fetch(data.metadata.cover).then((res) => res.buffer());
const writeTags = tags2(
data.metadata.title,
data.metadata.artists,
data.metadata.releaseDate,
data.metadata.album,
imgUrl
);
const audioBuffer = await nodeID3.write(writeTags, audioUrl);
const originalUrl = await getOriginalUrl(url)
const track = await axios.get(`https://api.spotifydown.com/metadata/track/${originalUrl.split("track/")[1].split("?")[0]}`, options)
const { data } = await axios.get(`https://api.spotifydown.com/download/${track.data.id}`, options)
const audioUrl = await fetch(data.link).then((res) => res.buffer())
const imgUrl = await fetch(data.metadata.cover).then((res) => res.buffer())
const writeTags = tags2(data.metadata.title, data.metadata.artists, data.metadata.releaseDate, data.metadata.album, imgUrl)
const audioBuffer = await nodeID3.write(writeTags, audioUrl)
const result = {
success: data.success,
metadata: data.metadata,
audioBuffer: audioBuffer,
};
return result;
audioBuffer: audioBuffer
}
return result
} else if (url.includes("open.spotify.com")) {
const { data } = await axios.get(
`https://api.spotifydown.com/download/${
url.split("track/")[1].split("?")[0]
}`,
options
);
const audioUrl = await fetch(data.link).then((res) => res.buffer());
const imgUrl = await fetch(data.metadata.cover).then((res) => res.buffer());
const writeTags = tags2(
data.metadata.title,
data.metadata.artists,
data.metadata.releaseDate,
data.metadata.album,
imgUrl
);
const audioBuffer = await nodeID3.write(writeTags, audioUrl);
const { data } = await axios.get(`https://api.spotifydown.com/download/${url.split("track/")[1].split("?")[0]}`, options)
const audioUrl = await fetch(data.link).then((res) => res.buffer())
const imgUrl = await fetch(data.metadata.cover).then((res) => res.buffer())
const writeTags = tags2(data.metadata.title, data.metadata.artists, data.metadata.releaseDate, data.metadata.album, imgUrl)
const audioBuffer = await nodeID3.write(writeTags, audioUrl)
const result = {
success: data.success,
metadata: data.metadata,
audioBuffer: audioBuffer,
};
return result;
audioBuffer: audioBuffer
}
return result
} else {
const result = {
status: false,
message: "Please input valid spotify url",
};
console.log(result);
return result;
message: "Please input valid spotify url"
}
console.log(result)
return result
}
}

Expand Down Expand Up @@ -171,82 +146,52 @@ async function downloadAlbum2(url) {
}

async function downloadAlbum(url) {
let result = { type: null, metadata: {}, trackList: [] };
if (!isUrl(url)) throw new Error("Input Url");
let result = { type: null, metadata: {}, trackList: [] }
if (!isUrl(url)) throw new Error("Input Url")
try {
if (url.includes("spotify.link")) {
const getOrigin = await getOriginalUrl(url);
if (!getOrigin.includes("album/") && !getOrigin.includes("playlist/"))
throw new Error("Invalid album/playlist url");
const getOrigin = await getOriginalUrl(url)
if (!getOrigin.includes("album/") && !getOrigin.includes("playlist/")) throw new Error("Invalid album/playlist url")
if (getOrigin.includes("album/")) {
var inputData = "album/";
var inputData = "album/"
} else {
var inputData = "playlist/";
var inputData = "playlist/"
}
const metaData = await axios.get(
`https://api.spotifydown.com/metadata/${inputData}${
getOrigin.split(inputData)[1].split("?")[0]
}`,
options
);
result.type = inputData.split("/")[0];
result.metadata = metaData.data;
const { data } = await axios.get(
`https://api.spotifydown.com/trackList/${inputData}${
getOrigin.split(inputData)[1].split("?")[0]
}`,
options
);
console.log(`Downloading audio...`);
console.log(
"Please wait for a moment, this process will take for a couple minutes"
);
const metaData = await axios.get(`https://api.spotifydown.com/metadata/${inputData}${getOrigin.split(inputData)[1].split("?")[0]}`, options)
result.type = inputData.split("/")[0]
result.metadata = metaData.data
const { data } = await axios.get(`https://api.spotifydown.com/trackList/${inputData}${getOrigin.split(inputData)[1].split("?")[0]}`, options)
console.log(`Downloading audio...`)
console.log("Please wait for a moment, this process will take for a couple minutes")
for (let i = 0; i < data.trackList.length; i++) {
const downloading = await downloads(
`https://open.spotify.com/track/${data.trackList[i].id}`
);
result.trackList.push(downloading);
const downloading = await downloads(`https://open.spotify.com/track/${data.trackList[i].id}`)
result.trackList.push(downloading)
}
return result;
return result
} else if (url.includes("open.spotify.com")) {
if (!url.includes("album/") && !url.includes("playlist/"))
throw new Error("Invalid album/playlist url");
if (!url.includes("album/") && !url.includes("playlist/")) throw new Error("Invalid album/playlist url")
if (url.includes("album/")) {
var inputData = "album/";
var inputData = "album/"
} else {
var inputData = "playlist/";
var inputData = "playlist/"
}
const metaData = await axios.get(
`https://api.spotifydown.com/metadata/${inputData}${
url.split(inputData)[1].split("?")[0]
}`,
options
);
result.type = inputData.split("/")[0];
result.metadata = metaData.data;
const { data } = await axios.get(
`https://api.spotifydown.com/trackList/${inputData}${
url.split(inputData)[1].split("?")[0]
}`,
options
);
console.log("Downloading audio...");
console.log(
"Please wait for a moment, this process will take for a couple minutes"
);
const metaData = await axios.get(`https://api.spotifydown.com/metadata/${inputData}${url.split(inputData)[1].split("?")[0]}`, options)
result.type = inputData.split("/")[0]
result.metadata = metaData.data
const { data } = await axios.get(`https://api.spotifydown.com/trackList/${inputData}${url.split(inputData)[1].split("?")[0]}`, options)
console.log("Downloading audio...")
console.log("Please wait for a moment, this process will take for a couple minutes")
for (let i = 0; i < data.trackList.length; i++) {
const downloading = await downloads(
`https://open.spotify.com/track/${data.trackList[i].id}`
);
result.trackList.push(downloading);
const downloading = await downloads(`https://open.spotify.com/track/${data.trackList[i].id}`)
result.trackList.push(downloading)
}
return result;
return result
} else {
throw new Error("Invalid Url!");
throw new Error("Invalid Url!")
}
} catch (err) {
console.log(err);
return String(err);
console.log(err)
return String(err)
}
}

Expand Down Expand Up @@ -330,26 +275,21 @@ async function downloadTrack2(song) {
}

async function downloadTrack(song) {
let result = {};
let result = {}
if (isUrl(song)) {
try {
if (song.includes("spotify.link")) {
const getOrigin = await getOriginalUrl(song);
const getOrigin = await getOriginalUrl(song)
if (!getOrigin.includes("track/")) {
(result.status = false),
(result.message = "Download track not support for Album/Playlist");
console.log(result);
return result;
;(result.status = false), (result.message = "Download track not support for Album/Playlist")
console.log(result)
return result
}
var tracks = await spotify.getTrack(
getOrigin.split("track/")[1].split("?")[0]
);
var tracks = await spotify.getTrack(getOrigin.split("track/")[1].split("?")[0])
} else {
var tracks = await spotify.getTrack(
song.split("track/")[1].split("?")[0]
);
var tracks = await spotify.getTrack(song.split("track/")[1].split("?")[0])
}
const downloadData = await downloads(song);
const downloadData = await downloads(song)
result = {
status: true,
title: tracks.name,
Expand All @@ -363,26 +303,24 @@ async function downloadTrack(song) {
name: tracks.album.name,
type: tracks.album.album_type,
tracks: tracks.album.total_tracks,
releasedDate: tracks.album.release_date,
releasedDate: tracks.album.release_date
},
imageUrl: tracks.album.images[0].url,
audioBuffer: downloadData.audioBuffer,
};
return result;
audioBuffer: downloadData.audioBuffer
}
return result
} catch (err) {
result = {
status: false,
message: "Unknown error occurred!\n\n" + String(err),
};
console.log(err);
return result;
message: "Unknown error occurred!\n\n" + String(err)
}
console.log(err)
return result
}
} else {
try {
const searchTrack = await search(song, 1);
const downloadData = await downloads(
searchTrack.items[0].external_urls.spotify
);
const searchTrack = await search(song, 1)
const downloadData = await downloads(searchTrack.items[0].external_urls.spotify)
result = {
status: true,
title: searchTrack.items[0].name,
Expand All @@ -396,19 +334,19 @@ async function downloadTrack(song) {
name: searchTrack.items[0].album.name,
type: searchTrack.items[0].album.album_type,
tracks: searchTrack.items[0].album.total_tracks,
releasedDate: searchTrack.items[0].album.release_date,
releasedDate: searchTrack.items[0].album.release_date
},
imageUrl: downloadData.metadata.cover,
audioBuffer: downloadData.audioBuffer,
};
return result;
audioBuffer: downloadData.audioBuffer
}
return result
} catch (err) {
result = {
status: false,
message: "Unknown error occurred!\n\n" + String(err),
};
console.log(result);
return result;
message: "Unknown error occurred!\n\n" + String(err)
}
console.log(result)
return result
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
},
"name": "@nechlophomeriaa/spotifydl",
"description": "Simple Scraper Spotify Track/Album/Playlist Downloader with Metadata",
"version": "1.0.25",
"version": "1.0.26",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/src/index.js",
"type": "module",
Expand Down

0 comments on commit b704b8f

Please sign in to comment.