1.3.5 • Published 2 years ago

d-fi-core v1.3.5

Weekly downloads
160
License
MIT
Repository
github
Last release
2 years ago

d-fi-core Test

d-fi is a streaming music downloader. This core module is designed to be used on future version of d-fi.

Installation

$ yarn add d-fi-core

Usage

Here's a simple example to download tracks.

import axios from 'axios';
import fs from 'fs';
import * as api from 'd-fi-core';

// Init api with arl from cookie
await api.initDeezerApi(arl_cookie);

// Verify user
try {
  const user = await api.getUser();
  // Successfully logged in
  console.log('Logged in as ' + user.BLOG_NAME);
} catch (err) {
  // Invalid arl cookie set
  console.error(err.message);
}

// GET Track Object
const track = await api.getTrackInfo(song_id);

// Parse download URL for 128kbps
const trackData = await api.getTrackDownloadUrl(track, 1);

// Download track
const {data} = await axios.get(trackdata.trackUrl, {responseType: 'arraybuffer'});

// Decrypt track if needed
const outFile = trackData.isEncrypted ? api.decryptDownload(data, track.SNG_ID) : data;

// Add id3 metadata
const trackWithMetadata = await api.addTrackTags(outFile, track, 500);

// Save file to disk
fs.writeFileSync(track.SNG_TITLE + '.mp3', trackWithMetadata);

Read FAQ

Methods

All method returns Object or throws Error. Make sure to catch error on your side.

.initDeezerApi(arl_cookie);

It is recommended that you first init the app with this method using your arl cookie.

ParametersRequiredType
arl_cookieYesstring

.getTrackInfo(track_id);

ParametersRequiredType
track_idYesstring

.getLyrics(track_id);

ParametersRequiredType
track_idYesstring

.getAlbumInfo(album_id);

ParametersRequiredType
album_idYesstring

.getAlbumTracks(album_id);

ParametersRequiredType
album_idYesstring

.getPlaylistInfo(playlist_id);

ParametersRequiredType
playlist_idYesstring

.getPlaylistTracks(playlist_id);

ParametersRequiredType
playlist_idYesstring

.getArtistInfo(artist_id);

ParametersRequiredType
artist_idYesstring

.getDiscography(artist_id, limit);

ParametersRequiredTypeDefaultDescription
artist_idYesstring-artist id
limitNonumber500maximum tracks to fetch

.getProfile(user_id);

ParametersRequiredType
user_idYesstring

.searchAlternative(artist_name, song_name);

ParametersRequiredType
artist_nameYesstring
song_nameYesstring

.searchMusic(query, types, limit);

ParametersRequiredTypeDefaultDescription
queryYesstring-search query
typesNoarray'TRACK'array of search types
limitNonumber15maximum item to fetch per types

.getTrackDownloadUrl(track, quality);

ParametersRequiredTypeDescription
trackYesstringtrack object
qualityYes1, 3 or 91 = 128kbps, 3 = 320kbps, 9 = flac

.decryptDownload(data, song_id);

ParametersRequiredTypeDescription
dataYesbufferdownloaded song buffer
song_idYesstringtrack id

.addTrackTags(data, track,coverSize)

ParametersRequiredTypeDescription
dataYesbufferdownloaded song buffer
trackYesstringtrack object
coverSizeNo56-1800cover art size

Donations

If you want to show your appreciation, you can donate me on ko-fi or buy me a coffee. Thanks!

Made with :heart: & :coffee: by Sayem

1.3.5

2 years ago

1.3.4

2 years ago

1.3.3

2 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.10

3 years ago

1.2.8

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.4

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.9

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.11

3 years ago

1.1.9

3 years ago

1.1.10

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.10

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago