Git Product home page Git Product logo

muzika's Introduction

Muzika

Muzika is an elegant music streaming app.

Muzika home page

Muzika playing "My Queen is Angela Davis"

Note: This is a work in progress. The app is not yet ready for production.

Features

  • Personalized home screen
  • Search for songs, albums, artists, radios and playlists
  • Login with Google and access your playlists and more from your library
  • Play personalized radios & mixes
  • View song lyrics & related information
  • Browse artists, albums and playlists etc.

Installation

Using the latest Nightly Flatpak

You can download the latest Nightly flatpak.

From source

Dependencies:

  • GNOME Builder
  1. Clone the repository
git clone https://github.com/vixalien/muzika.git --recurse-submodules
  1. Open the project in GNOME Builder and use "Build" to build the project.

Note: Using Meson and Ninja directly is no longer supported because Muzika uses the latest (unreleased) libadwaita components.

Navigation

Muzika has a robust navigator that allows you to navigate through different pages by using muzika URIs. Some of them are documented below.

The muzika URI has the form muzika:endpoint:data. URIs can also have query parameters. For example, muzika:library?view=grid will open the library page with the grid view.

You can navigate to a muzika URI by directly typing it in the search bar and muzika will visit that page directly instead of searching it.

You can also navigate to a given endpoint by triggering the navigator action manually:

  1. Open the GTK inspector by pressing Ctrl+Shift+I.
  2. Click on the Actions tab on the right.
  3. Look for the action named navigator.visit and type in your URI in the Parameter field, then click Activate.

Endpoints

A list of all endpoints are here.

  • muzika:home - Home page
  • muzika:playlist:<playlistId> - Playlist page. eg: muzika:playlist:PL4fGSI1pDJn6puJdseH2Rt9sMvt9E2M4i/
  • muzika:album:<albumId> - Album page.
  • muzika:artist:<channelId> - Artist or Channel page.
  • search:<query> - Search. Note that query must be URL encoded. eg: search:hello%20world searches for hello world.
  • muzika:library - Library.

More endpoints will be added as Muzika supports more features.

muzika's People

Contributors

brainblasted avatar dapigguy avatar henry-hiles avatar jimmac avatar kianmeng avatar maboroshin avatar peterdavehello avatar radical4ever avatar rene-coty avatar rilsonjoas avatar sungsphinx avatar vistaus avatar vixalien avatar yakushabb 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  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  avatar  avatar  avatar  avatar

muzika's Issues

I want to launch Muzika with Live iso

Muzika could not be booted from Ubuntu/Kubuntu live DVD. Do you know of any good methods for Linux Live DVD? Other app - AudioTube successfully booted from live Kubuntu, But It can't Ubuntu. I'm not too familiar with Linux. However, I have translated many YouTube Clients into Japanese.


The installation command below is currently written in README. It is also helpful to have the startup command in the README.

flatpak install com.vixalien.muzika.flatpak

Some pages don't restore scroll state

Here are the list with scroll state recovering not working after #64:

  • Home (!)
  • Playlist
  • Album
  • Artist
  • Search Results
  • Library (!)
  • Library Playlists (!)
  • Library Albums (!)
  • Library Artists (!)
  • Library Subscriptions (!)
  • Library Songs
  • History (!)
  • Artist Albums
  • Channel
  • Channel Playlists
  • Explore (!)
  • Charts
  • Moods and genres
  • Mood
  • New Releases

Items with (!) for some reason save the scroll state well, but won't restore it: they restore the state but then they immediately scroll to the top.

Switching network connection briefly interrupts the playback

If I toggle the wifi and disconnect ethernet (I do that, because in my office is port 22 limited on internal network) the Muzika playback gets interrupted for a while and resumes again after ~2 secs.

  • Is there a way to detect the interruption of the network stream beforehand?

    • Maybe some DBUS network manager interface, which could tell you "Network changed", so the player can retry getting the stream again. (if I understand the issue correctly)

    Still enjoying the app! Thanks!

Flatpak bundles

Muzika is currently still in its development phase, but is looking very promising. I know some people would like to try it out, and submitting it to Flathub may not be the best idea right now, as it's not something that should be easily available to end users; however, it should be possible to put together some per-commit Flatpak bundles and an OCI remote in GitHub Actions so it can be more accessible to those that want to try it out. Inochi2D was going to make a nightly repo at first, so it may be able to take from that, but we ended up just going with standalone bundles for nightlies.

Can't set volume lower than 50%

The lowest volume the in app volume slider can be set to is 50%

I think it would be nice to be able to set it lower than that.

Screencast.from.2023-07-19.13-36-05.webm

[mobile] unable to open artist page

When clicking on the artist name of a track or opening an artist page directly:

image

MuseError: JSONPath expression "thumbnailOverlay.musicItemThumbnailOverlayRenderer.content.musicPlayButtonRenderer.playNavigationEndpoint.watchEndpoint" returned nothing
    MuseError@resource:///com/vixalien/muzika/js/main.js:10256:5
    j@resource:///com/vixalien/muzika/js/main.js:10286:11
    parse_album@resource:///com/vixalien/muzika/js/main.js:11017:21
    parse_content_list@resource:///com/vixalien/muzika/js/main.js:11001:28
    parse_categories@resource:///com/vixalien/muzika/js/main.js:10968:30
    parse_artist_contents@resource:///com/vixalien/muzika/js/main.js:10993:10
    get_artist@resource:///com/vixalien/muzika/js/main.js:11569:8
    async*load@resource:///com/vixalien/muzika/js/main.js:19087:26
    show_page@resource:///com/vixalien/muzika/js/main.js:21356:31
    navigate@resource:///com/vixalien/muzika/js/main.js:21434:12
    activate@resource:///com/vixalien/muzika/js/main.js:21340:20
    InlineCard/&lt;@resource:///com/vixalien/muzika/js/main.js:19126:14
    main@resource:///com/vixalien/muzika/js/main.js:25035:14
    run@resource:///org/gnome/gjs/modules/script/package.js:206:19
    @file:///app/bin/com.vixalien.muzika:22:40
    @file:///app/bin/com.vixalien.muzika:28:6

Best regards
Jonas

[Feature Request] Full screen player/«Now Playing»

This is a great YouTube Music client with a lot of features, for example lyrics. However, the mobile version lacks ample space for all these features, leaving users craving a more immersive experience. To address this, I propose implementing a Full Screen Player to cater to these needs effectively. It makes it possible to place all the missing elements inside it, the same lyrics for example, without interfering with the rest of the interface. I've left a couple of example implementations of different fullscreen players below for illustrative purposes.

Spotify example

Screenshot_20230724-110358_Spotify

VK X example

Screenshot_20230724-110943_VK X

unable to play music

hi, so when i start the app and try to play a song it hangs and it doesnt play it, running it on a terminal drops me the next error:

(com.vixalien.muzika:2): Gjs-Console-CRITICAL **: 12:12:56.014: error during playback GstPlay.PlayError: Error from element /GstPlayBin3:playbin3/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstDashDemux:dashdemux0: Resource not found. Not Found: ../ext/soup/gstsouphttpsrc.c(1683): gst_soup_http_src_parse_status (): /GstPlayBin3:playbin3/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstDashDemux:dashdemux0/GstBin:srcbin-audio_00/GstSoupHTTPSrc:souphttpsrc0: Not Found (404), URL: https://rr1---sn-j5c5nx-nnul.googlevideo.com/videoplayback, Redirect to: (NULL)
Error on stream '':audio_00
(com.vixalien.muzika:2): Gtk-CRITICAL **: 12:12:56.015: gtk_media_stream_update: assertion 'gtk_media_stream_is_prepared (self)' failed

tried it on gnome-builder

Cant donate you on KoFI

I wont accept my payments for some reason. Do you have any other way of donating to you? I love this app

Flatpak build is broken

When you try to run the newest flatpak build, you'll get the following errors:

Gjs-Console-Message: 20:25:50.191: caching soup requests at /home/alien/.var/app/com.vixalien.muzika/cache/com.vixalien.muzika/soup-cache
Gjs-Console-Message: 20:25:50.248: storing token to secret store
Gjs-Console-Message: 20:25:50.282: caching data /home/alien/.var/app/com.vixalien.muzika/cache/com.vixalien.muzika/cache
Gjs-Console-Message: 20:25:50.322: storing data at /home/alien/.var/app/com.vixalien.muzika/data/com.vixalien.muzika/store.json

(com.vixalien.muzika:2): Adwaita-WARNING **: 20:25:50.940: Using GtkSettings:gtk-application-prefer-dark-theme with libadwaita is unsupported. Please use AdwStyleManager:color-scheme instead.

(com.vixalien.muzika:2): Gjs-CRITICAL **: 20:25:51.016: JS ERROR: TypeError: this.array.findLastIndex is not a function
vfunc_get_section@resource:///com/vixalien/muzika/js/main.js:24264:57
items_changed@resource:///com/vixalien/muzika/js/main.js:24214:10
splice@resource:///com/vixalien/muzika/js/main.js:24249:10
init_buttons@resource:///com/vixalien/muzika/js/main.js:24102:16
NavbarView@resource:///com/vixalien/muzika/js/main.js:23988:10
Window@resource:///com/vixalien/muzika/js/main.js:28401:20
vfunc_activate@resource:///com/vixalien/muzika/js/main.js:29314:21
main@resource:///com/vixalien/muzika/js/main.js:29326:14
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/com.vixalien.muzika:22:40
@file:///app/bin/com.vixalien.muzika:28:6


(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:51.016: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-CRITICAL **: 20:25:51.016: gtk_bitset_get_size_in_range: assertion 'last >= first' failed

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:51.016: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:51.016: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): GLib-GObject-CRITICAL **: 20:25:51.016: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(com.vixalien.muzika:2): Gjs-CRITICAL **: 20:25:55.975: JS ERROR: TypeError: this.array.findLastIndex is not a function
vfunc_get_section@resource:///com/vixalien/muzika/js/main.js:24264:57
items_changed@resource:///com/vixalien/muzika/js/main.js:24214:10
remove_all_unpinned@resource:///com/vixalien/muzika/js/main.js:24261:10
clear_playlists@resource:///com/vixalien/muzika/js/main.js:24115:16
update_playlists/<@resource:///com/vixalien/muzika/js/main.js:24120:14
main@resource:///com/vixalien/muzika/js/main.js:29326:14
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/com.vixalien.muzika:22:40
@file:///app/bin/com.vixalien.muzika:28:6


(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-CRITICAL **: 20:25:55.975: gtk_bitset_get_size_in_range: assertion 'last >= first' failed

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): GLib-GObject-CRITICAL **: 20:25:55.975: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(com.vixalien.muzika:2): Gjs-CRITICAL **: 20:25:55.975: JS ERROR: TypeError: this.array.findLastIndex is not a function
vfunc_get_section@resource:///com/vixalien/muzika/js/main.js:24264:57
items_changed@resource:///com/vixalien/muzika/js/main.js:24214:10
splice@resource:///com/vixalien/muzika/js/main.js:24249:10
update_playlists/<@resource:///com/vixalien/muzika/js/main.js:24121:20
main@resource:///com/vixalien/muzika/js/main.js:29326:14
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///app/bin/com.vixalien.muzika:22:40
@file:///app/bin/com.vixalien.muzika:28:6


(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-CRITICAL **: 20:25:55.975: gtk_bitset_get_size_in_range: assertion 'last >= first' failed

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:55.975: (../gtk/gtksectionmodel.c:143):gtk_section_model_get_section: runtime check failed: (*out_start < *out_end)

(com.vixalien.muzika:2): GLib-GObject-CRITICAL **: 20:25:55.975: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

(com.vixalien.muzika:2): Gtk-WARNING **: 20:25:56.779: GtkLabel 0x562d4caaf410 (label) reported min height 22 and natural height 18 in measure() with for_size=-1; natural size must be >= min size

basically, this is caused by Muzika using the latest features which are not yet available in the stable releases.

The Flatpak Nightly builds will continue to work, but will require you to install org.gnome.Platform version master from the gnome-nightly flatpak remote. You can do so with the following commands:

flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
flatpak install gnome-nightly org.gnome.Platform//master

This issue will be fixed when GNOME 45 is released which is also when I plan to release the app to flathub. Sorry for the inconveniences everyone

cant run app, recently updated to the newest artifact

Hello! I updated the app and I cant run it. This is the error

Gjs-WARNING **: 15:42:11.023: JS ERROR: Error: Invalid parameter interfaces (element 0 was not a GType)
registerGObjectType@resource:///org/gnome/gjs/modules/core/overrides/GObject.js:542:50
_init/GObject.Object._classInit@resource:///org/gnome/gjs/modules/core/overrides/GObject.js:515:33
registerClass@resource:///org/gnome/gjs/modules/core/overrides/GObject.js:74:23
SectionedPlayableList<@resource:///com/vixalien/muzika/js/main.js:14431:14
@resource:///com/vixalien/muzika/js/main.js:14457:7
@file:///app/bin/com.vixalien.muzika:28:6

I am running the artifact Update Potfiles - commit [714842a]

Mobile form factor declaration for phosh

In order to be displayed as a "Mobile Friendly" app on Phosh devices, the following should be added to the .desktop file:

X-Purism-FormFactor=Workstation;Mobile;

login doesn't persist

concisely: logged in, closed the app, reopened and it was back to before logging in the first time I opened the app

Better Queue management

Better queue management includes following:

  • Add to queue for songs and playlists
  • Fetch more queue items for huge playlists
  • Sometimes, when changing automatic queues, the track is duplicated (possibly fixed)
  • Maybe even allow the Queue to implement the Gio.ListModel interface directly
  • Show a context menu for queue items, allowing to like them, etc
  • Allow rearranging queue items
  • Show the autoplay slider as a GtkSectionTitle
  • Allow disabling autoplay
  • add menu to now playing menu to allow adding current track to library (and maybe add queue, sleep timer, etc...)

maybe for #30

playlist support

Thank you for your work, any possibility to donate to the project?

v1

this is a list of things that must be ready for v1

  • explore (and charts) page
  • #28
  • #137
  • add track to playlist
  • get all albums of an artist (if possible)
  • show context menu for more actions for songs, albums etc. eg for song: go to artist, go to album, add to playlist etc...
  • #51
  • #95
  • #98
  • #119
  • #148

yaks in need of shaving

  • sometimes seeking pauses

Request: Create es.po

hi again!, so i've made the es.po file needed to have spanish ui on the app, i leave the file here, great job and keep it going man!!
es.zip

Ends of songs are cut off

It seems when a song ends, and the next in the queue plays, the end of the first song is cut off. This is probably best demonstrated by testing yourself.

GTK from the source code?

Hi, do you have a reason to build GTK from the source code?

        {
          "name": "gtk",
          "buildsystem": "meson",
          "config-opts": [
            "-Ddemos=false",
            "-Dbuild-testsuite=false",
            "-Dbuild-examples=false",
            "-Dbuild-tests=false"
          ],
          "cleanup": [
            "/bin/*"
          ],
          "sources": [
            {
              "type": "git",
              "url": "https://gitlab.gnome.org/GNOME/gtk.git",
              "commit": "2d2df42a94ec96f1d8c17c261ef8fcf1d9eafe7c"
            }
          ]
        }

JS ERROR: TypeError: sink is null

I get following error when trying to run the latest Muzika version on NixOS inside a live VM:

nix run --extra-experimental-features 'nix-command flakes' github:onny/nixpkgs/muzika-update#muzika
Gjs-Console-Message: 13:58:59.912: caching soup requests at /home/nixos/.cache/com.vixalien.muzika/soup-cache
Gjs-Console-Message: 13:58:59.913: storing token to secret store
Gjs-Console-Message: 13:58:59.926: caching data /home/nixos/.cache/com.vixalien.muzika/cache
 
(com.vixalien.muzika:2528): Gjs-Console-CRITICAL **: 13:58:59.980: Failed to load store, resetting Gio.IOErrorEnum: Error opening file /home/nixos/.local/share/com.vixalien.muzika/store.json: No such file or directory
GioFileStore@resource:///com/vixalien/muzika/js/main.js:26346:49
@resource:///com/vixalien/muzika/js/main.js:26382:14
@file:///nix/store/yyhdh6g4y8xmf6zjb2n51ds9145dmk6z-muzika-unstable-2023-11-07/bin/.com.vixalien.muzika-wrapped:29:6
 
Gjs-Console-Message: 13:58:59.981: storing data at /home/nixos/.local/share/com.vixalien.muzika/store.json
 
(com.vixalien.muzika:2528): Gjs-CRITICAL **: 13:59:00.336: JS ERROR: TypeError: sink is null
MuzikaMediaStream@resource:///com/vixalien/muzika/js/main.js:26784:5
MuzikaPlayer@resource:///com/vixalien/muzika/js/main.js:27042:5
Application2@resource:///com/vixalien/muzika/js/main.js:30177:19
main@resource:///com/vixalien/muzika/js/main.js:30242:15
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@file:///nix/store/yyhdh6g4y8xmf6zjb2n51ds9145dmk6z-muzika-unstable-2023-11-07/bin/.com.vixalien.muzika-wrapped:23:40
@file:///nix/store/yyhdh6g4y8xmf6zjb2n51ds9145dmk6z-muzika-unstable-2023-11-07/bin/.com.vixalien.muzika-wrapped:29:6

Audio is working fine when playing a YouTube video in Firefox

Search issue on latest build

Hi, I just installed the app using Flatpak from the latest CI build. When I try to search something I get

MuseError: JSONPath expression "text.runs[0],navigationEndpoint.watchEndpoint.videoId" returned nothing
    MuseError@resource:///com/vixalien/muzika/js/main.js:10256:5
    j@resource:///com/vixalien/muzika/js/main.js:10286:11
    parse_search_song@resource:///com/vixalien/muzika/js/main.js:12472:14
    parser@resource:///com/vixalien/muzika/js/main.js:12568:18
    parse_search_content@resource:///com/vixalien/muzika/js/main.js:12572:10
    parse_search_results@resource:///com/vixalien/muzika/js/main.js:12607:25
    search@resource:///com/vixalien/muzika/js/main.js:12762:61
    async*load@resource:///com/vixalien/muzika/js/main.js:20141:12
    show_page@resource:///com/vixalien/muzika/js/main.js:21372:31
    navigate@resource:///com/vixalien/muzika/js/main.js:21450:12
    activate@resource:///com/vixalien/muzika/js/main.js:21356:20
    search@resource:///com/vixalien/muzika/js/main.js:22223:10
    NavbarView/&lt;@resource:///com/vixalien/muzika/js/main.js:22150:12
    main@resource:///com/vixalien/muzika/js/main.js:25075:14
    run@resource:///org/gnome/gjs/modules/script/package.js:206:19
    @file:///app/bin/com.vixalien.muzika:22:40
    @file:///app/bin/com.vixalien.muzika:28:6

And the app then stays the same unless I remove the temp files from .var/app/com.vixalien.muzika

This is when I open the app again:

MuseError: JSONPath expression "thumbnailOverlay.musicItemThumbnailOverlayRenderer.content.musicPlayButtonRenderer.playNavigationEndpoint.watchEndpoint" returned nothing
    MuseError@resource:///com/vixalien/muzika/js/main.js:10256:5
    j@resource:///com/vixalien/muzika/js/main.js:10286:11
    parse_album@resource:///com/vixalien/muzika/js/main.js:11017:21
    parse_mixed_item@resource:///com/vixalien/muzika/js/main.js:10880:14
    parse_mixed_content@resource:///com/vixalien/muzika/js/main.js:10927:46
    get_home/continued_data&lt;@resource:///com/vixalien/muzika/js/main.js:11539:14
    get_continuation_contents@resource:///com/vixalien/muzika/js/main.js:10674:14
    get_continuations@resource:///com/vixalien/muzika/js/main.js:10629:47
    async*get_home@resource:///com/vixalien/muzika/js/main.js:11532:34
    async*load@resource:///com/vixalien/muzika/js/main.js:15463:12
    show_page@resource:///com/vixalien/muzika/js/main.js:21372:31
    navigate@resource:///com/vixalien/muzika/js/main.js:21450:12
    Window@resource:///com/vixalien/muzika/js/main.js:23470:20
    vfunc_activate@resource:///com/vixalien/muzika/js/main.js:25063:21
    main@resource:///com/vixalien/muzika/js/main.js:25075:14
    run@resource:///org/gnome/gjs/modules/script/package.js:206:19
    @file:///app/bin/com.vixalien.muzika:22:40
    @file:///app/bin/com.vixalien.muzika:28:6 

[mobile] Starting search doesn't change view

After entering search query, hitting "return" on the mobile keyboard doesn't have any effect. I guess the view changes in the background but on mobile it stays on the menu view.

signal-2023-07-12-124852_002

Best regards
Jonas

Snapping this app

Hii, I was trying to snap your app. But while building, your code fails in the yarn building part.

:: /usr/local/bin/yarn --cwd /build/muzika/parts/muzika/src run build --out /build/muzika/parts/muzika/build/src --cwd /build/muzika/parts/muzika/build ../src/src/main.ts
:: yarn run v1.22.19
:: $ node lib/build.js --out /build/muzika/parts/muzika/build/src --cwd /build/muzika/parts/muzika/build ../src/src/main.ts
:: file:///build/muzika/parts/muzika/src/lib/build.js:21
:: await build({
:: ^^^^^
::
:: SyntaxError: Unexpected reserved word
::     at Loader.moduleStrategy (internal/modules/esm/translators.js:133:18)
::     at async link (internal/modules/esm/module_job.js:42:21)
:: error Command failed with exit code 1.
:: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
:: ninja: build stopped: subcommand failed.
:: error: Failed to run the build script for part 'muzika'.

This is the error log. Can you help me fixing this?

[feature] Remember scroll state while navigating

Hey,
considering scrolling through an artist page and checking albums

image

clicking on an album

image

when navigating back to the artist page, we're on top again

image

in the best case, the scroll position should be the same as on picture one. Checked the behaviour on other clients like Spotify on iOS and there it also remembers the scroll position.

This feature would be nice to have on mobile phones.

Best regards and thanks for the great app
Jonas

[question] possible fork as a jellyfin client

Hey :)

I'm thought about the idea having a player similar to yours as a client for Jellyfin media server. They have a good API documentation.

Hacking their API into the muzika calls instead of YouTube Music might work and would be an interesting experiment.

What do you think of it? If the experiment is successfull one could merge the Jellyfin backend code back into Muzika.

Best regards
Jonas

Resuming song after very long time doesn't work

I sometimes leave the app opened for a very long time. Returning to the app and resuming playback plays the current title until the end to what is already cached.

Skipping the song plays the next one (or the previous) as expected, maybe some access token is expired and doesn't get refreshed?

Still enjoying the app ♥️

Carousels block vertical scroll

When the cursor hovers over a carousel, scrolling vertically is not possible until you move the cursor off, despite the carousel itself being scrollable only horizontally. This is especially noticeable on the home page.

Commit 997ae24

is it possible Sync lyrics?

hi, to start, what an awesome project its a really good app!, my question or request is the next one, is it possible to make the lyrics page also capable to show and process sync lyrics. thank you

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.