A Dart package for easy music downloading from Deezer.
The Deezer Dart package provides a convenient way to interact with the Deezer music streaming platform in Dart applications. With this package, developers can easily search for songs, retrieve track information, fetch favorite songs, and download music from Deezer.
- Search functionality for songs
- Expanded track information retrieval
- Batch operations for fetching track information
- Playlist support
- Optimization for song downloading
- Capability to retrieve favorite songs
- Manage favorite songs (add and delete)
- Stream songs
Before using this package, ensure you have the following:
-
Deezer Account: You don't need a Deezer subscription. Simply create a Deezer account.
-
arl
Parameter: Obtain the arl parameter from your Deezer account's browser cookies. This parameter is necessary to authenticate your requests to the Deezer API.Note: The
arl
key will expire after approximately 3 months. Make sure to refresh it when needed to continue using the package seamlessly.
To use this package
- With Dart:
$ dart pub add deezer
- With Flutter:
$ flutter pub add deezer
- With pubspec.yaml
dependencies: deezer: ^version_number
Run
dart pub get
orflutter pub get
to install the package.
-
Import the Package: Import the
deezer
package in your Dart file:import 'package:deezer/deezer.dart';
-
Obtain ARL Parameter: Obtain the
arl
parameter from your Deezer account's browser cookies. This parameter is required to authenticate your requests to the Deezer API. -
Create Deezer Instance: Use the obtained
arl
parameter to create a Deezer instance:String arl = "get it from your browser cookies"; Deezer deezer = await Deezer.create(arl: arl);
Function Description getAlbum Get album information getAlbumTracks Get album tracks Function Description getArtist Get artist information getArtistTopTracks Get artist top tracks getArtistAlbums Get artist albums getArtistRelated Get related artists getArtistRadios Get artist radios getArtistPlaylists Get artist playlists Function Description getChart Get chart getChartTopTracks Get chart top tracks getChartTopAlbums Get chart top albums getChartTopArtists Get chart top artists getChartTopPlaylists Get chart top playlists getChartTopPodcasts Get chart top podcasts Function Description getEditorial Get editorial getEditorials Get editorials Function Description getGenre Get genre details getGenres Get details list of genres getGenreArtists Get genre artists getGenreRadios Get genre radios Function Description getPlaylist Get playlist details getPlaylistTracks Get playlist tracks Function Description getRadio Get radio details getRadioTracks Get radio tracks getRadioGenres Get radio genres getRadioTop Get top radios getRadioLists Get radio lists Function Description searchAlbums Search for albums searchArtists Search for artists searchPlaylists Search for playlists searchTracks Search for tracks searchUsers Search for users searchRadios Search for radios Function Description getUser Get user details getUserAlbums Get user albums getUserArtists Get user artists getUserTracks Get user tracks getUserRadios Get user radios getUserChartTracks Get user chart tracks getUserChartAlbums Get user chart albums getUserChartArtists Get user chart artists getUserChartPlaylists Get user chart playlists getUserFlow Get user flow getUserFollowings Get user followings getUserFollowers Get user followers getUserPlaylists Get user playlists Function Description getTrack Get track details getTracks Get track details list Function Description favSongs Get favorite songs addFavSongs Add favorite songs removeFavSongs Remove favorite songs Function Description getSong Download a song streamSong Stream a song -
Download a Song: Use the
getSong
method to download a song:final song = await deezer.getSong("1439299952");
Write the downloaded song to a file:
if (song?.data != null) { File file = File("song.mp3"); file.writeAsBytesSync(song.data!); }
-
Stream a Song: Use the
streamSong
method to stream a song:final stream = deezer.streamSong("1439299952");
Write the streamed song to a file:
File streamFile = File("stream_song.mp3"); IOSink sink = streamFile.openWrite(); await for (List<int> chunk in stream) { sink.add(chunk); } await sink.flush(); await sink.close();
Ensure to replace
["1439299952"]
with the actual list of song IDs you want
Contributions are welcome! If you'd like to contribute to this package
See contributing.md
for ways to get started.
Please adhere to this project's code of conduct
.