okonek / tidal-cli-client Goto Github PK
View Code? Open in Web Editor NEWYou can now use Tidal on linux. With your loved CLI. <3
License: MIT License
You can now use Tidal on linux. With your loved CLI. <3
License: MIT License
Followed instructions, npm install was flawless, but npm run app produced this output,
installing from npm rep also produces this or similar output. ( with "sudo npm -g i tidal-cli-client)
Hey there,
I'm the author of Node-MPV. Thanks a lot for using it π
I've been working on a Version 2 of the library for quite a while now and I think I will publish it to NPM within the next days or weeks.
Version 2 brings quite some changes to the table as it makes heavy use of promises to check if all the messages it sends to MPV over the socket are actually working or not.
You can find Version 2 here along with a Migration Guide and the Changelog.
I'm just filing this issue to inform you, that you either want to lock the Node-MPV version in your package.json
or if you are willing to take the time, migrate your app to version 2, as soon as it is released.
I try to provide bugfixes for Version 1 in the future but I will probably not add new features. I think version 2 is a lot more robust and overall better so you might at least want to take a look π
Cheers
When I try to rearrange my :queue
after typing s
or w
- every song's artist name is changed to the one from the first row.
/usr/lib/node_modules/tidal-cli-client/app/index.js:7
(async () => {
^
SyntaxError: Unexpected token (
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:387:7)
at startup (bootstrap_node.js:153:9)
First of all, Honor to @okonek, it's a great app.
My question is about if is possible improve more security in the credentials config file. Have the credentials exposed is insecure.
Is it possible to use mpv with a custom profile (eg mpv --profile=tidal-cli)?
Hi,
I seem to be having the same issue as #46 but pressing "Shift + ;" brings up a flashing cursor just above the 'No Track' box but nothing else happens, typing doesn't work.
After installation, I get blank screen on start up. When I terminate with CTRL-C, I got this error:
Successfully sent fatal error with eventId e262f19053c04d29b70f7936f4b3a7b1 to the developer
TypeError: Cannot read property 'player' of undefined
Add menu for app with options to search for track or artist.
Hello, so when I updated the app which has things such playlists and albums, I go to press Control-P to load my playlists and I get this:
(node:13454) UnhandledPromiseRejectionWarning: undefined (node:13454) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:13454) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Any idea what the issue may be?
Hello dear,
I'm not able to start the app. Used npm to install it.
I've got node and mpv.
This is the error that I receive.
PS: I'm on Ubuntu Boogie based on Ubuntu 17.10. Node version v6.11.4, npm version 3.5.2
/usr/local/lib/node_modules/tidal-cli-client/app/Track.js:8
async updateStreamURL(tidalApi) {
^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/usr/local/lib/node_modules/tidal-cli-client/app/TidalApi.js:2:15)
after installing all dependecies and tidal-cli, when playing music no audio.
After submitting username and password, main app loads, but won't respond.
Hi Okonek,
I've started using tidal-cli-client a couple of hours ago and it seems that the quality is really low on either "LOSELESS" or "HIGH", I only tried it on Dream Theater.
I'm using (updated) Arch Linux, Aune X1s as DAC, Fostex TH-X00 as the headphones.
Thanks!
I see in the commit message that okonek added a -no--images option. I assume this turns off the images that are pushed onto the display when tracks change (for me those images are a bit annoying and glitchy). How do I turn them off? I tried typing --no-images into the CLI, doesn't seem to be an argument. Also, thanks okonek for the great app.
On Raspberry PI zero w; when I run tidal-cli after a while, a black screen comes with
[email protected] alert: unhaldedRejection captured
error. The reason is "Term size not determined" it says.
So i install all the dependencies that the app requires in my dockerfile, and then get latest with npm but unfortunately now that you introduced dependency checking it fails to start due to mising W3M-IMG, however it is actually installed
Dockerfile
FROM fedora
RUN dnf localinstall -y --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
RUN curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
RUN dnf install -y libstdc++
RUN dnf install -y git nodejs mpv w3m w3m-img
RUN npm -g i tidal-cli-client@latest
CMD tidal-cli
Docker build output shows it got installed
Step 5/7 : RUN dnf install -y git nodejs mpv w3m w3m-img
---> Running in e5c5fb99f281
Last metadata expiration check: 0:00:07 ago on Sun Apr 8 22:04:43 2018.
Dependencies resolved.
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
git x86_64 2.14.3-3.fc27 updates 1.1 M
mpv x86_64 0.27.2-1.fc27 rpmfusion-free-updates
962 k
nodejs x86_64 2:8.11.1-1nodesource nodesource 17 M
w3m x86_64 0.5.3-36.git20180125.fc27 updates 1.0 M
w3m-img x86_64 0.5.3-36.git20180125.fc27 updates 39 k
...
Installed:
git.x86_64 2.14.3-3.fc27
mpv.x86_64 0.27.2-1.fc27
nodejs.x86_64 2:8.11.1-1nodesource
w3m.x86_64 0.5.3-36.git20180125.fc27
w3m-img.x86_64 0.5.3-36.git20180125.fc27
...
Step 6/7 : RUN npm -g i tidal-cli-client@latest
---> Running in c78e08dd3d30
/usr/bin/tidal-cli -> /usr/lib/node_modules/tidal-cli-client/app/index.js
+ [email protected]
Now trying to run it fails
docker run -it registry.twhiston.cloud/tomwhiston/tidal-cli
You haven't got W3M-IMG installed
When :search result is "No items" and I hit Enter then program crashes with that exception:
TypeError: Cannot read property 'uuid' of undefined
at module.exports.openPlaylistPanel (/usr/lib/node_modules/tidal-cli-client/app/UI/uiComponents/specializedUI/List/PlaylistsList.js:33:92)
at onItemSelect.map.x (/usr/lib/node_modules/tidal-cli-client/app/UI/uiComponents/basicUI/List.js:80:6)
at Array.map (<anonymous>)
at module.exports.keySelected (/usr/lib/node_modules/tidal-cli-client/app/UI/uiComponents/basicUI/List.js:75:22)
at List.EventEmitter._emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:94:20)
at List.EventEmitter.emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:117:12)
at List.enterSelected (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/widgets/list.js:586:8)
at List.<anonymous> (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/widgets/list.js:119:14)
at List.EventEmitter._emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:94:20)
at List.EventEmitter.emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:117:12)
at Program.<anonymous> (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/widgets/screen.js:602:15)
at Program.emit (events.js:182:13)
at Program.EventEmitter.emit (domain.js:441:20)
at /usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/program.js:410:15
at Array.forEach (<anonymous>)
at ReadStream.input.on.input._keypressHandler (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/program.js:408:23)
at ReadStream.emit (events.js:182:13)
at ReadStream.EventEmitter.emit (domain.js:441:20)
at ReadStream.input.on.input._keypressHandler (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/program.js:398:18)
at ReadStream.emit (events.js:182:13)
at ReadStream.EventEmitter.emit (domain.js:441:20)
at /usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/keys.js:318:14
at Array.forEach (<anonymous>)
at emitKeys (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/keys.js:134:10)
at ReadStream.onData (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/keys.js:49:14)
at ReadStream.emit (events.js:187:15)
at ReadStream.EventEmitter.emit (domain.js:441:20)
at addChunk (_stream_readable.js:287:12)
at readableAddChunk (_stream_readable.js:268:11)
at ReadStream.Readable.push (_stream_readable.js:223:10)
at TTY.onStreamRead [as onread] (internal/stream_base_commons.js:122:17)
@okonek You can track it with that eventId 7c462acc0a164d039e3e0e0c604f3662
d31efc9267d849bfac7c1285472fa624
321867a4841a424fbf39a08377535833
e4e6e9b5a63644fc85808b8f54ad2de4
e33976283d644a8883b98b1b5f3354e1
When i run $ tidal-cli
i get the following error
$ tidal-cli
/usr/local/lib/node_modules/tidal-cli-client/app/index.js:25
(async () => {
^
SyntaxError: Unexpected token (
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:383:7)
at startup (bootstrap_node.js:149:9)```
I created my Tidal account with the "Sign in with facebook" option. Anyway to sign in to the cli-client?
Make artist search box and results.
First Error:
user@Tidal-2:~$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
## Installing the NodeSource Node.js 10.x repo...
## Populating apt-get cache...
+ apt-get update
Ign:1 http://deb.debian.org/debian stretch InRelease
Hit:2 http://security.debian.org stretch/updates InRelease
Hit:3 http://deb.debian.org/debian stretch Release
Hit:5 http://deb.qubes-os.org/r4.0/vm stretch InRelease
Reading package lists... Done
## Confirming "stretch" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_10.x/dists/stretch/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
OK
## Creating apt sources list file for the NodeSource Node.js 10.x repo...
+ echo 'deb https://deb.nodesource.com/node_10.x stretch main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src https://deb.nodesource.com/node_10.x stretch main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Hit:1 http://security.debian.org stretch/updates InRelease
Ign:2 http://deb.debian.org/debian stretch InRelease
Hit:3 http://deb.debian.org/debian stretch Release
Hit:5 http://deb.qubes-os.org/r4.0/vm stretch InRelease
Get:6 https://deb.nodesource.com/node_10.x stretch InRelease [4,612 B]
Get:7 https://deb.nodesource.com/node_10.x stretch/main amd64 Packages [763 B]
Fetched 5,375 B in 1s (5,133 B/s)
Reading package lists... Done
## Run `sudo apt-get install -y nodejs` to install Node.js 10.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
user@Tidal-2:~$ sudo apt-get install -y nodejs
After executing the above I downloaded mvp and w3c with the debian package manager. They appear to be successful (idk how to check)
Nodejs appears to have successfully downloaded.
I also get:
:~$ sudo npm -g i tidal-cli-client@latest
npm ERR! code 128
npm ERR! Command failed: /usr/bin/git submodule update -q --init --recursive
npm ERR! fatal: Could not change back to '/root/.npm/_cacache/tmp/git-clone-52eecca9': Permission denied
npm ERR!
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-08-13T19_54_11_040Z-debug.log
And this:
user@Tidal-2:~$ tidal-cli
bash: tidal-cli: command not found
I'm running Qubes OS Debian Template.
I couldn't find the "SENTRY" Issue Reporter.
I get this when I try to run tidal-cli:
/usr/lib/node_modules/tidal-cli-client/app/index.js:9
const checkDependencies = async () => {
^
SyntaxError: Unexpected token (
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:387:7)
at startup (bootstrap_node.js:153:9)
Please consider adding some help and use instructions to the client application.
It would be nice to have it after typing :help or :usage instead of going to Your www page in github to find that.
I see that the api has a search type for albums, is it possible to use this to browse an artist's catalog and play an entire album? This would be a great improvement over playing up to two songs at a time.
Anyway, thank you very much for creating tidal-cli
! As a Firefox user, it's wonderful to have Hi-Fi playback in linux.
I just checked out tilda-cli-client and ran into an exception while searching which, because it printed something like [email protected] alert: unhandled exception occured
, made me aware that you're using a Sentry integration here. Not checked further, but knowing how Sentry works, I'm now afraid to leak my password to your service.
That may be unwarranted, but still leaves a very bad feeling. It should be more like:
Hi, running on Fedora 27, when i try to search for an artist and select them in the client I get the error
(node:17186) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'tw' of undefinedββββββββββββ
(node:17186) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Do you think is possible to play Hi-Fi quality audio, not only High quality?
I've tried to change config file, but it didn't work.
Kind regards
Hy37id
Distro: KDE Neon (Ubuntu 16.04 LTS)
Terminal Emulator: (Konsole, xTerm)
Node Version: 9.11.1
tidal-cli Version: 1.4.6
I am receiving no audio output from the application. I have check to make sure I have all of the audio dependencies such as MPV and node-mpv specifically. I have confirmed that MPV works.
Any idea of what would be causing this issue? If more input is required or anything I can help with, just let me know.
Thank you,
Michael
'Importand'.
I'm sorry, that's the best I could contribute today...
/usr/local/lib/node_modules/tidal-cli-client/app/Track.js:8
async updateStreamURL(tidalApi) {
^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (/usr/local/lib/node_modules/tidal-cli-client/app/TidalApi.js:2:15)
Xubuntu 17.10
mpv and w3m installed.
Due to what seems to be a huge download/load/buffer time for tracks, playing a gapless album (like Dark Side of the Moon) just doesn't work.
tidal-cli 2.0.4 (release version)
Ubuntu 18.04.1
Hello,
I have nothing on my playlist.
Also can we browse albums?
Thank you
Shame on you π
Would love to see
vim shortcuts
Playlist support - Done
Album suport - Done
Shuffle support
More descriptive artist page e.g.: albums and top songs - Done
I don't have much free time but I'll read the code later and reverse engineer the iOS app a bit to see how these things would work. Also I love CLI but an electron app might be best for an app like this. Really wish we could run Tidal without flash installed the way Spotify has their own linux version.
On Fedora 27, having made sure I have all the dependencies, I try to search for an artist, but when I do the program crashes with the following error
(node:1) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'tw' of undefined
(node:1) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(node:29790) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'replace' of null
at TidalApi.TidalAPI.getArtURL (/usr/lib/node_modules/tidal-cli-client/node_modules/tidalapi/lib/client.js:342:53)
at Promise (/usr/lib/node_modules/tidal-cli-client/app/Artist.js:20:36)
at new Promise (<anonymous>)
at Artist.updateArt (/usr/lib/node_modules/tidal-cli-client/app/Artist.js:18:16)
at Object.communicationEvents.subscribe [as handler] (/usr/lib/node_modules/tidal-cli-client/app/UI/MainScreen.js:100:34)
at Observable.fire (/usr/lib/node_modules/tidal-cli-client/app/Observable.js:45:37)
at module.exports.on (/usr/lib/node_modules/tidal-cli-client/app/UI/ArtistsList.js:13:38)
at module.exports.EventEmitter._emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:98:20)
at module.exports.EventEmitter.emit (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/events.js:117:12)
at module.exports.List.enterSelected (/usr/lib/node_modules/tidal-cli-client/node_modules/blessed/lib/widgets/list.js:586:8)
(node:29790) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3) β
(node:29790) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
That's what it spews out after I hit return.
To replicate:
Run tidal-cli
Input :
Input artist
Input full or partial query "MASTER BOOT RECORD"
Press RETURN
That`s pretty much it.
Thank you for providing this package. I hope to get it running soon! My system is as follows:
Ubuntu 16.04
OpenJDK 8
W3M 0.5.3
W3M-img 0.5.3
MPV 0.14.0
NODEJS 8.10
[email protected]
Everything works reasonably well but I can't play a song once I get a list. I can hit 'n' to queue a song but I can't use the mouse to click on a song for it to play. W3M mouse functions work fine when I run w3m and browse a website.
Greetings,
When trying to run the app, I get this error.
[email protected] app /home/pafluxa/software/tidal-cli-client
node app/index.js
/home/pafluxa/software/tidal-cli-client/app/index.js:25
(async () => {
^
SyntaxError: Unexpected token (
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
Would you kindly take a look at this when you get the chance? I promise I'll make a donation if resolved :-)
Thanks,
TIDAL hi-fi subscription also offers MASTER for the STREAM_QUALITY (besides NORMAL, HIGH and HI-FI). Please add it as the config option. If MASTER quality is not available for a particular song/album, the app should change to Hi-Fi for a particular song/album. It would also be very nice that the client would display the current track info (length, quality mode, etc.). btw: keep up the good work, you app works great in ubuntu 18!
Greeting,
Upon executing
npm run app
The terminal emulator just stays blank. No error messages are shown.
This is on Ubuntu 16.04. MPV and W3M are installed. Please let me know if I should provide more information about my setup.
Best,
When playing songs I searched some other things and got that out of nowhere. Program crashed and exited with that eventId 5f3bde8c4c39431b978397d342c78aa7
. Current song was beeing played until it's end.
Would it also be possible to acces saved playlists?
If it doesn't find w3m executable it just stays "frozen". There should be a warning if the system dependencies (mpv and w3m) are missing and then exit.
Great proyect by the way.
It would be nice to support Last.fm scrobbling like in the main app.
https://www.last.fm/api/scrobbling
This will also allow using things like this:
https://github.com/0nse/now_playing
It would be awesome to have "hjkl" vim-style keyboard shortcut navigation. For example in playlists: j is down, k is up and h is left and l right. Also use the function keys for things like search (F2). The program ncpmpc (an mpd client) does this well and has very good keys.
It says "Attempt to write outside buffer bounds" when I search for artists. Do you know how to fix it?
Hey there,
I found this project via your blog, but I was unable to leave a comment there - great writeup! The video with SRV was very cool :) I'd like to get your client working but I'm getting the error "W3M Image Display not available.". It has been logged to Sentry with Event ID: cccc4fd7d0694392bfd0fb491aa5c233. Hopefully you can find it :) Do I need to install a certain dependency?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.