All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
3.6.0-0 (2024-04-15)
- add Spotify homepage personalized recommendations (#1402) (9e25c74)
- add user profile page (39e97ee)
- android: Filter Device To Force High Frame Rate (#880) (6e41b10)
- improved caching based on riverpod (#1343) (6673e5a)
- LAN connect a.k.a control remote Spotube playback and local output device selection (#1355) (68374ef)
- lyrics: add LRCLIB lyrics provider as fallback (5afe823)
- search history support #1236 (82b1cfa)
- translations: Add Czech translation (#1401) (5a6b800)
- translations: add Thai Language (#1319) (b70f250), closes #1310 #1311
- instance of Artist bug #1362 (c8dd802)
- playback: sponsor block skips and stutters in same position (0d080b7)
3.5.0 (2024-03-08)
- add endless playback support #285 (9dfd49c)
- add getting started page (96a2a1f)
- Add iOS background play support (#1166) (095587e)
- add songlink based track matching for youtube and open song link button (9095a8c)
- playlist: show confirmation before deleting user playlist #1222 (9f92440)
- Sort by Duration (#1238) (6f8271f)
- start radio support (4defeef)
- translations: add Korean translation (#1275) (fdea930)
- translations: Added Vietnamese (#1135) (019ba86)
- windows: Install Visual C++ 2015-2022 Redistributable if missing when installing (ba69496)
- album images are small in certain places (ca76a39)
- album, artist page not loading #1282 (a9a1d4c)
- android: audio issue when screen is off and broadcast audio session id (#1221 & #1247) (17105a6), closes KRTirtho/spotube#571
- android: only ask battery optimization once #1252 (e516afb)
- android: pressing back button in any other tab other than home exits the app (c3289a0)
- android: system back button in player page exits the app (3294f65)
- cleanTitle removing feat and ft from words instead of whole words (8612345)
- friends list not scrollable with mouse drag (ab08c82)
- no draggable scrollbar in playlist/album page #1158 (6f71e52)
- non-banger songs breaking the queue if sources not found (90f7c53)
- track loading when not found in Youtube (e964f61)
- translations: Update app_nl.arb (#1168) (8167963)
3.4.1 (2024-01-27)
- add create playlist button in add playlist dialog (2168a64)
- add spotify friends activity (#1130) (7983932)
- deep-link: add track opening page (988a975)
- haptic feedback on long press and reordering actions (6242200)
- improve youtube/piped matching by suffixing "- Topic" (8184555)
- translations: add Nepali (नेपाली) translations (#1111) (c3ebf56), closes #1074 #1100
- alternative searched sources doesn't play #1059 (a8e9b82)
- alternative source doesn't persist on next restart #840 (62fde50)
- android: download failing for permission issues #1015 (5509cae)
- artist page error #1018 (8cd650b)
- audio resumes after a phone call even if it was paused before #926 (fd1899f)
- better error message for failing to find lyrics #1085 (e58e18d)
- Black window flash when starting the app (#1003) (02e44fc)
- linux: crash after login (0dfd401)
- macos: backbutton and window button overlap and unused empty space on home (b9417ca)
- macos: download folder unchangeable (9d74cf5)
- macos: Respect Minimize to tray option (#1001) (69559ba)
- macos: system tray shows name and sidebar weird gap #1083 (27057ea)
- releases section is empty when user doesn't follow any artists #1104 (682e88e)
- search page vertical scrollbar moves on horizontal scroll #1017 (c203ac6)
- songs doesn't play when sources with preferred audio codec is empty (#976) (ba4e11a)
- track index not showing after 200 (a752cf4)
- track pad horizontal scrolling not working (59e0e6b)
3.4.0 (2023-12-30)
- Add Go to Album option in track option #917 (b0beeca)
- translations: add Italian language translations (#818) (e4eb0e2), closes #676 #676
- compact genre view in home page (82ed5e9)
- Deep link support (#950) (4050f55)
- improve loading animations (b92583d)
- toggle for discord rpc (24a2294)
- translations: add Dutch Language (#969) (3ad7ba6)
- add safe area in home (9ee6067)
- amoled mode and color scheme can't be changed (840e014)
- doesn't minimize to tray when system title bar close button is used #866 (bb8f250)
- genre border issues (2fb16e6)
- Incorrect "Artist" label/heading on Search Results Page #920 (f86d544)
- metadata not getting added for YouTube tracks #916 and Wrong duration of downloaded tracks #912 (a7b9398)
- Playlist refresh not working #915 (5f1df5a)
- track view header title overflow and player view drag glitch (b04d884)
- wrong artist name sent while scrobbling #958 (dcbe729)
3.3.0 (2023-11-27)
- Add JioSaavn as audio source (#881) (14069cd)
- android: better quick scroll/drag to scroll implementation (2e2c44f)
- artist: modularize page and add wikipedia section (2a69886)
- discord RPC integration #98 (88b8785)
- mini_player: show/hide lyrics #851 (dcbb156)
- paginated playlist and album page (28a5d6b)
- translations: add Turkish translations (0c22469)
- "Add () to Playlist" option not showing in favorited playlists #904 (96021e1)
- 0:00 media duration in queue after application restart #782 (83c0b49)
- Add to Playlist Dialog memory leak #817 (fed36ec)
- album_card: show loading state during adding track to queue/play (5633367)
- alternative track source safearea overflow #876 (7b72a90)
- android invalid download location Download not starting or not explaining error #720 (d056dbf)
- changed settings are not persisting after force stop #821 (e29a38d)
- check for unsynced lyrics and error handling for timed lyrics query (1d77556)
- genres: lag while scrolling (dc980b0)
- infinite list disappearing for a moment everytime new page is fetched (1334a62)
- last track of queue keeps repeating #718 (58e5698)
- Navigating to settings, redirects to home page #812 (da04f06)
- new releases section flickering on scroll glitch (ee94b7c)
- playbutton_card: annoying animation (574406d)
- scrobbling not working for first track or single track (0a6b54d)
- settings page scrollbar position (ee82290)
- shuffle doesn't move active track to top (4956bf3)
- spotube doesn't exit properly, hangs in infinite loop #768 (353ca79)
- trim login field padding (286ef83)
- use CustomScrollView for personalized page (7d05c40)
- user_playlists layout, track tile index, (487c2ed)
- windows: media control not working #641 (7818574)
3.2.0 (2023-10-16)
- ability to select/copy lyrics #802 (0eb9ee8)
- add Amoled theme #724 (5c5dbf6)
- add audio normalization #164 (da10ab2)
- add restore default settings button (94c3866)
- configurable audio normalization switch (c325911)
- customizable stream/download file formats (#757) (e54762b)
- improve and unify the logging framework (#738) (c7432bb)
- LastFM scrobbling support (#761) (f5bd907)
- loading indicator for genre and personalized pages (ffe8d9c)
- manual offline detection (854ab89)
- show error dialog on failed to login (101c325)
- sliding up player support (083319f)
- swipe to open player view (#765) (9aee056)
- thicken the scrollbars & make 'em interactive for mobile (#764) (84a4bcd)
- translations: add Arabic Translations (#740) (38493f9)
- translations: add Farsi Translations (#760) (fe42cfe)
- add libmpv1 for ubuntu-based systems (#739) (5115e04)
- add xdg-user-dirs as deps (f3e331e)
- android : file_selector getDirectoryPath returns unusable content urls #720 (b3cf639)
- android: audio doesn't resume on interruption end (15d466a)
- android: system navigator back doesn't close player (20d7092)
- get rid of overflow errors & status bar dark color (5bb8231)
- keyboard shortcuts changing route but not update sidebar (2d93441)
- last track repeats (ed6ca00)
- minor glitches (e5d0aaf)
- not fetching all followed artists (#759) (c09a572)
- use audio_service_mpris plugin (e29cc25)
- valid non-ASCII characters get removed from downloaded file name #745 (a7e102f)
3.1.2 (2023-09-15)
- player_queue: filtering track support (d4f99ec)
- right click to open track option (1540999)
- search loading animation (b9d5c70)
- show loading indicator on play track (d12ea48)
- add missing dependency in debian package (#704) (c987ea7)
- hour not showing for tracks longer than 60 minutes (#648) (de335f4)
- liked tracks card play not working (d3e1cef)
- limit cover image upload to allowed 256kb size (1c50612)
- playlist grey page (#707) (0df8d9c)
- rewind breaks track progress bar (#695) (e321743)
- Windows memory leak due refetchOnStale user-liked-tracks (#705) (142dc49)
3.1.1 (2023-08-28)
- ability to toggle system title bar & custom title bar (#185) (8d46029)
- jump to specific time on lyric click (#590) (a14fb9e)
- paginated user albums (d239d64)
- translations: add Russian translation (#661) (e9a0911), closes #625
- translations: added Portuguese (Brazil) translation (#634) (76f30a0)
- always fetching SponsorBlock if no segments found & download failing (6ced0a0)
- debian bookworm invalid dependencies (633415d)
- disable android auto for playstore version :"( (0f0d240)
- infinite route push glitch (e90eceb)
- jump to track going to wrong track (190df17)
- last track of queue never plays & repeat playlist never works (c3c09f5)
- lyrics page text contrast (179d536)
- replace connectivity_plus with internet_connection_checker (f23e871)
- sanitize song title for file name (#644) (1a7ea0c)
- sorting by date crashes app (#551) (48e90a4)
- window size remains same after exiting mini player (#618) (fb36003)
3.1.0 (2023-08-18)
- add android auto media session control support (0f5748a)
- better track matching on youtube API (904a0d3)
- blazingly™ fast download manager (#619) (38dc4be)
- paginated user playlists (e7c6813)
- show error dialog on piped API 500 error (c69f81e)
- translation: add catalan translations (#621) (c94e5ba)
- translations: add polish translation (#631) (f90e9be)
- web compatibility (cf7b849)
- always showing play in playlist/album views (8521cc5)
- android: android 13 local tracks not showing up (e3f4344)
- default to youtube API by default (5a8a1e4)
- generate playlist page max width (4adf695)
- tracks doesn't change when ended (aa4ac86)
- windows media controls not working (ae5edd1)
3.0.1 (2023-08-04)
- Force High Refresh Rate on some Android devices (#607) (6dff099)
- translations: add spanish translations (#585) (042d7a4)
- translations: add Simplified Chinese translation. (#556) (26dbd52)
- alternative track source textfield safe area (b8c6d7e)
- avoid sponsor block for first few seconds to not break the stream (d8cf2ae)
- cache segments casting error (dfd60bd)
- duration is always zero in PlayerView (4885dca)
- flags not showing up and html in descriptions (5a563ef)
- linux: crash when no secret service provider found (#608) (888a4b1)
- login dialog stays after login, mention sp_gaid in tutorial (b492840)
- album_sync: negative index exception in update palette (#561) (0089d47)
- remove adaptive widgets (#520) (e4cbdd3)
- shuffle not working (#562) (dc76634)
- track not skipping to next even when source is available (0b7affd)
3.0.0 (2023-07-02)
- adaptive controllers (c8b7de0)
- adaptive popup and bottom sheet list widget (ddc1c5f)
- add generated to playlist(s) (c91d8c8)
- add german locale (ba3f428)
- add piped search mode (17a25a5)
- add sleep timer support (4a75f3d)
- adjust lyric page blurriness and player playbutton (54d5907)
- album art dominant color as accent color (#447) (31b9249)
- android: add splash screen (c232fcc)
- android: disable battery optimization for better playback (fe5b429)
- artist card redesign (92a418c)
- Better download manager with download progress (6752adc)
- better language picker, adaptive select tile and settings section contrast (6430a25)
- cache encryption for sensitive data (b110d83)
- color scheme picker dialog vertical list view instead of wrap (bb60b01)
- compact and adaptive playbutton card design (eeb8cab)
- compact button tabbar (67380f6)
- create a basic installer script (1763a36)
- curved navigation bar (776edf8)
- custom error toast (96f04c1)
- custom playlist generator (f4b0d13)
- desktop mini player support (471812d)
- desktop: close button for minimize notification (1688f99)
- desktop: show minimized to system tray notification (296f96c)
- disable/enable smtc on demand (7fa50e5)
- download button on each track (925fa86)
- enable caching of queue (ec11af5)
- heart button animation (8432dc6)
- improved track item API and UI (617aa89)
- installer: get latest version from Github API (957c085)
- local_tracks: delete local track (#484) (52835b2)
- locale category/genre title (88137f0)
- locale: add bengali translations for search page (a1cdbad)
- locale: localize search, library, lyrics, artist with both Bengali and English (11fe9ec)
- locale: player, playlist view, track tile bengali and english translations (c55133d)
- localize settings, about, login, player queue with Bengali and English translations (a5c36bb)
- logs page in settings (b78e7f5)
- macos title bar spacing and lyrics page margin separate (a0b3771)
- make snackbar floating (9dbb817)
- merge floating player with nav bar and nav bar translucent bg (a90261e)
- mini_player: remove window shadow (6259014)
- mini_player: show/hide UI on hover toggle (2e8b647)
- new sidebar widget and translucent bottom player (4ba1e70)
- newly released albums of user followed artist (33cb794)
- optimize image load + genre page and reduce page size of loaded categories (7131efa)
- persistent volume percentage (3724bd5)
- personal playlist recommendations (ae820a2)
- piped instance picker on settings (bed0d3b)
- platform specific title bar buttons (6267720)
- playback: integrate android, ios, macos with JustAudio (d487fe5)
- playback: use assets_audio_player to fix macos double duration problems and android high loading latency (1fff0f1)
- player details dialog and separate location of lyrics button in player page (ce38233)
- player: add playlist related methods to audio player (f1080e1)
- player: animated gradient background (49b5d0e)
- player: custom playlist implementation for media_kit to replace unpredictable playlist of mpv (eaf65b6)
- player: proper coloring of elements (b2c4ea1)
- player: replace bg blur with gradient, proper fg color and align title and artist name (159f03e)
- playlist create support for generated playlist (91c72f9)
- playlist generation all parameters support (9877d5f)
- playlist,album page: play and shuffle take full width on smaller screens, add new xs breakpoint (dce1b88)
- queue: add track(s) for playing next (#460) (cac8ea6)
- queue: reorder tracks support (441b43b)
- re-designed playlist/album page (0cedc7a)
- re-introduce youtube API along with piped (b54ee96)
- reactive volume slider and slicker bottom bar with lowered height (9d14517)
- remove SponsorBlock in favor of YT Music and remove pocketbase backend track support (fb780da)
- repeat button all 3 mode and disable player controls when track is fetching (1418378)
- replace YouTube API with piped API (1ecc36d)
- responsive playlist generate page and scrollable multi autocomplete (d57aad5)
- search alternative track source (dfea195)
- setup localization (l10n) and language switcher, add sidebar and navbar locale (f12d812)
- show album release year (#387) and fix layout of artist's album (6a6ddf6)
- show country code piped instance list (60328a6)
- show loading when track metadata is being fetched, android, ios, macos enable shuffling (bf59570)
- sort tracks by newest and oldest dates (b4713e3)
- supabase integration (8bcce92)
- system tray support (#31) (06a0437)
- track populate sibling support (3aeb026)
- translation: add hindi and french translations using ChatGPT (6d836bd)
- translation: add Japanase locale (4b52a71)
- use system color scheme (862c4b8)
- volume slider in player page (7abe2c1)
- windows OS media control panel support (f0b426a)
- add to playlist dialog not showing playlist name (8944581)
- album sync not working (74906f3)
- alternative track source not playing new source (a9b5a71)
- android: use multi assetAudioPlayer instance fix patch and disable Pre-download and play by default in Android too (cdb3268)
- artist: follower count shows as float when < 1000 (#482) (fd1846e)
- bottom navbar first item icon color not changing on primary color change (6eb4244)
- cached currently playing track infinite loading (9401718)
- cached queue tracks expired stream (ed29ab5)
- collection currently playing state persist on restart (1c89e3e)
- color not syncing and add new screenshot (6205501)
- content going below bottom player or nav bar (1bdce9f)
- disable background_downloader due to android build failures (7d23bee)
- disable play when loading track and buffering event (30c933c)
- error log (e3d8239)
- excessive repaints caused by Player progress bar (09b24cf)
- failed download no error icon (1266a3f)
- home: bottom player transparency (20c424c)
- language changer not working (7b7b1f2)
- less frequent position updates (0a49b56)
- linux mpris not showing up and overall media notification service (1abcad1)
- local tracks getting fetched on first load (73c012c)
- local tracks not working when there's a invalid music file in the folder (5855820)
- lyrics page blur in player and cut off text when line too big (6b4584e)
- macos build by removing media_kit native event loop (62fc773)
- macos build error, mobile player duration and playing state and background disposal of player (be91e33)
- macos,ios: use regular shared prefs (1b5bfec)
- memoize child of animated widget and make player bg animation faster (fcb5c8f)
- mini player not working in release mode (28ff321)
- mkPlayer: remove method and wrong active index on modifying playlist (3bafa7b)
- mobile audio notification not working (8f9303b)
- multiple instance of theme (4ec0424)
- navigation to settings not working (ce10aa1)
- no progress update when track changed (6ae8964)
- null exception on proxy playlist and audio player (a455a89)
- overflowing clickable artists links (4077fac)
- personalized playlists not loading (caa3408)
- playback not moving to next track after a track ends (27e8acb)
- player: gradient bg not taking full height (62ad86e)
- player: playback element placement (5e47faa)
- player: queue button not showing when not logged in (6c2d655)
- player: volume slider, prefetching of media_kit and stuttering on sponsorblock skip (1f32554)
- playlist generate slider shape (2b35c04)
- pop sheet list not scrollable (cca5625)
- re-enable add to queue and play next support, favorite button query exceptions (e529c79)
- re-enable download manager (ea45c4f)
- remove unnecessary broadcast stream conversions (bf04962)
- remove useBreakpoints as it clogs up memory with unnecessary state updates (e1c0f5c)
- replace download multiple pops and add translations (4a21249)
- screen breakpoints and persist lyrics delay across screens (df79638)
- sidebar task counter badge and bottom player play button progress color (af278d8)
- status bar color of playlist/album page (65fa3cb)
- system color scheme not persisting on restart when system color scheme changed (e04515d)
- track collection view status bar not transparent (9251121)
- track doesn't play after change (17e5ab6)
- track stops at last second (f554f6d)
- track_collection_view: keyboard focus on scroll and no space for search results in playlist/album (7a8bd92)
- track_table_view table headers (d88d287)
- track_tile active and blacklist color, playbutton card action positioning (3f5a1b9)
- use id based source getters instead of index (a074463)
2.7.1 (2023-04-10)
- fallback for lyrics when anonymous (f160ec7)
- android: audio notification stuck in play state (448c9b3)
- macos: crashing on startup (c46b428)
- spotify query hooks overriding default query params (ec9a02e)
2.7.0 (2023-03-07)
- add or remove track, playlist or album to queue support (b8f3493)
- basic command line argument support (025c1ae)
- black list artist or track (947c143)
- bring pre download on desktop, disable pre download for long videos (1d82bb0)
- category/genre filter (1dfec05)
- centralized icon collection with new icon set and nav bar labels hidden (e7acb9e)
- compact search bar for genres and user_local_tracks page (c343ccc)
- compatibility with fl-query nextPage method change (7617439)
- configure pocketbase, generate dart types, update playback to use server instead of hive cache (ad90c11)
- failsafe pocketbase requests, removal of unneeded preferences options & vertical playbutton actions (d68d150)
- home: personalized section (9080441)
- individual shuffle and repeat/loop button of player (f79223c)
- lyrics: use official spotify API for fetching lyrics and add zoom controls (10d0660)
- mobile: pull to refresh support in all refreshable list views (9f959ce)
- new logo and compact search in playlist/album in mobile (dc96cb3)
- search/filter tracks inside playlist or album (a06cd0d)
- show snackbar on adding playlist or tracks to queue (6bc1d32)
- theme: use material3 monet for colors and remove background color preference (60ede5f)
- use catcher to handle exceptions (84d94b0)
- use typed assets instead of hard coded paths (59561ab)
- user local tracks searchbar (e7f3f4e)
- user-library: filtering support for user albums and user artists (0b58155)
- user-library: search for user playlists (af4d56f)
- about: license text hidden in the bottom of smaller screen devices (e158dd0)
- about: wrong link of License (a4a7f1a)
- genre and sidebar user logo not loading (710f172)
- lyrics modal sheet out of safe area so use 80% of screen height instead of full (3db28f4)
- lyrics not changing on track change (c809d2d)
- lyrics not refetching when tracked changed while being in another page and sidebar user avatar not showing on startup (bd12675)
- macOS logo placement (c6a5d5f)
- mobile track collection search bar position and page_window_title_bar exception on mobile platforms (d0aaa97)
- play_overlay: show progress indicator on song loading (7803a48)
- playback: not skipping track's sponsorblock segments (60a5847)
- playbutton card play state not changing (ee46d09)
- playbutton_card: play and add to queue needs 2 clicks work (bdd7098)
- playbutton_card: play and non play state correction (b327ffb)
- playbutton_card: title text overflow (39ee0a9)
- playbutton: playing state is not updating when playlist is actually playing (9bad8c9)
- player_queue: large clear button and macos exception (0e43504)
- playlist_queue: load method not preserving the active track before filtering blacklisted tracks (42b3e11)
- pre downloading not working properly, audio service circular deps and sibling not loading for backend track (3ccb525)
- search track play button isn't working (0751f5e)
- search: grey screen, only tracks update on new search string, playlists,albums,artists show up before hitting return/submit (a774817)
- search: has to submit twice for search results (f5dc76a)
- titlebar maximize+restore button not working and less responsive title bar buttons (8a6ba3b)
- track_collection_view: hide search bar when sliver is collapsed (3d6d244)
- track_tile: cannot see track index above 99 (78b3273)
- track_tile: track action popup not showing on narrow screens (0c54f2d)
- ui: scaffold exception in fluent_ui (8ce2192)
- use chosen market for new release (c6bf9b6)
2.6.0 (2022-12-09)
- add selected tracks to playlists, optimistic playlist remove track (3386dac)
- added shuffle button in playlist and album section (1fad95f)
- android-playback: option to download track bytes and play instead of Streaming (dcc8ba5)
- change default platform option and platform specific back button (36c5e02)
- dialog logo for macos, settings more width for country picker (5e96913)
- initial platform_ui integration (9eee573)
- libadwaita theming, track tile and PlayButtonCard play button icon fix (e795e23)
- lyrics: tabs for both synced and static lyrics #182 (6b6907a)
- new refined about page, update checker only check for same update channel (4cadfa9)
- pause track when seeking forward/back and keep audio session alive when paused/interrupted (bc8a04e)
- platform bottom navigation bar add (ff14469)
- platform slider and progress indicator integration (46b00ba)
- platform title bar buttons add (54048cb)
- playback: change current track youtube source panel and tooltips for player icon buttons (4b21cc8)
- Player and Playbutton theme respect to platform (512446d)
- player queue and sibling tracks platform decoration (39a7794)
- PlayerView: shortcut button for opening lyrics #273 (1d4847a)
- rename files to snake_case and reorganize folder structure (7c25e1c)
- replace all types of buttons with platform buttons (69739b4)
- rpm packaging support (067e9ac)
- search: infinite scroll for tracks, artists, playlists and albums (e6761a6)
- set platform to default platform on start up (472da6b)
- shuffle keep playing track at top, linux title bar drag no working (1223cf2)
- sidebar download count and proper progress color in playbutton (a10bc5b)
- static shimmer for track tile, playbutton card and track tile (3ed8b0f)
- tablet mode navigation bar & windows semi transparent bg, (3282370)
- title_bar: platform specific title bar (e659e3c)
- titlebar complete compatibility, platform specific login, library tabbar in titlebar (b3c27d1)
- use platform checkbox (2211505)
- window blur effect add (b0db5e7)
- ArtistCard: linux shadow (c186881)
- auth: refresh access token timer not working (b3ac5ca)
- bottom navigation bar settings tile not active when selected (43557e4)
- dialog logo in android, lyrics visible timer adjust button (3c6803b)
- heart button showing when not logged in, wrong login redirect (4dc26af)
- horizontal infinite lists doesn't fill the screen (69995be)
- ios dialog action buttons, local tracks crashing app, shimmer color and android wrong status bar color (90c1200)
- login: not working in android in Brazil or Ukraine regions (0b79a11)
- macos: black text in dark mode (fb9c0e4)
- macos: white text color in dark mode, text field white background (e086b52)
- mobile: SafeArea bugs and back button color (a8330ef)
- null exception in themes (9465d92)
- platform_ui local path (00d0d38)
- player view artist link when local playlist is playing, lyric delay adjust button alignment (ee5c417)
- remove windows background (6942964)
- search field ios dark icon , lyrics tabbar ios background color (be56ad4)
- settings Title alignment and play button card ripple effect in other platforms (3b6bf27)
- shuffle play logic (65cad07)
- small minwidth of window in desktop, linux wrong light theme accent color, search field transparent background (5b0e22c)
- tooltips of menu and adaptive pop up menu (261aaf1)
- update download dialog blocking the UI (3925f74)
- user playlists not updating after creating/deleting, artist follow not updating after follow/unfollow (6cc2a18)
- windows: windows global title bar (bd18f19)
2.5.0 (2022-10-13)
- animated transition of root PageWindowTitleBar (ff35e06)
- auth: new authentication flow using cookies and webview in android (756b910)
- downloader: replace /skip all choice for downloaded tracks (88d7ce5)
- implemented go_route shell/nested route (3e498a4)
- keyboard shortcuts: play/pause on space, seek position on left/right (2734454)
- keyboard-shortcuts: home sidebar tab navigation and close app (8f258e7)
- smoother list using fl_query and waypoint (c77b0e1)
- sort tracks in playlist, album and local tracks (cb4bd25)
- use of smaller sized images in
TrackTile
(0ca97b4) - volume slider mouse scroll and preference for Rotating Album Art #255 (edb6f3c)
- android: file_picker and permission_handler failure for sdk < 33 (139d4dc)
- cached local track is fetched from network (abf4a57)
- categories not showing for oauth exception (4df917e)
- desktop: maximized window size is stored and window maximized state doesn't persist (91d5d10)
- local audio doesn't get refreshed after getting permission (618c6da)
- no appropriate output when playlist is empty #201 (dbb81de)
- PlayerOverlay not hiding when not playing and unneeded bottom space in TrackTableView (0ebac05)
- web: not building due to metadata_god ffi (1191bf2)
2.4.1 (2022-09-13)
- add macos audio metadata tags support (5866b0f)
- remove macos bounds for reading and writing audio metadata (16064f6)
- search: horizontal swipe scroll support for Desktop platform (d5ff927)
- artist-page: SpotubeMarqueeText used in ArtistCard crashes the app (4279541)
- layout: Fix adaptive UI not working correctly by providing a overriding option (8c7adde)
- local-track: throwing exception when downloadLocation is empty (1a3556d)
2.4.0 (2022-09-09)
- Ability to change download location added (816707c)
- add download multi tracks support for mobile platform (0476bf7)
- add download queue for desktop & initial playlist download support (08f913e)
- add download tab on library (8d77b69)
- add web support although nothing works just as expected (2818ed5)
- broken: Broken Warning! Initial Local Audio Player (c3bf511)
- download: track table view multi select improvement, tap to play track support, existing track replace confirmation dialog and bulk download confirmation dialog (e217553)
- local-tracks: complete support for local tracks (e206f16)
- mpris: MPRIS metadata are now updated in realtime (d9addcd)
- playback: add repeat track support #166 (cae9993)
- synced-lyrics: animated active text size (531fae6)
- ui: adaptive TrackTile actions & Setting ListTile (615d5ce)
- adaptive-list-tile: dialog content not updating when content has changed (a1d4230)
- album & playlist card, player view and album view play button logic (55852bd)
- docs: indentions (4a291d5)
- downloader: downloaded track is corrupted for tagging (2ab1fba)
- downloader: flutter downloader exception on desktop platform and too much width of TrackTile index no. (d668760)
- dropped flutter_downloader deps due to slow download speed and UserDownloads not showing for anonymous (307a8e2)
- flutter_downloader manifest configuration breaking android support (f3a0f78)
- login screen not using safearea and no dialog bg-color found on light mode in AdaptivePopupMenuButton (92bc611)
- performance: always running marquee text causes high GPU usage #175 and UserArtist overflow on smaller displays (a23ce61)
- playback: shuffle button sometimes gets stuck and stops working #183 (4240433)
- player-overlay: flickering when a track is changed or navigated to another page (e48b67c)
- sidebar: user image url (747efc6)
- synced-lyrics: active lyrics contrast ratio (aba1ba9)
- tabbar overflow in small screen, artist card too small title and synced lyrics contrast increased (585de8c)
- Playback Cache Support. So unfinished playlist and tracks remains cached & starts automatically when application is launched again
- Login Screen guided tutorial about how to obtain Client ID & Client Secret
- Signed Android Application so now longer need to uninstall the old version for installing the new one
- OS Media controls for Linux. Keyboard media keys now work in Linux
- New better, consistent & predictable Audio engine with proper event firing support (KRTirtho#131)
- Custom Lyrics delay time. Can be used to delay negative amount of time too
- Playback Queue View support. Currently playing tracks or playlist can be viewed or changed from it or for doing other actions too (KRTirtho#126)
- Android SeekBar support in Notification Panel & Lock Screen
- New Blur background design adapted to multiple components including Floating Player, Player View & Lyrics Tab
- New HighContrast Color Scheme addition which reduces battery consumption on OLED or AMOLED display devices (KRTirtho#137)
- Loading screens & animations. Now uses Skeleton Loading
- Playlist & Album Pages now show Album Art & extra metadata as Header with vibrant gradient background in a Sliver
- Playback is now more consistent & the API is simpler. Also its the single source of truth for AudioPlayback instead of the AudioServiceHandler
- Android Statusbar background color is now adaptive & less glitchy
- Home Genre playlists can be scrolled horizontally by dragging with mouse even in Desktop edition
- Track match Cache support for previously played tracks. This dramatically reduces track change latency & load on the YouTube search engine too
- API rate limits inside TrackTile for multiple Follow queries at once
- Player doesn't stop when Application is exits or closed
- First Track of Playlist doesn't load sometimes
- Download Button doesn't show done symbol when track is already saved (KRTirtho#138)
- Downloaded Music is 0kb sized when lyrics are downloaded alongside (KRTirtho#122)
- Page transitions defaulted to material you design
- Mini Player flickering on random state updates
- Track More Options not showing when not logged in
- Wrong link to Client ID & Client Secret tutorial in Login page
- Changing preferences in Settings resets the entire Playback
- Update checker
- Share options for playlists & track
- Android Skip to Next/Previous track from notification/lockscreen (KRTirtho#91)
- Custom Accent Color Scheme support (Dark + Light)
- Custom Background Color Scheme support (Dark + Light)
- User customizable Audio Quality Option
- User customizable Track Matching Algorithm Option
- Material 3 Design Language and Flutter 3.0
- Caching in Playlists, Album, Search, Playlist Categories, Artist Profile & Lyrics
- M1 Mac support via MacOS Universal Binary (untested) (KRTirtho#87)
- Authentication is now persistent (no more re-login)
- Settings Page. Shows application details in About Dialog
- Playlist Create Dialog Scrollable
- private playlists of current user aren't shown fix (KRTirtho#92)
- refresh token error causing re-login (culprit: internal lib spotify-dart)
- Typo in Login instructions URL
- Synced Lyrics (with fallback genius lyrics)
- Playlist create/delete
- Add/Remove tracks to own playlists
- Custom YouTube track search term template
- Downloading lyrics along with a track (can be toggled)
- Customize Marketplace location
- Spotify track to youtube track algorithm
- Genius lyrics matching algorithm
- Download track. Checks if already exists & replaces on user command
- Wide screen responsiveness & adaptation
- Bigger Title display (replaced word-break with Marquee Text for better visibility) (KRTirtho#47)
- Sequential playlist playback not working with latest webkit2gtk (KRTirtho#46)
- Theme modification state doesn't persist (KRTirtho#54)
- Wrong URI path for "Login with Spotify" tutorial (KRTirtho#69)
- Card shadow showing in the background of TitleBar & Searchbar
- Android Support KRTirtho#24
- Responsive UI (Mobile, Tablet)
- Anonymous/Guest Account
- Mini floating player
- Full page PlayerView for smaller devices
- Horizontal CategoryCard Scroll & pagination for quicker access to Playlists
- Bottom bar for smaller devices
- Collapsed Sidebar for medium sized devices
- Persists Volume level
- Android NavigationPanel controls (OS media controls of Android)
- Search - now scrolls & paginates for Playlists & Albums
- Authentication - allows guest accounts making authentication optional
- Lyrics - can be fetched without requiring GeniusAccessToken. This makes geniusAccessToken optional
- UI snappiness & faster load times
- Simpler logic, faster calculations & better caching (flutter_hooks)
- shared state management - uses riverpod & hooks combination
- Can't play any song in macos KRTirtho#23
- Downloaded tracks can't be played as they're WebAudio (.weba) instead of MP3
- delay while changing Playlist/Single tracks
- Global custom reconfigurable hotkey support for playback controls (play-pause/next/previous)
- Credit section in the Settings page with important links
- Macos support
- Genius (Lyrics Provider) access_token can be saved in the Login page too
- Better theme for dropdown-buttons
- broken authentication IPC on Mac OS (KRTirtho#18)
- Mac OS's global appmenu's default APP_NAME replaced with Spotube
- location of back button on macOS (KRTirtho#21)
- windows titlebar buttons appears on Mac OS
- genius access_token not loading on initial app start
- MacOS support KRTirtho#7
- Download currently playing track to
/home/<user>/Downloads/Spotube
(Linux, MacOS) orC:\Users\<user>\Downloads\Spotube
(Windows) - Play playlist from any song (index) instead of only the first track
- AlbumCard for showing album's metadata
- AlbumView aka show album tracks
- Play an album
- ArtistCard for showing artist metadata on the fly
- ArtistProfile for showing complete details of the artist
- Play artist's top tracks
- View Artist's "Fans also like" section
- Search page
- Play tracks from search result
- Click to open artist-profile/album everywhere in the application
- UserLibrary album & artist tab
- PlaylistView simplified layout with
ListView
instead ofTableView
- Control Theme from settings manually
PageWindowTitleBar
now acts asappBar
- Unsafe access to album art/artist/user Images with
.first
or.last
causing accessing empty List error url_launcher
's unstablecanLaunch
method blocks OAuth login in certain *nix OSs- Refresh token gets revoked & doesn't get renewed automatically
- Placeholder avatar for User section powered by dicebear.com
- No fallback/placeholder image causing undefined behavior (#2)
- Unsafe access to empty List with List.first/List.last
- Complete re-write in Flutter/Dart (799e13c)
- mpv & youtube-dl runtime dependencies dropped (07b1891)
- just_audio (libwinmedia + libwebkit2gtk-4.0-dev) + youtube_explode based playback & streaming
- lyrics are provided by genius.com (requires access_token) (d647d5e)
- inno_setup based windows/win32 GUI installer (dbf8a34)
- Lower RAM & CPU usage. 2x less RAM usage & 20% less CPU usage
- Faster playback & smooth track change with proper shuffling support
- Automatic Dark mode support (system)
- 54% smaller bundle size (after compression)
- Available through package managers in Linux (Debian, Arch, Flatpak & AppImage)
- Automated installer for Windows (now doesn't require manual mpv-player install)
- Playback caching
- Retry button for ManualLyricDialog
- Support for downloading track
- Redirect to youtube video by clicking on the title of the track
- Inapp Shortcuts.Now it doesn't interfere while typing in a input box in Search page
- Cached image didn't get deleted after exiting certain cache limit fix. Cache gets recreated after exiting the limit
- Lyric Seek
- Support for images in playlist cards
- Infinite Query/Pagination support for Home & Genre pages
- Settings for configuring local configuration
- Home Page Layout. Fixes the jiggering of Playlist Links on hover
access_token not found
Error after OAuth Login with Spotify credentials (used to need a restart of the app to load the access_token)- Volume level wasn't cached even after changing volume
Spotube v0.0.1 - initial release of the open source software for playing Spotify music using Youtube public API
- Local playback handling
- Playback Queue
- Save to Liked Tracks/Playlists
- Bypass API rate limitation on basic usage using personal developer Apps for spotify API
- Youtube search & get handled using scrape-yt