Giter VIP home page Giter VIP logo

hifi.rs's People

Contributors

carrieroent avatar dependabot[bot] avatar iamdb avatar rarescosma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

hifi.rs's Issues

new UI - not sure how to play a playlist

So I'm finding the new UI is great, the search is very usable

For playlist though, I get to the playlist screen and I'm not sure how to actually play it. If it play the first track it seems to only do that - it doesn't queue the full playlist

There is a <play> at the top of the list, but clicking this doesn't seem to do anything

I've tried with smaller playlists to see if its just a "massive playlists are too big" kind of issue, but that doesn't seem to be the case.

Is this a PEBKAC or is there a real bug here?

Seem to be unable to copy whats currently playing

Pretty normal thing for me to do is find something I like in a playlist etc and want to share it or look into it

The TUI seems to prevent any normal copy actions, I can't figure out a way to grab the current track details

`hifi-rs config username` and `hifi-rs config password` do not insert anything into the database

Hey,
when starting the player, although having set username and password, I get the following error:

023-09-06T10:43:04.264626Z ERROR hifirs_qobuz_api::client::api: no app_id

I have discovered that the database's config table did not contain any rows. After having inserted my username and password manually into the table using the sqlite3 command line tool, the player works just fine. Hence, I suggest that the username and password sub-options of config might not work correctly.
This happened with both the pre-compiled binary from Github and my self-compiled binary, both being version 0.3.1.

Help with building cursive branch

Trying to build the cursive branch on Fedora 38

Getting this issue

cargo install --path ./hifirs/
  Installing hifi-rs v0.1.4 (/home/joseph/Projects/github/hifi.rs/hifirs)
    Updating crates.io index
  Downloaded scopeguard v1.1.0
  Downloaded rkyv_derive v0.7.42

... loads of downloaded lines ...

error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `futures-core` (build script) due to previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `quote` (build script) due to previous error
error: could not compile `libc` (build script) due to previous error
error: could not compile `proc-macro2` (build script) due to previous error
error: could not compile `memchr` (build script) due to previous error
error: could not compile `serde` (build script) due to previous error
error: could not compile `parking_lot_core` (build script) due to previous error
error: failed to compile `hifi-rs v0.1.4 (/home/joseph/Projects/github/hifi.rs/hifirs)`, intermediate artifacts can be found at `/home/joseph/Projects/github/hifi.rs/target`

Info that might be useful?

git remote -v
origin	[email protected]:iamdb/hifi.rs.git (fetch)
origin	[email protected]:iamdb/hifi.rs.git (push)

git status
On branch cursive
Your branch is up to date with 'origin/cursive'.

nothing to commit, working tree clean

cargo --version
cargo 1.70.0 (ec8a8a0ca 2023-04-25)

rustc --version
rustc 1.70.0 (90c541806 2023-05-31)


Feature Request - ability to paste URI into the new UI and play it

The new UI is great, but I still like to use the web player to find stuff

When I do find somerthing, I have to kill hifi-rs and relaunch to play the URI

Woudl be nice if it was possible to paste a URI in to the UI somewhere directly - maybe the search box, or maybe just recieve URI from stdin somehow and automatically start playing it?

mpris next does not work

When using the mpris interface, like through playerctl, the commands seem to work just fine, except for next track. Next track works in all other contexts, but here it hangs when requesting the next url.

No error is thrown is thrown. It just waits for the returning url and never receives it.

Album URL refusing to play

This command is failing

hifi-rs play --uri https://play.qobuz.com/album/bkzs3314dv4ab

with output

failed to retrieve a track url

0.2.4 not playing at all

Let me know if there's a way I can give you some debug output etc

But 0.2.4 just does not play

How this works?

How this works? Does this use reversed the internal, private API of the Qobuz official web client? So does this work exactly the same as librespot?

"Qobuz only supports Linux through the browser and has no officially supported API."?

stream-album throws PlayerError

Hi, I just found this repo. Thank you for your efforts to make Qobuz working on Linux.
Unfortunately, I can't get it to work:

./hifi-rs stream-album huquowkjgyhpb
Error: PlayerError { error: TrackURL }

Username/Password are correct, since hifi-rs my-playlists -o tsv is working.
However, hifi-rs my-playlists is not working:

./hifi-rs my-playlists
thread 'main' panicked at 'database failure: RowNotFound', /home/runner/work/hifi.rs/hifi.rs/hifirs/src/sql/db.rs:198:18

Also, could you please provide an example of a URI for the play command?

Rename to qobuz-tui or qobuz-cli

Just a suggestion, rename this to qobuz-tui or other qobuz-something. It would be easier to remember. What is the purpose of hifi-rs (hifi rust?)?

Que item, add to playlist

Would love the ability to que up song/album/playlist, adding it to the Now Playing list. For instance by moving selection to an item and pressing Q. Adding as playlist could be a similarly implemented.

MPRIS unknown artist/album

Hi there - thanks a lot for hifi-rs. It fills a useful gap.

I seem to have a problem in that hifi-rs playing track/artist does not seem to be reported correctly to the system (via dbus I understand?). Or may be I am confused and hifi-rs is not "reporting" the current track (although I can see that my DE is aware that something is playing and I can control with either playerctl or the little gizmo/controller included in many DEs. hifi-rs seems to be sending the album cover to MPRIS when it starts up (again as I can see in the DE small GUI controller), but no information about the track.

Thanks for clarifying.

Message bus

Instead of using a broadcaster for the player state and the url service, create a single message bus to handle app messages, state changes, actions.

Notifications

Hi again David,

Any plan to implement notification of the current track? I know hifi-rs is minimal, it's just that I like notifications :-)

I see there is a notifications.rs in player/. Is that supposed to work? Is it WIP? Or completely unrelated?

Playback Stalls: Unable to Progress Songs in hifi-rs

Hello iamdb,

Firstly, I wanted to express my appreciation for the work you've put into creating the Qobuz terminal music player. It's been a fantastic addition to my Linux setup, allowing me to enjoy music seamlessly from the command line.

However, I've encountered a recurring issue that I'd like to bring to your attention. Whenever I attempt to play a song from an album, regardless of which album it is, the playback works perfectly fine until it reaches the end of the song. At that point, the player fails to transition to the next song. Neither the "next" nor "previous" commands seem to function, leaving the playback in a stuck state.

Even after attempting to restart the program, the issue persists. The only workaround I've found is to manually select a new album or playlist for playback, which interrupts the listening experience.

I'm not sure if this is a known issue or if there's something specific on my end causing this behavior. Any guidance or potential fixes you could provide would be greatly appreciated.

Once again, thank you for your dedication to this project, and I look forward to your response.

Best regards,

Search screen

  • Allow searching by album or track
  • Open search results in TUI by default, add table to list of output options
  • remove dialoguer dependency and replace with TUI
  • Allow text input for query

0.2.5 has no binaries

pretty sure you must be aware, but just in case - there's no binaries attached to 0.2.5

Playback Not Working. Headless aarch64 Debian 12

I am using Pipewire and other applications like mocp and castero can play sounds. hifi-rs opens and works except for starting to play tracks.

I have the following gstreamer packages installed:

gstreamer1.0-alsa/stable-security,now 1.22.0-3+deb12u2
arm64 [installed]
gstreamer1.0-pipewire/stable-backports,now 1.0.7-1~bpo
12+1 arm64 [installed]
gstreamer1.0-plugins-base/stable-security,now 1.22.0-3
+deb12u2 arm64 [installed,automatic]
libgstreamer-plugins-base1.0-0/stable-security,now 1.2
2.0-3+deb12u2 arm64 [installed,automatic]
libgstreamer1.0-0/stable,stable,stable,stable,stable,n
ow 1.22.0-2 arm64 [installed]
tap-plugins/stable,stable,stable,stable,stable,now 1.0
.0-1 arm64 [installed,automatic]

This what the terminal outputs when trying to start playback of a tack:

debian@debian:$ ./hifi-rs --disable-tui open
q
debian@debian:
$ ./hifi-rs --disable-tui --web open
thread 'tokio-runtime-worker' panicked at /__w/hifi.rs
/hifi.rs/hifirs/src/websocket.rs:159:81:
: GStreamer { message: "Element failed to change its s
tate" }
note: run with RUST_BACKTRACE=1 environment variable
to display a backtrace
thread 'tokio-runtime-worker' panicked at /__w/hifi.rs
/hifi.rs/hifirs/src/websocket.rs:160:70:
: GStreamer { message: "Element failed to change its s
tate" }

Do you have an idea what can possibly be the culprit? Thanks!

Playlists pausing after every track

As the title says, hifi.rs is stopping playback after each track in my playlist, requiring my to select the terminal window it's running from and hit space to start the next song.

I started with "hifi-rs my-playlists" selected the playlist I wanted, then selected 'play'.
The playlist's tracks are visible in the now-playing tab, when a song ends another track is moved to the current track info panel, but playback of the new track will not start without input.

Edit: after manually starting a handful of tracks (10 of 268), I just had one where it was able to start automatically. So apparently it's inconsistent.

Mouse control seeking

I know we have the l key to jump forwards

just wondering how hard it would be to support mouse click seeking?

if it's not too hard, would be a nice feature

player cleanup

abstract some repetitive functions throughout the player

Info of the API of Qobuz

The API of Qobuz was previously public. At some point it was closed and nowadays only a few people can get docs and keys to it by request. However, after a quick glance, the API seems very similar to what it was years ago. Information about this could be documented in this issue.

Here's what I found:

Feature Request: Audio Normalization

I have read that Qobuz supports RG metadata and I wonder if this is possible to implement? It would be really good to have since Qobuz itself does not let me enable this using at least their web version. Strange that they do not let the user do this.

Feature Suggestion - Browser Plugin to Allow Control from Qobuz Web

A browser plugin that would intercept qobuz web player play button presses and instead trigger this app to play the album/track/playlist

I have a feeling this is doable, but I'm not quite sure how

I'm thinking along the lines of:

custom protocol handler (not sure how to do this in Wayland, but I recall doing it in older desktops) that fires up the player

some JS injected by the extension that will convert the play event into hitting the custom protocol URL

How use this?

Hey! I installed this (extracted the tar, copied the binary to my PATH and gave execute permissions), but I dont know, how use this? :D What are first steps that I have to do?
I just ran hifi-rs config username, hifi-rs config password and then hifi-rs play, but hifi-rs play or search or anything else doesn't work.

What causes database errors?

Where this store its configuration?


Thanks so much for this! This is a big favor for Qobuz on Linux.

Install doesnt seem to work on Fedora Linux

The install process seems foolproof, but for some reason isn't working for me. I download version 0.1.4, extract the tar, right click the file, and click execute. Nothing seems to happen after that. Am I missing a step?

armv7 build

Hi. I would love to use this with my Raspberry Pi 4 + DAC. Is it possible to add a armv7 build of this?

Graceful exit

Currently, the player just stops and everything is dropped. Instead, threads should be killed gracefully and the db flushed before exit.

TIDAL Support

Could the project potentially be expanded also to have TIDAL Support?

albmum metadata missing when playing a playlist

I've just got around to hooking up rescrobbled

However its failing when playling a playlist due to the meta data for album being missing

I can see this with my trusty loop:

while true; do playerctl metadata --format "Now playing: {{ artist }} - {{ album }} - {{ title }}"; sleep 60;echo; echo; echo; done

that I use for being able to copy/paste whats playing - the album is now missing.

This is when playing a playlist. When playing an album, the meta data is there

Is this a limitation of the Qobuz API, or a bug?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.