mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-11-04 10:13:59 +00:00
Merge branch 'master' into dev
This commit is contained in:
commit
9bb80ebb47
35
.vscode/settings.json
vendored
35
.vscode/settings.json
vendored
@ -1,4 +1,37 @@
|
|||||||
{
|
{
|
||||||
"gradle.autoDetect": "off",
|
"gradle.autoDetect": "off",
|
||||||
"java.gradle.buildServer.enabled": "off"
|
"java.gradle.buildServer.enabled": "off",
|
||||||
|
"cmake.configureOnOpen": false,
|
||||||
|
"cSpell.words": [
|
||||||
|
"acousticness",
|
||||||
|
"ambiguate",
|
||||||
|
"Amoled",
|
||||||
|
"Buildless",
|
||||||
|
"configurators",
|
||||||
|
"danceability",
|
||||||
|
"fuzzywuzzy",
|
||||||
|
"gapless",
|
||||||
|
"instrumentalness",
|
||||||
|
"isrc",
|
||||||
|
"Mpris",
|
||||||
|
"RGBO",
|
||||||
|
"riverpod",
|
||||||
|
"Scrobblenaut",
|
||||||
|
"shadcn",
|
||||||
|
"skeletonizer",
|
||||||
|
"songlink",
|
||||||
|
"speechiness",
|
||||||
|
"Spotube",
|
||||||
|
"titlebar",
|
||||||
|
"winget"
|
||||||
|
],
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"explorer.fileNesting.enabled": true,
|
||||||
|
"explorer.fileNesting.patterns": {
|
||||||
|
"pubspec.yaml": "pubspec.lock,analysis_options.yaml,.packages,.flutter-plugins,.flutter-plugins-dependencies,flutter_launcher_icons*.yaml,flutter_native_splash*.yaml",
|
||||||
|
"README.md": "LICENSE,CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md,CONTRIBUTION.md,CHANGELOG.md,PRIVACY_POLICY.md",
|
||||||
|
"*.dart": "${capture}.g.dart,${capture}.freezed.dart"
|
||||||
|
},
|
||||||
|
"dart.flutterSdkPath": ".fvm/versions/3.35.2",
|
||||||
|
"makefile.configureOnOpen": false
|
||||||
}
|
}
|
||||||
54
CHANGELOG.md
54
CHANGELOG.md
@ -23,6 +23,8 @@
|
|||||||
- **playback**: Add dab music source
|
- **playback**: Add dab music source
|
||||||
- **playback**: Add uncompressed flac playback support
|
- **playback**: Add uncompressed flac playback support
|
||||||
- Add plugin audio source models and api service
|
- Add plugin audio source models and api service
|
||||||
|
- **plugins**: Filter plugins by abilities in plugins page and show abilities as
|
||||||
|
badge
|
||||||
- **plugins**: Filter plugins by abilities in plugins page and show abilities as
|
- **plugins**: Filter plugins by abilities in plugins page and show abilities as
|
||||||
badge
|
badge
|
||||||
- Add setting default audio source support
|
- Add setting default audio source support
|
||||||
@ -54,6 +56,8 @@
|
|||||||
- **metadata-plugin**: Add pagination support, feed and playlist CRUD endpoints
|
- **metadata-plugin**: Add pagination support, feed and playlist CRUD endpoints
|
||||||
- **metadata-plugin**: Add local storage api
|
- **metadata-plugin**: Add local storage api
|
||||||
- Add webview, totp and setInterval apis for plugins
|
- Add webview, totp and setInterval apis for plugins
|
||||||
|
- Enhance local storage and webview APIs with improved error handling and
|
||||||
|
resource management
|
||||||
- Enhance local storage and webview APIs with improved error handling and
|
- Enhance local storage and webview APIs with improved error handling and
|
||||||
resource management
|
resource management
|
||||||
- **metadata_plugin**: Add logout method
|
- **metadata_plugin**: Add logout method
|
||||||
@ -92,6 +96,8 @@
|
|||||||
- Local track not working and images of local not showing up
|
- Local track not working and images of local not showing up
|
||||||
- Local playback not working for tracks with special # (hashtag) characters
|
- Local playback not working for tracks with special # (hashtag) characters
|
||||||
- Inaccessible streaming url causing rapid skips
|
- Inaccessible streaming url causing rapid skips
|
||||||
|
- **yt**: Fallback to different search result if all streaming url is
|
||||||
|
inaccessible
|
||||||
- **yt**: Fallback to different search result if all streaming url is
|
- **yt**: Fallback to different search result if all streaming url is
|
||||||
inaccessible
|
inaccessible
|
||||||
- **playback**: Skip network requests if cached file already exists
|
- **playback**: Skip network requests if cached file already exists
|
||||||
@ -124,6 +130,10 @@
|
|||||||
- **android**: navigation overlaying in app navigation
|
- **android**: navigation overlaying in app navigation
|
||||||
- add to playlist not working in smaller screen devices
|
- add to playlist not working in smaller screen devices
|
||||||
- language picker search broken
|
- language picker search broken
|
||||||
|
- **generate_playlist**: create playlist not adding tracks nor navigating to
|
||||||
|
playlist page
|
||||||
|
- **desktop**: double titlebar in local library folders and massive space in
|
||||||
|
overlay player
|
||||||
- **generate_playlist**: create playlist not adding tracks nor navigating to
|
- **generate_playlist**: create playlist not adding tracks nor navigating to
|
||||||
playlist page
|
playlist page
|
||||||
- **desktop**: double titlebar in local library folders and massive space in
|
- **desktop**: double titlebar in local library folders and massive space in
|
||||||
@ -154,6 +164,8 @@
|
|||||||
- youtube source taking too long to buffer
|
- youtube source taking too long to buffer
|
||||||
- youtube tracks keeps skipping despite being matched correctly
|
- youtube tracks keeps skipping despite being matched correctly
|
||||||
- follow artist not working #2057
|
- follow artist not working #2057
|
||||||
|
- youtube_explode_dart failing for many videos due to youtube ios client visitor
|
||||||
|
data change
|
||||||
- youtube_explode_dart failing for many videos due to youtube ios client visitor
|
- youtube_explode_dart failing for many videos due to youtube ios client visitor
|
||||||
data change
|
data change
|
||||||
- piped api not working
|
- piped api not working
|
||||||
@ -180,6 +192,10 @@
|
|||||||
#2039
|
#2039
|
||||||
- **mobile**: ensure audio session is activated when playback is resumed after
|
- **mobile**: ensure audio session is activated when playback is resumed after
|
||||||
interruption #2092
|
interruption #2092
|
||||||
|
- selecting an Alternative Track Source removes the current song from the queue
|
||||||
|
#2039
|
||||||
|
- **mobile**: ensure audio session is activated when playback is resumed after
|
||||||
|
interruption #2092
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
@ -215,11 +231,15 @@
|
|||||||
- **translations**: correct some basque incorrect translations (#1815)
|
- **translations**: correct some basque incorrect translations (#1815)
|
||||||
- **lyrics**: LRCLIB lyrics should be usable without logging in #1803
|
- **lyrics**: LRCLIB lyrics should be usable without logging in #1803
|
||||||
- playlist displaying descriptions unescaped html #1784
|
- playlist displaying descriptions unescaped html #1784
|
||||||
|
- **android**: pressing back while the player is open doesn't take to previous
|
||||||
|
page
|
||||||
- **android**: pressing back while the player is open doesn't take to previous
|
- **android**: pressing back while the player is open doesn't take to previous
|
||||||
page
|
page
|
||||||
- handle dublicated items in playback queue correctly #1852
|
- handle dublicated items in playback queue correctly #1852
|
||||||
- **desktop**: scrollbar overlapping with more options of tracks and playlists
|
- **desktop**: scrollbar overlapping with more options of tracks and playlists
|
||||||
- **discord**: stop discord rpc from try update presence when not connected
|
- **discord**: stop discord rpc from try update presence when not connected
|
||||||
|
- **stats**: minutes page shows plays and streams page shows minutes which
|
||||||
|
should be the opposite #1880
|
||||||
- **stats**: minutes page shows plays and streams page shows minutes which
|
- **stats**: minutes page shows plays and streams page shows minutes which
|
||||||
should be the opposite #1880
|
should be the opposite #1880
|
||||||
- **android**: clears queue upon swiping away notification
|
- **android**: clears queue upon swiping away notification
|
||||||
@ -1655,9 +1675,13 @@
|
|||||||
|
|
||||||
### New
|
### New
|
||||||
|
|
||||||
|
- Playback Cache Support. So unfinished playlist and tracks remains cached &
|
||||||
|
starts automatically when application is launched again
|
||||||
- Playback Cache Support. So unfinished playlist and tracks remains cached &
|
- Playback Cache Support. So unfinished playlist and tracks remains cached &
|
||||||
starts automatically when application is launched again
|
starts automatically when application is launched again
|
||||||
- Login Screen guided tutorial about how to obtain Client ID & Client Secret
|
- 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
|
||||||
- Signed Android Application so now longer need to uninstall the old version for
|
- Signed Android Application so now longer need to uninstall the old version for
|
||||||
installing the new one
|
installing the new one
|
||||||
- OS Media controls for Linux. Keyboard media keys now work in Linux
|
- OS Media controls for Linux. Keyboard media keys now work in Linux
|
||||||
@ -1677,6 +1701,10 @@
|
|||||||
### Improved
|
### Improved
|
||||||
|
|
||||||
- Loading screens & animations. Now uses Skeleton Loading
|
- 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
|
||||||
- Playlist & Album Pages now show Album Art & extra metadata as Header with
|
- Playlist & Album Pages now show Album Art & extra metadata as Header with
|
||||||
vibrant gradient background in a Sliver
|
vibrant gradient background in a Sliver
|
||||||
- Playback is now more consistent & the API is simpler. Also its the single
|
- Playback is now more consistent & the API is simpler. Also its the single
|
||||||
@ -1686,6 +1714,10 @@
|
|||||||
in Desktop edition
|
in Desktop edition
|
||||||
- Track match Cache support for previously played tracks. This dramatically
|
- Track match Cache support for previously played tracks. This dramatically
|
||||||
reduces track change latency & load on the YouTube search engine too
|
reduces track change latency & load on the YouTube search engine too
|
||||||
|
- 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
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
@ -1790,6 +1822,8 @@
|
|||||||
|
|
||||||
- Search - now scrolls & paginates for Playlists & Albums
|
- Search - now scrolls & paginates for Playlists & Albums
|
||||||
- Authentication - allows guest accounts making authentication optional
|
- Authentication - allows guest accounts making authentication optional
|
||||||
|
- Lyrics - can be fetched without requiring GeniusAccessToken. This makes
|
||||||
|
geniusAccessToken optional
|
||||||
- Lyrics - can be fetched without requiring GeniusAccessToken. This makes
|
- Lyrics - can be fetched without requiring GeniusAccessToken. This makes
|
||||||
geniusAccessToken optional
|
geniusAccessToken optional
|
||||||
- UI snappiness & faster load times
|
- UI snappiness & faster load times
|
||||||
@ -1806,6 +1840,8 @@
|
|||||||
|
|
||||||
### New
|
### New
|
||||||
|
|
||||||
|
- Global custom reconfigurable _hotkey_ support for playback controls
|
||||||
|
(play-pause/next/previous)
|
||||||
- Global custom reconfigurable _hotkey_ support for playback controls
|
- Global custom reconfigurable _hotkey_ support for playback controls
|
||||||
(play-pause/next/previous)
|
(play-pause/next/previous)
|
||||||
- Credit section in the Settings page with important links
|
- Credit section in the Settings page with important links
|
||||||
@ -1853,6 +1889,10 @@
|
|||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
||||||
|
- Unsafe access to album art/artist/user Images with `.first` or `.last` causing
|
||||||
|
accessing empty List error
|
||||||
|
- `url_launcher`'s unstable `canLaunch` method blocks OAuth login in certain
|
||||||
|
\*nix OSs
|
||||||
- Unsafe access to album art/artist/user Images with `.first` or `.last` causing
|
- Unsafe access to album art/artist/user Images with `.first` or `.last` causing
|
||||||
accessing empty List error
|
accessing empty List error
|
||||||
- `url_launcher`'s unstable `canLaunch` method blocks OAuth login in certain
|
- `url_launcher`'s unstable `canLaunch` method blocks OAuth login in certain
|
||||||
@ -1876,6 +1916,8 @@
|
|||||||
|
|
||||||
- Complete re-write in Flutter/Dart (799e13c)
|
- Complete re-write in Flutter/Dart (799e13c)
|
||||||
- mpv & youtube-dl runtime dependencies dropped (07b1891)
|
- mpv & youtube-dl runtime dependencies dropped (07b1891)
|
||||||
|
- just_audio (libwinmedia + libwebkit2gtk-4.0-dev) + youtube_explode based
|
||||||
|
playback & streaming
|
||||||
- just_audio (libwinmedia + libwebkit2gtk-4.0-dev) + youtube_explode based
|
- just_audio (libwinmedia + libwebkit2gtk-4.0-dev) + youtube_explode based
|
||||||
playback & streaming
|
playback & streaming
|
||||||
- lyrics are provided by genius.com (requires access_token) (d647d5e)
|
- lyrics are provided by genius.com (requires access_token) (d647d5e)
|
||||||
@ -1893,6 +1935,8 @@
|
|||||||
|
|
||||||
### New
|
### New
|
||||||
|
|
||||||
|
- Automated installer for Windows (now doesn't require manual mpv-player
|
||||||
|
install)
|
||||||
- Automated installer for Windows (now doesn't require manual mpv-player
|
- Automated installer for Windows (now doesn't require manual mpv-player
|
||||||
install)
|
install)
|
||||||
- Playback caching
|
- Playback caching
|
||||||
@ -1902,11 +1946,15 @@
|
|||||||
|
|
||||||
### Improved
|
### Improved
|
||||||
|
|
||||||
|
- Inapp Shortcuts.Now it doesn't interfere while typing in a input box in Search
|
||||||
|
page
|
||||||
- Inapp Shortcuts.Now it doesn't interfere while typing in a input box in Search
|
- Inapp Shortcuts.Now it doesn't interfere while typing in a input box in Search
|
||||||
page
|
page
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
||||||
|
- Cached image didn't get deleted after exiting certain cache limit fix. Cache
|
||||||
|
gets recreated after exiting the limit
|
||||||
- Cached image didn't get deleted after exiting certain cache limit fix. Cache
|
- Cached image didn't get deleted after exiting certain cache limit fix. Cache
|
||||||
gets recreated after exiting the limit
|
gets recreated after exiting the limit
|
||||||
|
|
||||||
@ -1925,12 +1973,16 @@
|
|||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
|
- `access_token not found` Error after OAuth Login with Spotify credentials
|
||||||
|
(used to need a restart of the app to load the access_token)
|
||||||
- `access_token not found` Error after OAuth Login with Spotify credentials
|
- `access_token not found` Error after OAuth Login with Spotify credentials
|
||||||
(used to need a restart of the app to load the access_token)
|
(used to need a restart of the app to load the access_token)
|
||||||
- Volume level wasn't cached even after changing volume
|
- Volume level wasn't cached even after changing volume
|
||||||
|
|
||||||
# v0.0.1
|
# v0.0.1
|
||||||
|
|
||||||
|
Spotube v0.0.1 - initial release of the open source software for playing Spotify
|
||||||
|
music using Youtube public API
|
||||||
Spotube v0.0.1 - initial release of the open source software for playing Spotify
|
Spotube v0.0.1 - initial release of the open source software for playing Spotify
|
||||||
music using Youtube public API
|
music using Youtube public API
|
||||||
|
|
||||||
@ -1939,6 +1991,8 @@ music using Youtube public API
|
|||||||
- Local playback handling
|
- Local playback handling
|
||||||
- Playback Queue
|
- Playback Queue
|
||||||
- Save to Liked Tracks/Playlists
|
- Save to Liked Tracks/Playlists
|
||||||
|
- Bypass API rate limitation on basic usage using personal developer Apps for
|
||||||
|
spotify API
|
||||||
- Bypass API rate limitation on basic usage using personal developer Apps for
|
- Bypass API rate limitation on basic usage using personal developer Apps for
|
||||||
spotify API
|
spotify API
|
||||||
- Youtube search & get handled using scrape-yt
|
- Youtube search & get handled using scrape-yt
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user