Compare commits

..

197 Commits

Author SHA1 Message Date
Kingkor Roy Tirtho
a8f70f201e
Merge pull request #2772 from KRTirtho/dev
Release v5.0.0
2025-09-11 22:42:36 +06:00
Kingkor Roy Tirtho
b8ecd758cf chore: fix plugin import not working inside flatpak 2025-09-11 22:36:02 +06:00
Kingkor Roy Tirtho
70970f62f1 chore: fix connect play playlist/album and clear queue not working 2025-09-11 21:52:43 +06:00
Kingkor Roy Tirtho
4ed40d95b2 chore: remove print 2025-09-09 21:18:54 +06:00
Kingkor Roy Tirtho
b24dcd2951 chore: show loading indicator for alternative sourced track 2025-09-09 21:18:10 +06:00
Kingkor Roy Tirtho
8ff90bafd7 chore: fix not alternative source not working 2025-09-09 21:09:45 +06:00
Kingkor Roy Tirtho
9190af92ef chore: fix shuffling not working 2025-09-09 20:54:22 +06:00
Kingkor Roy Tirtho
151a440e7e chore: bump version to v5 and generate changelogs 2025-09-09 00:51:09 +06:00
Kingkor Roy Tirtho
9471e008e3 fix(ui): lyrics white text in white background and small player buttons 2025-09-09 00:45:45 +06:00
Kingkor Roy Tirtho
ecc0bdcc42 chore: slate color by default 2025-09-09 00:13:43 +06:00
Kingkor Roy Tirtho
49c04af302 chore: add translation attribute for conventional-commit 2025-09-08 23:47:55 +06:00
Kingkor Roy Tirtho
afe0bea306 docs: add updated screenshots 2025-09-08 22:50:06 +06:00
Stephan Paternotte
eadf2d928f
translation: correction of the dutch language (#1306)
Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-09-08 20:10:03 +06:00
Richard Hajek
a299a97ca4
doc: compilation with fvm (#2254)
* doc: compilation with fvm

* Update bootstrap command in CONTRIBUTION.md

Removed the 'enable-experiment=records,patterns' option from the build_runner command.

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-09-08 20:06:03 +06:00
Kingkor Roy Tirtho
cbbd0a2b40 chore: update podfile 2025-09-08 19:42:48 +06:00
Kingkor Roy Tirtho
216fdadf25 chore: fix dependency issues 2025-09-08 16:45:55 +06:00
Lorenzo
3599a4340f
docs: Removed Google Play Store link from readme file (#2638)
* Update README.md

* Update README.md

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-09-08 16:34:37 +06:00
Kingkor Roy Tirtho
719229b2b7 chore: add gap between metadata plugin 2025-09-08 16:30:10 +06:00
Kingkor Roy Tirtho
49db82083c chore: add support for language dialects 2025-09-08 16:29:05 +06:00
maboroshin
84f119e482
translation: fix Japanese translations (#2732)
Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-09-08 16:15:07 +06:00
SamHacker
aeb8caf059
translation: add Traditional Chinese translation (#2762)
* add: Add the translation file for Chinese Traditional

* i18n: fix wrong translation in Chinese Simpfied

* i18n: Finish the translation in Chinese Traditional file

* i18n: Add Traditional Chinese locale support

* i18n: Add Traditional Chinese language code

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-09-08 16:11:54 +06:00
Kingkor Roy Tirtho
7c4956153a chore: allow for any libjsoncpp 2025-09-08 16:04:23 +06:00
Kingkor Roy Tirtho
58dc80aa09 fix(playback): alternative track sources switch not working 2025-09-08 15:31:29 +06:00
Kingkor Roy Tirtho
4a07945214 fix(track_options): tapping on option doesn't close the menu 2025-09-08 14:27:29 +06:00
Kingkor Roy Tirtho
7b21eca37b fix(playback): play not fetching full playlist if playlist is too long 2025-09-08 14:09:16 +06:00
Kingkor Roy Tirtho
43ddf90c48 docs: remove legal notice warning 2025-09-07 20:36:32 +06:00
Kingkor Roy Tirtho
878a441a9f fix: windows webview2 environment permission issue 2025-09-06 22:32:41 +06:00
Kingkor Roy Tirtho
90493f0ea3 chore: add changelog generator config 2025-09-06 00:40:33 +06:00
Kingkor Roy Tirtho
db22b4fcce chore: syntax errors 2025-09-05 23:39:07 +06:00
Kingkor Roy Tirtho
0d6d482630 chore: build runner error 2025-09-05 23:33:55 +06:00
Kingkor Roy Tirtho
a4162dc2ad chore: upgrade drift schema for new plugin metadata fields 2025-09-05 22:52:06 +06:00
Kingkor Roy Tirtho
469a76dbd6 fix: yt-dlp playback not working and add partial support for HLS streaming 2025-09-05 22:40:18 +06:00
Kingkor Roy Tirtho
6940e92142 chore: system tray icon and pagination not working 2025-09-05 21:16:24 +06:00
Kingkor Roy Tirtho
4d57b134a3 cd: use xcode 16.2 2025-09-05 20:01:33 +06:00
Kingkor Roy Tirtho
a370166576 chore: add metadata plugin version 2025-09-05 18:47:46 +06:00
Kingkor Roy Tirtho
69d50eec35 chore: fix artist top tracks play button not showing loading indicator 2025-09-05 17:53:06 +06:00
Kingkor Roy Tirtho
2e48ac380b chore(translation): update missing translations 2025-09-05 17:31:09 +06:00
Kingkor Roy Tirtho
d22b5349a3 chore: fix pagination not working 2025-09-05 17:06:12 +06:00
Kingkor Roy Tirtho
83172f198c chore: fix saving/removing tracks, albums, artists and playlists from library not working 2025-09-05 16:57:29 +06:00
Kingkor Roy Tirtho
f870e12011 fix(playback): skip network requests if cached file already exists 2025-09-05 11:03:56 +06:00
Kingkor Roy Tirtho
345c6ac714 chore: fix pagination for liked tracks and saved albums not working 2025-09-05 10:50:14 +06:00
Kingkor Roy Tirtho
005355e267 chore(translation): add l10n support for new metadata plugin pages 2025-09-03 18:45:38 +06:00
Kingkor Roy Tirtho
aee2c9282d chore: avoid checking stream accessibility all the time
Only check stream accessible or not when first time it fails or gets blocked
2025-09-03 17:31:38 +06:00
Kingkor Roy Tirtho
ea329f40e8 fix(yt): fallback to different search result if all streaming url is inaccessible 2025-09-02 20:56:28 +06:00
Kingkor Roy Tirtho
b248f90403 chore: remove log in TrackSourceQuery.parseUri 2025-09-02 20:10:43 +06:00
Kingkor Roy Tirtho
e2c0ddef24 fix: inaccessible streaming url causing rapid skips
Now it filters the inaccessible streaming urls out so weird stuff won't happen
2025-09-02 20:10:02 +06:00
Kingkor Roy Tirtho
2a0853026a fix: local playback not working for tracks with special # (hashtag) characters 2025-08-31 00:45:29 +06:00
Kingkor Roy Tirtho
dddaa5a964 chore: upgrade new pipe extractor 2025-08-30 23:40:48 +06:00
Kingkor Roy Tirtho
412f3dd81c chore: optimize assets and app size 2025-08-29 17:33:54 +06:00
Kingkor Roy Tirtho
7f30ae8d31 chore: disable caching of plugin download file 2025-08-29 15:05:29 +06:00
Kingkor Roy Tirtho
c0d50d441e fix: use plugin author and name as slug 2025-08-29 14:56:24 +06:00
Kingkor Roy Tirtho
66cae6c7ac chore: upgrade Flutter version 2025-08-29 13:08:28 +06:00
Kingkor Roy Tirtho
308c417ed3 cd: use macos 14 instead 15 2025-08-25 19:27:18 +06:00
Kingkor Roy Tirtho
0823629fb5 chore: upgrade dependencies 2025-08-23 10:07:41 +06:00
Kingkor Roy Tirtho
7037145519 feat: add ErrorBox and NoDefaultMetadataPlugin components
- Implemented ErrorBox for displaying error messages with retry functionality and log viewing.
- Created NoDefaultMetadataPlugin to inform users about missing default metadata providers and provide navigation to manage them.
2025-08-19 22:34:37 +06:00
Kingkor Roy Tirtho
08d1c98674 refactor: move scrobbler to their own place 2025-08-19 20:22:48 +06:00
Kingkor Roy Tirtho
c0dcc87eb2 chore: upgrade hetu_spotube_plugin 2025-08-19 19:07:37 +06:00
Kingkor Roy Tirtho
b4f8d2dfbf chore: upgrade packages 2025-08-18 20:13:49 +06:00
Kingkor Roy Tirtho
48490cf168 chore(windows): fix Runner.rc not getting version information 2025-08-16 19:01:47 +06:00
Kingkor Roy Tirtho
ea7138e95b chore: remove print 2025-08-16 16:41:11 +06:00
Kingkor Roy Tirtho
5add53e269 fix: local track not working and images of local not showing up 2025-08-16 16:11:04 +06:00
Kingkor Roy Tirtho
c615d48e27 Merge branch 'astro-website' into website 2025-08-15 21:06:37 +06:00
Kingkor Roy Tirtho
92c05a51e1 website: migrate to astro and add plugin docs 2025-08-15 21:06:33 +06:00
Kingkor Roy Tirtho
71bcf355ec website: add back warning 2025-08-15 20:48:29 +06:00
Kingkor Roy Tirtho
089a3445a1 website: add SEO metadata 2025-08-15 20:43:12 +06:00
Kingkor Roy Tirtho
dbba55606b website: fix astro not compiling because it can't detect server-side component 2025-08-15 19:21:40 +06:00
Kingkor Roy Tirtho
a2894db652 website: add ads and mobile screen adaptability 2025-08-15 13:49:41 +06:00
Kingkor Roy Tirtho
edcd784335 website: update button styles and enhance background in global CSS 2025-08-15 11:19:43 +06:00
Kingkor Roy Tirtho
0a153fe770 docs: fix invalid links and redirection 2025-08-14 22:29:12 +06:00
Kingkor Roy Tirtho
3f18f35c0b docs: add search bar and libraries page 2025-08-14 22:20:09 +06:00
Kingkor Roy Tirtho
30fd4acf37 docs: add plugin API docs 2025-08-14 21:21:09 +06:00
Kingkor Roy Tirtho
0e34057794 docs: merge some endpoints together to reduce too much elements on the side bar 2025-08-14 20:19:16 +06:00
Kingkor Roy Tirtho
032309a2c6 feat: enhance markdown configuration and styling with rehype plugins and update global styles 2025-08-14 15:10:14 +06:00
Kingkor Roy Tirtho
858cbd17ad docs: update model documentation and add new model files for Spotube objects 2025-08-14 14:10:04 +06:00
Kingkor Roy Tirtho
fbd7b771ef docs: add detailed documentation for BrowseEndpoint, CoreEndpoint, and SearchEndpoint 2025-08-14 09:55:28 +06:00
Kingkor Roy Tirtho
8bdbe7dfba docs: add detailed documentation for plugin endpoints and methods 2025-08-14 09:25:13 +06:00
Kingkor Roy Tirtho
b3f6824a94 docs: add plugin create guide 2025-08-11 21:03:28 +06:00
Kingkor Roy Tirtho
7bb69c02de website: write into and sidebar and developing plugins pages 2025-08-08 23:54:00 +06:00
Kingkor Roy Tirtho
a734ded6f8 website: add documentation structure and navigation components 2025-08-04 21:25:24 +06:00
Kingkor Roy Tirtho
f228937e3e website: hide older releases before 4.0.2 2025-08-04 13:06:44 +06:00
Kingkor Roy Tirtho
ee7d0cfeb5 website: markdown mdx support and wrap up other pages 2025-08-04 13:04:22 +06:00
Kingkor Roy Tirtho
7a630507fb website: add downloads pages 2025-08-04 12:45:28 +06:00
Kingkor Roy Tirtho
dffd494d4a Revert "website: remove vercel trashes"
This reverts commit 49e2d1b759.
2025-08-02 22:51:25 +06:00
Kingkor Roy Tirtho
49e2d1b759 website: remove vercel trashes 2025-08-02 22:50:20 +06:00
Kingkor Roy Tirtho
fd3ddfece9 Merge branch 'dev' into website 2025-08-02 20:05:00 +06:00
Kingkor Roy Tirtho
2bb91feb34
Merge pull request #2746 from KRTirtho/code-greedy-green-corp-removal
Code greedy green corp removal
2025-08-02 20:01:33 +06:00
Kingkor Roy Tirtho
eb3fcfdd6f chore: add animation for browse sections loadingb 2025-08-01 23:28:54 +06:00
Kingkor Roy Tirtho
066fe2a326 fix: create and delete playlist not working 2025-08-01 22:39:15 +06:00
Kingkor Roy Tirtho
93d6e0642b chore: improve image display by adding rounded corners to plugin logos 2025-08-01 22:19:47 +06:00
Kingkor Roy Tirtho
1e61bca1e9 feat: add plugin scrobbling support and support button 2025-08-01 22:18:29 +06:00
Kingkor Roy Tirtho
3bb7f0d78f refactor: change updater to core 2025-08-01 14:48:42 +06:00
Kingkor Roy Tirtho
75bdbeccc0 chore: fix track options causing track page exception 2025-07-25 14:51:30 +06:00
Kingkor Roy Tirtho
846fa679f6 chore: fix changing default plugin doesn't wortk 2025-07-23 21:38:10 +06:00
Kingkor Roy Tirtho
3a5ddd6214 feat: optimize track options and related artists 2025-07-23 17:34:05 +06:00
Kingkor Roy Tirtho
3b21b05fdc chore: fix SliverLayoutBuilder rebuilds too much 2025-07-22 17:37:52 +06:00
Kingkor Roy Tirtho
53ef9e15e1 fix: make YoutubeExplode engine faster 2025-07-22 16:34:56 +06:00
Kingkor Roy Tirtho
7309e900bc feat(metadata): add plugin update checker and dialog for available updates 2025-07-22 00:11:20 +06:00
Kingkor Roy Tirtho
c9556c2ecb chore: fix playback issues 2025-07-21 18:49:23 +06:00
Kingkor Roy Tirtho
efdf091894 fix(android): NewPipe invalid search content filters 2025-07-20 21:46:05 +06:00
Kingkor Roy Tirtho
92dde7286f chore: SafeArea 2025-07-20 21:22:37 +06:00
Kingkor Roy Tirtho
0a604a9ad5 chore: fix queue order 2025-07-19 21:39:31 +06:00
Kingkor Roy Tirtho
cfda46e07e chore: fix saving tracks not working 2025-07-19 14:03:22 +06:00
Kingkor Roy Tirtho
60f032039f fix: endless playback not working 2025-07-19 13:58:05 +06:00
Kingkor Roy Tirtho
d2e0dc1ac9 chore: re-enable endless playback 2025-07-19 11:56:51 +06:00
Kingkor Roy Tirtho
3e7b36f4e6 feat: update new pipe version 2025-07-18 16:47:53 +06:00
Kingkor Roy Tirtho
cdc64e4bb0 feat: Add repository and plugin API version fields to metadata plugins
- Updated database schema to include `repository` and `pluginApiVersion` columns in the `MetadataPluginsTable`.
- Modified `PluginConfiguration` model to include new fields for `repository` and `pluginApiVersion`.
- Enhanced JSON serialization and deserialization for the new fields in `PluginConfiguration`.
- Refactored `SettingsMetadataProviderPage` to display installed plugins with their repository information.
- Created new components `MetadataInstalledPluginItem` and `MetadataPluginRepositoryItem` for better UI representation of plugins.
- Updated plugin installation logic to handle new fields and display relevant information.
- Bumped `youtube_explode_dart` dependency version to `2.5.1`.
2025-07-18 15:55:28 +06:00
Kingkor Roy Tirtho
2f304fa943 feat: use isolate for youtube_explode engine 2025-07-18 10:34:21 +06:00
Kingkor Roy Tirtho
e83a4bb388 feat: add support for automatic plugin repository from github and codeberg 2025-07-17 01:02:04 +06:00
Kingkor Roy Tirtho
90f9cc28eb feat: enhance image handling 2025-07-16 22:34:59 +06:00
Kingkor Roy Tirtho
f23a078b64 chore: fix spotube logo color on light mode 2025-07-16 14:43:32 +06:00
Kingkor Roy Tirtho
d2827a52d3 chore: upgrade to flutter 3.32.5 2025-07-13 21:21:17 +06:00
Kingkor Roy Tirtho
7de6423935 feat: add support for entity specific search 2025-07-13 15:11:56 +06:00
Kingkor Roy Tirtho
5573deb52a website: bring back download buttons for Nightly version 2025-07-11 14:09:28 +06:00
Kingkor Roy Tirtho
412c427cec chore: fix bad certificate error 2025-07-05 21:46:35 +06:00
Kingkor Roy Tirtho
5be4747c66 feat(metadata): add plugin form 2025-07-03 23:55:29 +06:00
Kingkor Roy Tirtho
5b457fc4bd chore: fix streaming quality is worse then available 2025-06-21 22:40:20 +06:00
Kingkor Roy Tirtho
cb97f4352c chore: fix android build not working 2025-06-21 21:28:39 +06:00
Kingkor Roy Tirtho
ee71dbf552 chore: fix login not working and source quality not good when high quality source not found 2025-06-21 19:21:00 +06:00
Kingkor Roy Tirtho
1538dc6d52 chore: fix macos issues 2025-06-21 08:33:22 +06:00
Kingkor Roy Tirtho
53ad5bd448 feat: remove green corp names formally 2025-06-19 23:04:24 +06:00
Kingkor Roy Tirtho
aa65bf291d refactor: use metadata plugin authentication instead 2025-06-19 22:32:22 +06:00
Kingkor Roy Tirtho
41cc79b5e6 chore: make playback working 2025-06-19 21:09:49 +06:00
Kingkor Roy Tirtho
86e55f7a3d chore: fix connect freezed model not working 2025-06-19 15:52:05 +06:00
Kingkor Roy Tirtho
1eb0b5f847 chore: uncomment important lines of code 2025-06-19 15:01:58 +06:00
Kingkor Roy Tirtho
d898d45b4a refactor: add database schema migrations 2025-06-19 14:52:45 +06:00
Kingkor Roy Tirtho
5f47dc3d6d refactor: remove old spotify.dart types and custom spotube metadata types 2025-06-19 14:42:29 +06:00
Kingkor Roy Tirtho
4e6db8b9e1 refactor: move from Track to SpotubeTrackObject and use TrackSources object for providers 2025-06-18 21:30:32 +06:00
Kingkor Roy Tirtho
b979a6ede9 feat: add track endpoint for metadata service 2025-06-16 14:09:20 +06:00
Kingkor Roy Tirtho
fcc05a4243 refactor: search to use metadata plugin 2025-06-16 09:52:02 +06:00
Kingkor Roy Tirtho
7569c37739 refactor: home browse and browse section 2025-06-15 22:14:04 +06:00
Kingkor Roy Tirtho
b8cae569b4 refactor: use metadata artist object for artist card and artist page 2025-06-15 17:30:02 +06:00
Kingkor Roy Tirtho
4b09f6c96b refactor: use metadata album & playlist object for card and pages 2025-06-15 14:00:34 +06:00
Kingkor Roy Tirtho
758b0bc9d9 feat: add artist and album providers 2025-06-14 22:43:20 +06:00
Kingkor Roy Tirtho
326d8212f6 feat: add albums metadata endpoint and provider 2025-06-14 21:07:07 +06:00
Kingkor Roy Tirtho
a9ba2582fb feat: add playlist endpoint and providers 2025-06-14 20:53:18 +06:00
Kingkor Roy Tirtho
f8211cbcc7 feat: add user endpoint calls in metadata and paginated async notifiers 2025-06-14 20:25:38 +06:00
Kingkor Roy Tirtho
3306f21860 feat: update models to match hetu_spotube_plugin signature 2025-06-14 19:18:32 +06:00
Kingkor Roy Tirtho
7a6821f28d feat: implement metadata plugins based on hetu 2025-06-14 08:41:38 +06:00
Kingkor Roy Tirtho
69c0333327 feat: update plugin configuration with more fields 2025-06-13 17:00:59 +06:00
Kingkor Roy Tirtho
2d6fe886e2 chore: metadata 2025-06-13 16:23:41 +06:00
Kingkor Roy Tirtho
67713c60d4 feat(metadata_plugin): add logout method 2025-05-09 23:30:57 +06:00
Kingkor Roy Tirtho
bb0afa5a0c feat: enhance local storage and webview APIs with improved error handling and resource management 2025-05-09 23:02:55 +06:00
Kingkor Roy Tirtho
f4306ad1c3 feat: add webviiew, totp and setInterval apis for plugins 2025-05-07 23:39:44 +06:00
Kingkor Roy Tirtho
b9c6c98e38 Merge branch 'dev' 2025-05-02 20:47:10 +06:00
Kingkor Roy Tirtho
0326630a19 docs: add legal notice 2025-05-02 20:46:13 +06:00
Kingkor Roy Tirtho
abe04b28b2 feat(metadata-plugin): add local storage api 2025-05-02 13:52:07 +06:00
Kingkor Roy Tirtho
8ac30c0031 feat(metadata-plugin): add pagination support, feed and playlist CRUD endpoints 2025-05-02 11:36:09 +06:00
Kingkor Roy Tirtho
9a861b9954 chore: add proper error handling 2025-05-01 23:51:22 +06:00
Kingkor Roy Tirtho
7491175bb6 feat: add metadata api service and models 2025-05-01 13:20:05 +06:00
Kingkor Roy Tirtho
a65846d15e
Merge pull request #2692 from KRTirtho/dev
Dev
2025-05-01 00:06:45 +06:00
Kingkor Roy Tirtho
4f72f3b424 chore: remove greedy green music platform's references in images 2025-04-30 21:42:18 +06:00
Kingkor Roy Tirtho
ecb43f64ad chore: removal of all mentions/references of that greedy green music provider 2025-04-30 21:23:37 +06:00
Kingkor Roy Tirtho
e575d23c4a chore: add cookie font for logo 2025-04-28 00:01:55 +06:00
Kingkor Roy Tirtho
76f0f18592
Merge pull request #2687 from KRTirtho/fix/path-traversal-through-websocket
fix: path traversal through websocket
2025-04-27 23:19:19 +06:00
Kingkor Roy Tirtho
ae0f24d34a chore: update translations 2025-04-27 22:41:57 +06:00
Kingkor Roy Tirtho
a06614bc5c feat: add connect confirmation dialog 2025-04-27 22:39:16 +06:00
Kingkor Roy Tirtho
7c26d29d06 fix: remote path traversal through websocket when devices are on same network 2025-04-27 20:30:32 +06:00
Kingkor Roy Tirtho
b6c0926efc chore: expand android foreground icon by 20% 2025-04-27 10:19:59 +06:00
Kingkor Roy Tirtho
89cf73d95f chore: generate splash screen for default flavor 2025-04-27 09:53:45 +06:00
Kingkor Roy Tirtho
e6a9011c5c chore: fix flutter new pipe not building 2025-04-26 20:56:38 +06:00
Kingkor Roy Tirtho
7143913bba chore: fix icon asset name 2025-04-25 22:08:37 +06:00
Kingkor Roy Tirtho
5567214588
feat: add new icons #2676 by @alexio-dev (#2678)
* feat: add new improved logo

* feat: add new improved logo

* feat: add new improved logo

* feat: add new improved logo

* chore: update the logos in app

* Merge branch 'alexio-dev-refactor/new-icons' into refactor/new-icons #2676

* chore: generate icons for every flavor

* chore: add readme banner

* chore: add back deleted images

* chore: update native splash screen

* chore: fix dart analyzer warnings
2025-04-25 21:55:59 +06:00
Kingkor Roy Tirtho
5ff1fc9f82 fix: artist images are not loading up 2025-04-25 16:27:07 +06:00
Kingkor Roy Tirtho
d3edf07ac9 fix: default accent color in orange but it shows blue in settings 2025-04-07 16:16:43 +06:00
Kingkor Roy Tirtho
8fc319d980 fix(mobile): dialogs in bottom sheet are not opening 2025-04-07 14:53:05 +06:00
Seungmin Kim
e986baa0aa
chore: revise filter for ISRC search (#2614) 2025-04-07 13:12:45 +06:00
Kingkor Roy Tirtho
8a7f5c4008 chore: fix weird hovered mode on track tile options 2025-03-28 22:32:05 +06:00
Kingkor Roy Tirtho
9d2ad1c626 chore: upgrade shadcn_flutter version 2025-03-28 22:24:23 +06:00
Kingkor Roy Tirtho
b74c2eab8f fix: calling /track/:streamId endpoint causes active sourced track to be anything 2025-03-28 20:57:46 +06:00
Seungmin Kim
2c4cc94985
feat: add ISRC track search for YouTube (#2594)
* Add ISRC track search for YouTube

* Do not probe Song.Link when ISRC results are valid, fix rate limit
2025-03-28 19:10:54 +06:00
Kingkor Roy Tirtho
ba27dc70e4
Merge pull request #2550 from KRTirtho/dev
Release 4.0.2
2025-03-16 23:57:54 +06:00
Kingkor Roy Tirtho
0ec9f3535b chore: bump to 4.0.2 and generate changelog 2025-03-16 23:52:08 +06:00
Kingkor Roy Tirtho
df72ba6960 chore: convert all spotify calls to invoke signature to capture invalid access token exception 2025-03-16 21:22:29 +06:00
Kingkor Roy Tirtho
d9057dae57 fix: invalid access token exception #2525 2025-03-16 10:32:41 +06:00
Kingkor Roy Tirtho
e61b79585e chore: remove print statement 2025-03-15 21:09:51 +06:00
Kingkor Roy Tirtho
a9e5636e96 chore: add a fallback init token retrieval method 2025-03-15 21:07:59 +06:00
Kingkor Roy Tirtho
723b6b1f38
Merge pull request #2524 from KRTirtho/dev
Release 4.0.1
2025-03-15 17:21:27 +06:00
Kingkor Roy Tirtho
764950b286 Revert "chore: spotify home feed recommendations now showing up"
This reverts commit 290affd435.
2025-03-15 17:15:29 +06:00
Kingkor Roy Tirtho
290affd435 chore: spotify home feed recommendations now showing up 2025-03-15 17:00:57 +06:00
Kingkor Roy Tirtho
c59b5c651e chore: reenable impeller 2025-03-15 16:48:24 +06:00
Kingkor Roy Tirtho
e4ac7cacc9 chore: generate changelogs and migrate to non synthetic l10n 2025-03-15 16:44:57 +06:00
Kingkor Roy Tirtho
26b1c31f8f chore: flutter 3.29.2 and bump of to 4.0.1 2025-03-15 16:31:20 +06:00
VARUN M
4bfe334419
feat(translation): add tamil translation for spotube (#2501)
* feat: add tamil language for spotube

* fix: syntax error lib/l10n/app_ta.arb

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2025-03-15 16:28:27 +06:00
Justin May
48fcfbc928
feat(translation): add tagalog language support
Added Tagalog translation
2025-03-15 16:26:49 +06:00
Kingkor Roy Tirtho
95e09ffc94 chore: remove certificate check for dio 2025-03-15 14:23:38 +06:00
Kingkor Roy Tirtho
968fd09eb3 chore: add random user agent 2025-03-15 10:48:34 +06:00
Kingkor Roy Tirtho
1a32264bc7 fix: spotify authentication 429 errors 2025-03-15 10:37:29 +06:00
Kingkor Roy Tirtho
59f298a935 fix: spotify login broken due to new totp requirement #2494 2025-03-15 01:41:51 +06:00
Kingkor Roy Tirtho
bbe3394e9e fix: lastfm form broken in other locales #2447 2025-03-12 15:05:32 +06:00
Kingkor Roy Tirtho
7cde803bee feat(local_library): add support for x-flac, opus and x-wav 2025-03-12 14:20:19 +06:00
Kingkor Roy Tirtho
cd475e93d0 chore: upgrade action flutter to 3.29.1 2025-03-12 13:48:07 +06:00
Kingkor Roy Tirtho
3d334d96fd fix(desktop): double titlebar in local library folders and massive space in overlay player 2025-03-11 21:28:57 +06:00
Kingkor Roy Tirtho
bd4cd22e4e fix(generate_playlist): create playlist not adding tracks nor navigating to playlist page 2025-03-11 00:16:53 +06:00
Kingkor Roy Tirtho
c709de6bf1 fix: language picker search broken 2025-03-10 20:44:52 +06:00
Kingkor Roy Tirtho
ccbac85171 chore: remove GeistMono 2025-03-10 20:15:28 +06:00
Kingkor Roy Tirtho
50123b235c fix: add to playlist not working in smaller screen devices 2025-03-10 20:07:51 +06:00
Kingkor Roy Tirtho
4072531c62 fix(android): navigation overlaying in app navigation 2025-03-09 10:05:02 +06:00
852 changed files with 97328 additions and 22333 deletions

View File

@ -1,7 +1,3 @@
# The format:
# SPOTIFY_SECRETS=clintId1:clientSecret1,clientId2:clientSecret2
SPOTIFY_SECRETS=$SPOTIFY_SECRETS
# 0 or 1
# 0 = disable
# 1 = enable
@ -13,5 +9,4 @@ LASTFM_API_SECRET=$LASTFM_API_SECRET
# Release channel. Can be: nightly, stable
RELEASE_CHANNEL=$RELEASE_CHANNEL
HIDE_DONATIONS=$HIDE_DONATIONS
DISABLE_SPOTIFY_IMAGES=$DISABLE_SPOTIFY_IMAGES
HIDE_DONATIONS=$HIDE_DONATIONS

View File

@ -1,3 +1,3 @@
{
"flutterSdkVersion": "3.29.0"
"flutterSdkVersion": "3.35.2"
}

2
.fvmrc
View File

@ -1,4 +1,4 @@
{
"flutter": "3.29.0",
"flutter": "3.35.2",
"flavors": {}
}

View File

@ -4,7 +4,7 @@ on:
pull_request:
env:
FLUTTER_VERSION: 3.29.0
FLUTTER_VERSION: 3.35.2
jobs:
lint:
@ -21,7 +21,6 @@ jobs:
run: |
envsubst < .env.example > .env
env:
SPOTIFY_SECRETS: xxx:xxx
ENABLE_UPDATE_CHECK: true
LASTFM_API_KEY: xxx
LASTFM_API_SECRET: xxx

View File

@ -20,7 +20,7 @@ on:
description: Dry run without uploading to release
env:
FLUTTER_VERSION: 3.29.0
FLUTTER_VERSION: 3.35.2
FLUTTER_CHANNEL: master
permissions:
@ -56,7 +56,7 @@ jobs:
files: |
dist/Spotube-windows-x86_64.nupkg
dist/Spotube-windows-x86_64-setup.exe
- os: macos-latest
- os: macos-14
platform: ios
arch: all
files: |
@ -95,7 +95,7 @@ jobs:
if: ${{matrix.platform == 'ios'}}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "16.1"
xcode-version: "16.2"
- name: Install ${{matrix.platform}} dependencies
run: |

View File

@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.
version:
revision: "300451adae589accbece3490f4396f10bdf15e6e"
revision: "d7b523b356d15fb81e7d340bbe52b47f93937323"
channel: "stable"
project_type: app
@ -13,11 +13,11 @@ project_type: app
migration:
platforms:
- platform: root
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323
base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323
- platform: windows
create_revision: 300451adae589accbece3490f4396f10bdf15e6e
base_revision: 300451adae589accbece3490f4396f10bdf15e6e
create_revision: d7b523b356d15fb81e7d340bbe52b47f93937323
base_revision: d7b523b356d15fb81e7d340bbe52b47f93937323
# User provided section

11
.vscode/launch.json vendored
View File

@ -17,6 +17,17 @@
"dev"
]
},
{
"name": "spotube (mobile-skia)",
"type": "dart",
"request": "launch",
"program": "lib/main.dart",
"args": [
"--flavor",
"dev",
"--no-enable-impeller"
]
},
{
"name": "spotube (profile)",
"type": "dart",

View File

@ -5,10 +5,12 @@
"ambiguate",
"Amoled",
"Buildless",
"configurators",
"danceability",
"fuzzywuzzy",
"gapless",
"instrumentalness",
"isrc",
"Mpris",
"RGBO",
"riverpod",
@ -28,5 +30,5 @@
"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.29.0"
"dart.flutterSdkPath": ".fvm/versions/3.35.2"
}

View File

@ -1,6 +1,92 @@
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
## [5.0.0](https://github.com/KRTirtho/spotube/compare/v4.0.2...v5.0.0) (2025-09-08)
### Features
- Add ISRC track search for YouTube ([#2594](https://github.com/KRTirtho/spotube/issues/2594))
- Add new icons #2676 by @alexio-dev ([#2678](https://github.com/KRTirtho/spotube/issues/2678))
- Add connect confirmation dialog
- Add metadata api service and models
- **metadata-plugin**: Add pagination support, feed and playlist CRUD endpoints
- **metadata-plugin**: Add local storage api
- Add webview, totp and setInterval apis for plugins
- Enhance local storage and webview APIs with improved error handling and resource management
- **metadata_plugin**: Add logout method
- Update plugin configuration with more fields
- Implement metadata plugins based on hetu
- Update models to match hetu_spotube_plugin signature
- Add user endpoint calls in metadata and paginated async notifiers
- Add playlist endpoint and providers
- Add albums metadata endpoint and provider
- Add artist and album providers
- Add track endpoint for metadata service
- Remove green corp names formally
- **metadata**: Add plugin form
- Add support for entity specific search
- Enhance image handling
- Add support for automatic plugin repository from github and codeberg
- Use isolate for youtube_explode engine
- Add repository and plugin API version fields to metadata plugins
- Update new pipe version
- **metadata**: Add plugin update checker and dialog for available updates
- Optimize track options and related artists
- Add plugin scrobbling support and support button
- Add ErrorBox and NoDefaultMetadataPlugin components
### Bug Fixes
- Calling /track/:streamId endpoint causes active sourced track to be anything
- **mobile**: Dialogs in bottom sheet are not opening
- Default accent color is orange but it shows blue in settings
- Artist images are not loading up
- CVE: Remote path traversal through websocket when devices are on same network
- Endless playback not working
- **android**: NewPipe invalid search content filters
- Make YoutubeExplode engine faster
- Create and delete playlist not working
- Local track not working and images of local not showing up
- Local playback not working for tracks with special # (hashtag) characters
- Inaccessible streaming url causing rapid skips
- **yt**: Fallback to different search result if all streaming url is inaccessible
- **playback**: Skip network requests if cached file already exists
- Yt-dlp playback not working and add partial support for HLS streaming
- Windows webview2 environment permission issue
- **playback**: Play not fetching full playlist if playlist is too long
- **track_options**: Tapping on option doesn't close the menu
- **playback**: Alternative track sources switch not working
- **ui**: Lyrics white text in white background and small player buttons
### Translation
- Add Traditional Chinese translation ([#2762](https://github.com/KRTirtho/spotube/issues/2762))
- Fix Japanese translations ([#2732](https://github.com/KRTirtho/spotube/issues/2732))
- Correction of the dutch language ([#1306](https://github.com/KRTirtho/spotube/issues/1306))
## [4.0.2](https://github.com/krtirtho/spotube/compare/v4.0.1...v4.0.2) (2025-03-16)
### Bug Fixes
- invalid access token exception #2525
## [4.0.1](https://github.com/krtirtho/spotube/compare/v4.0.0...v4.0.1) (2025-03-15)
### Bug Fixes
- **android**: navigation overlaying in app navigation
- add to playlist not working in smaller screen devices
- 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
- lastfm form broken in other locales #2447
- spotify login broken due to new totp requirement #2494
- spotify authentication 429 errors
### Features
- **local_library**: add support for x-flac, opus and x-wav
- **translation**: add tagalog language support #2504
- **translation**: add tamil translation for spotube #2501
## [4.0.0](https://github.com/krtirtho/spotube/compare/v3.9.0...v4.0.0) (2025-03-07)

View File

@ -119,7 +119,7 @@ Enhancement suggestions are tracked as [GitHub issues](https://github.com/KRTirt
Do the following:
- Download the latest Flutter SDK (>=3.16.0) & enable desktop support
- Install [Dart](https://dart.dev/get-dart) and [fvm](https://fvm.app/documentation/getting-started/installation)
- Install Development dependencies in linux
- Debian (>=12/Bookworm)/Ubuntu
```bash
@ -138,11 +138,11 @@ Do the following:
- Create a `.env` in root of the project following the `.env.example` template
- Now run the following to bootstrap the project
```bash
flutter pub get && dart run build_runner build --delete-conflicting-outputs --enable-experiment=records,patterns
fvm flutter pub get && fvm dart run build_runner build --delete-conflicting-outputs
```
- Finally run these following commands in the root of the project to start the Spotube Locally
```bash
flutter run -d <window|macos|linux|(<android-device-id>)>
fvm flutter run -d <window|macos|linux|(<android-device-id>)>
```
Do debugging/testing/build etc then submit to us with PR against the development branch (dev) & we'll review your code

View File

@ -8,7 +8,7 @@ tar:
mkdir -p $(TEMP_DIR)\
&& cp -r $(BUNDLE_DIR)/* $(TEMP_DIR)\
&& cp linux/spotube.desktop $(TEMP_DIR)\
&& cp assets/spotube-logo.png $(TEMP_DIR)\
&& cp assets/branding/spotube-logo.png $(TEMP_DIR)\
&& cp linux/com.github.KRTirtho.Spotube.appdata.xml $(TEMP_DIR)\
&& tar -cJf build/spotube-linux-${VERSION}-${PKG_ARCH}.tar.xz -C $(TEMP_DIR) .\
&& rm -rf $(TEMP_DIR)
@ -52,4 +52,7 @@ dmg:
if [ -f dist/Spotube-macos-universal.dmg ];\
then rm dist/Spotube-macos-universal.dmg;\
fi &&\
appdmg appdmg.json dist/Spotube-macos-universal.dmg
appdmg appdmg.json dist/Spotube-macos-universal.dmg
changelog:
git-cliff --unreleased

View File

@ -1,9 +1,8 @@
<div align="center">
<img width="600" src="assets/spotube_banner.png" alt="Spotube Logo">
<img width="600" src="assets/branding/spotube_banner.png" alt="Spotube Logo">
An open source, cross-platform Spotify client compatible across multiple platforms<br />
utilizing Spotify's data API and YouTube, Piped.video or JioSaavn as an audio source,<br />
eliminating the need for Spotify Premium
A cross-platform extensible open-source music streaming platform.<br>
Bring your own music metadata/playlist with plugins created by community or by yourself. A small step towards the decentralized music streaming era!
Btw it's not just another Electron app 😉
@ -19,31 +18,24 @@ Btw it's not just another Electron app 😉
---
![Spotube Desktop](assets/spotube-screenshot.png)
![Spotube Desktop](assets/branding/spotube-screenshot.png)
![Spotube Mobile](assets/mobile-screenshots/combined.png)
![Spotube Mobile](assets/branding/mobile-screenshots/combined.jpg)
</div>
## 🌃 Features
- 🚫 No ads, thanks to the use of public & free Spotify and YT Music APIs¹
- ⬇️ Freely downloadable tracks
- 🖥️ 📱 Cross-platform support
- 🪶 Small size & less data usage
- 🕵️ Anonymous/guest login
- 🕒 Time synced lyrics
- ✋ No telemetry, diagnostics or user data collection
- 🚀 Native performance
- 📖 Open source/libre software
- 🔉 Playback control is done locally, not on the server
**¹** It is still **recommended** to support creators by engaging with their YouTube channels/Spotify tracks (or preferably by buying their merch/concert tickets/physical media).
### ❌ Unsupported features
- 🗣️ **Spotify Shows & Podcasts:** Shows and Podcasts will <ins>**never be supported**</ins> because the audio tracks are <ins>_only_</ins> available on Spotify and accessing them would require Spotify Premium.
- 🎧 **Spotify Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8)
- 🧩 Plugin powered, supports any platform or custom music service through plugins.
- 🗺️ Community driven plugins for popular platforms or create your own.
- ⬇️ Freely downloadable tracks with tagged metadata.
- 🖥️ 📱 Cross-platform support.
- 🪶 Small size & less data usage.
- 🕒 Time synced lyrics regardless of the plugin support.
- ✋ No telemetry, diagnostics or user data collection.
- 🚀 Native performance.
- 📖 Open source/libre software.
- 🔉 Playback control is done locally, not on the server.
## 📜 ⬇️ Installation guide
@ -66,17 +58,13 @@ This handy table lists all the methods you can use to install Spotube:
<td>MacOS</td>
<td>
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-macos-universal.dmg">
<img width="220" alt="MacOS Download" src="https://reachify.io/wp-content/uploads/2018/09/mac-download-button-1.png">
<img width="220" alt="MacOS Download" src="https://memory-map.com/wp-content/uploads/download-mac-OS-01.svg">
</a>
</td>
</tr>
<tr>
<td>Android</td>
<td>
<a href="https://play.google.com/store/apps/details?id=oss.krtirtho.spotube">
<img width="220" alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png">
</a>
<br>
<a href="https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-android-all-arch.apk">
<img width="220" alt="APK download" src="https://user-images.githubusercontent.com/114044633/223920025-83687de0-e463-4c5d-8122-e06e4bb7d40c.png">
</a>
@ -189,9 +177,7 @@ You can compile Spotube's source code by [following these instructions](CONTRIBU
## 👥 The Spotube team
- [Kingkor Roy Tirtho](https://github.com/KRTirtho) - The Founder, Maintainer and Lead Developer
- [RaptaG](https://github.com/RaptaG) - The GitHub Moderator and Community Manager
- [Owen Connor](https://github.com/owencz1998) - The Cool Discord Moderator
- [Meenbeese](https://github.com/meenbeese) - The Android Developer
- [Piotr Rogowski](https://github.com/karniv00l) - The MacOS Developer
- [Rusty Apple](https://github.com/RustyApple) - The Mysterious Unknown Guy
@ -199,7 +185,7 @@ You can compile Spotube's source code by [following these instructions](CONTRIBU
Spotube is open source and licensed under the [BSD-4-Clause](/LICENSE) License.
If you are concerned, you can [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
If you are curious, you can [read the reason of choosing this license](https://dev.to/krtirtho/choosing-open-source-license-wisely-1m3p).
<details>
<summary>
@ -210,15 +196,14 @@ If you are concerned, you can [read the reason of choosing this license](https:/
1. [Flutter](https://flutter.dev) - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
1. [MPV](https://mpv.io) - mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.
1. [Spotify API](https://developer.spotify.com/documentation/web-api) - The Spotify Web API is a RESTful API that provides access to Spotify data
1. [Musicbrainz](https://musicbrainz.org) - MusicBrainz is a MetaBrainz project that aims to create a collaborative music database that is similar to the freedb project.
1. [Listenbrainz](https://listenbrainz.org) - ListenBrainz is a open-source project by the MetaBrainz Foundation that allows users to crowdsource and publicly store their digital music listening data.
1. [Piped](https://piped-docs.kavin.rocks/) - Piped is a privacy friendly alternative YouTube frontend, which is efficient and scalable by design.
1. [Invidious](https://invidious.io/) - Invidious is an open source alternative front-end to YouTube.
1. [YouTube](https://youtube.com/) - YouTube is an American online video-sharing platform headquartered in San Bruno, California. Three former PayPal employees—Chad Hurley, Steve Chen, and Jawed Karim—created the service in February 2005
1. [yt-dlp](https://github.com/yt-dlp/yt-dlp) - A feature-rich command-line audio/video downloader
1. [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) - NewPipe's core library for extracting data from streaming sites
1. [JioSaavn](https://www.jiosaavn.com) - JioSaavn is an Indian online music streaming service and a digital distributor of Bollywood, English and other regional Indian music across the world. Since it was founded in 2007 as Saavn, the company has acquired rights to over 5 crore (50 million) music tracks in 15 languages
1. [yt-dlp](https://github.com/yt-dlp/yt-dlp) - A feature-rich command-line audio/video downloader.
1. [NewPipeExtractor](https://github.com/TeamNewPipe/NewPipeExtractor) - NewPipe's core library for extracting data from streaming sites.
1. [SongLink](https://song.link) - SongLink is a free smart link service that helps you share music with your audience. It's a one-stop-shop for creating smart links for music, podcasts, and other audio content
1. [LRCLib](https://lrclib.net/) - A public synced lyric API
1. [LRCLib](https://lrclib.net/) - A public synced lyric API.
1. [Linux](https://www.linux.org) - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
1. [AUR](https://aur.archlinux.org) - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
1. [Flatpak](https://flatpak.org) - Flatpak is a utility for software deployment and package management for Linux
@ -304,7 +289,6 @@ If you are concerned, you can [read the reason of choosing this license](https:/
1. [sliding_up_panel](https://github.com/akshathjain/sliding_up_panel) - A draggable Flutter widget that makes implementing a SlidingUpPanel much easier!
1. [sliver_tools](https://github.com/Kavantix) - A set of useful sliver tools that are missing from the flutter framework
1. [smtc_windows](https://pub.dev/packages/smtc_windows) - Windows `SystemMediaTransportControls` implementation for Flutter giving access to Windows OS Media Control applet.
1. [spotify](https://github.com/rinukkusu/spotify-dart) - An incomplete dart library for interfacing with the Spotify Web API.
1. [sqlite3](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3) - Provides lightweight yet convenient bindings to SQLite by using dart:ffi
1. [sqlite3_flutter_libs](https://github.com/simolus3/sqlite3.dart/tree/main/sqlite3_flutter_libs) - Flutter plugin to include native sqlite3 libraries with your app
1. [stroke_text](https://github.com/MohamedAbd0/stroke_text) - A Simple Flutter plugin for applying stroke (border) style to a text widget
@ -325,8 +309,9 @@ If you are concerned, you can [read the reason of choosing this license](https:/
1. [youtube_explode_dart](https://github.com/Hexer10/youtube_explode_dart) - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key.
1. [http_parser](https://pub.dev/packages/http_parser) - A platform-independent package for parsing and serializing HTTP formats.
1. [collection](https://pub.dev/packages/collection) - Collections and utilities functions and classes related to collections.
1. [otp_util](https://github.com/dushiling) - otp_util is a dart package to generate and verify one-time passwords,it It provides two methods TOPT and HOTP.They are Time-based OTPs and Counter-based OTPs.
1. [dio_http2_adapter](https://github.com/cfug/dio) - An adapter that combines HTTP/2 and dio. Supports reusing connections, header compression, etc.
1. [build_runner](https://pub.dev/packages/build_runner) - A build system for Dart code generation and modular compilation.
1. [crypto](https://pub.dev/packages/crypto) - Implementations of SHA, MD5, and HMAC cryptographic functions.
1. [envied_generator](https://github.com/petercinibulk/envied) - Generator for the Envied package. See https://pub.dev/packages/envied.
1. [flutter_gen_runner](https://github.com/FlutterGen/flutter_gen) - The Flutter code generator for your assets, fonts, colors, … — Get rid of all String-based APIs.
1. [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the task of updating your Flutter app's launcher icon.
@ -349,4 +334,4 @@ If you are concerned, you can [read the reason of choosing this license](https:/
1. [flutter_new_pipe_extractor](https://github.com/KRTirtho/flutter_new_pipe_extractor) - NewPipeExtractor binding for Flutter (Android only)
</details>
<div align="center"><h4>© Copyright Spotube 2024</h4></div>
<div align="center"><h4>© Copyright Spotube 2025</h4></div>

View File

@ -33,7 +33,7 @@ def composeVersion = "1.4.8"
android {
namespace "oss.krtirtho.spotube"
compileSdkVersion 35
compileSdkVersion 36
ndkVersion = "27.0.12077973"

View File

@ -1,3 +1,12 @@
#Flutter Wrapper
# -keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
# -keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-keep class de.prosiebensat1digital.** { *; }
-keep class androidx.lifecycle.DefaultLifecycleObserver
-keepnames class kotlinx.serialization.** { *; }
@ -18,4 +27,33 @@
-keep class org.schabi.newpipe.extractor.timeago.patterns.** { *; }
-keep class org.mozilla.javascript.** { *; }
-keep class org.mozilla.classfile.ClassFileWriter
-dontwarn org.mozilla.javascript.tools.**
-dontwarn org.mozilla.javascript.tools.**
-dontwarn javax.script.AbstractScriptEngine
-dontwarn javax.script.Bindings
-dontwarn javax.script.Compilable
-dontwarn javax.script.CompiledScript
-dontwarn javax.script.Invocable
-dontwarn javax.script.ScriptContext
-dontwarn javax.script.ScriptEngine
-dontwarn javax.script.ScriptEngineFactory
-dontwarn javax.script.ScriptException
-dontwarn javax.script.SimpleBindings
-dontwarn jdk.dynalink.CallSiteDescriptor
-dontwarn jdk.dynalink.DynamicLinker
-dontwarn jdk.dynalink.DynamicLinkerFactory
-dontwarn jdk.dynalink.NamedOperation
-dontwarn jdk.dynalink.Namespace
-dontwarn jdk.dynalink.NamespaceOperation
-dontwarn jdk.dynalink.Operation
-dontwarn jdk.dynalink.RelinkableCallSite
-dontwarn jdk.dynalink.StandardNamespace
-dontwarn jdk.dynalink.StandardOperation
-dontwarn jdk.dynalink.linker.GuardedInvocation
-dontwarn jdk.dynalink.linker.GuardingDynamicLinker
-dontwarn jdk.dynalink.linker.LinkRequest
-dontwarn jdk.dynalink.linker.LinkerServices
-dontwarn jdk.dynalink.linker.TypeBasedGuardingDynamicLinker
-dontwarn jdk.dynalink.linker.support.CompositeTypeBasedGuardingDynamicLinker
-dontwarn jdk.dynalink.linker.support.Guards
-dontwarn jdk.dynalink.support.ChainedCallSite

View File

@ -3,4 +3,17 @@
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="${applicationName}"
android:allowBackup="false"
android:fullBackupContent="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name_en"
android:requestLegacyExternalStorage="true"
android:usesCleartextTraffic="true">
<!-- Disable Impeller -->
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
</application>
</manifest>

View File

@ -57,10 +57,6 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="open.spotify.com"
android:scheme="https" />
</intent-filter>
<intent-filter>
@ -74,8 +70,6 @@
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "spotify:// -->
<data android:scheme="spotify" />
<data android:scheme="spotube" />
</intent-filter>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -6,7 +6,7 @@
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
<item>
<item android:bottom="0dp">
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
</item>
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 214 KiB

After

Width:  |  Height:  |  Size: 162 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -6,7 +6,7 @@
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
<item>
<item android:bottom="0dp">
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
</item>
</layer-list>

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
<foreground>
<inset
android:drawable="@drawable/ic_launcher_foreground"
android:inset="16%" />
</foreground>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -6,7 +6,7 @@
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
<item>
<item android:bottom="0dp">
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
</item>
</layer-list>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 220 KiB

After

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 276 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 MiB

After

Width:  |  Height:  |  Size: 3.0 MiB

View File

@ -6,7 +6,7 @@
<item>
<bitmap android:gravity="center" android:src="@drawable/splash"/>
</item>
<item>
<item android:bottom="0dp">
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
</item>
</layer-list>

Some files were not shown because too many files have changed in this diff Show More