Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yne/dzr

Accountless deezer.com Player (CLI & VSCode)
https://github.com/yne/dzr

android cli deezer homebrew linux lyrics macos mpg123 mpv player termux vscode-extension windows

Last synced: 3 days ago
JSON representation

Accountless deezer.com Player (CLI & VSCode)

Awesome Lists containing this project

README

        

![dzr logo](.github/.logo.svg)

# DZR: the command line deezer.com player

## Features

- Cross-platform support: Linux, *BSD, MacOS, Android, Windows+WSL
- Little dependencies: `curl`, `jq`, `dialog`, `openssl` (`openssl-tool` in Android)
- Real-time Lyrics display
- Web interface support (see [dzr](https://github.com/topics/dzr)-tagged frontend)
- ID3v2 tag injector from Deezer metadata (cover, artist, ...)
- Play without storing/caching on your machine for [legal reasons](https://github.com/github/dmca/blob/master/2021/02/2021-02-10-deezer.md)
- No private deezer key in the source (auto-extracted from web player, also for legal reasons)
- VSCode extension [VSIX](https://github.com/yne/dzr/releases) experimental port

## Preview (CLI)

[![asciicast](https://asciinema.org/a/406758.svg)](https://asciinema.org/a/406758)

## Preview (VSIX)

![Screenshot](https://github.com/yne/dzr/assets/5113053/37b6cd26-8876-4d77-92bb-293ff248e21d)

## Install

| Platform | command | version |
|----------|---------|---------|
| MacOS + [brew](https://formulae.brew.sh/formula/dzr) | `brew install dzr` | ![](https://repology.org/badge/version-for-repo/homebrew/dzr.svg?header=)
| Arch Linux + [AUR](https://aur.archlinux.org/packages/dzr) | `yay -S dzr` | ![](https://repology.org/badge/version-for-repo/aur/dzr.svg?header=)
| Gentoo + [GURU](https://github.com/gentoo/guru) | `emerge --ask dzr` | ![](https://repology.org/badge/version-for-repo/gentoo_ovl_guru/dzr.svg?header=)
| Ubuntu + [Snap](https://snapcraft.io/dzr) | `snap install --edge dzr` | [Help Me](https://github.com/yne/dzr/issues/25)
| Linux + [Flatpak](https://www.flatpak.org/) | `flatpak install dzr` | [Help Me](https://github.com/yne/dzr/issues/25)
| Nix + [Flake](https://nixos.wiki/wiki/flakes) | `nix run github.com/yne/dzr` | [Help Me](https://github.com/yne/dzr/issues/25)
| Android + [Termux](https://f-droid.org/packages/com.termux/) | `curl -sL github.com/yne/dzr/archive/master.tar.gz \| tar xzf -`
`mv dzr-master/dzr* $PREFIX/bin` | [![](https://img.shields.io/badge/-tar.gz-40c010?logo=hackthebox)](https://github.com/yne/dzr/archive/master.tar.gz)
| VSCode | `code --install-extension ./path/to/dzr-*.vsix` | [![](https://img.shields.io/badge/VSIX-4c1?logo=visualstudiocode)](https://github.com/yne/dzr/releases)

## Usage

```sh
# browse api.deezer.com
dzr

# browse a specific api.deezer.com url
dzr /artist/860

# play a specific track
dzr /track/1043317462

# use a custom PLAYER (mpg123 v1.31+ is a lightweight alternative)
PLAYER="mpg123 -" dzr

# inject deezer ID3v2 into MP3 (require eyeD3) and rename it as $ARTIST - $TITLE.mp3
dzr-id3 https://deezer.com/track/1043317462 tagme.mp3

# show track lyrics as srt
dzr-srt https://deezer.com/track/14408104

# play track with it lyrics
PLAYER='dzr-srt $id > .srt ; mpv --sub-file=.srt -' dzr /track/14408104

# play track with it srt (using non-POSIX compliant process substitution)
PLAYER='mpv --sub-file=<(dzr-srt $id) -' dzr /track/14408104

# install dzr into ./cgi-bin/. Then serve it
mkdir -p ./cgi-bin/ && install dzr* ./cgi-bin/
python3 -m http.server --cgi
open http://127.0.0.1:8000/cgi-bin/dzr?6113114
```