Commit Graph

279 Commits

Author SHA1 Message Date
Kingkor Roy Tirtho
1e6d709e04
feat: implement yt-dlp for desktop and NewPipeExtractor for Android (#2316)
* feat: add youtube engine abstraction and yt-dlp integration

* chore: add yt-dlp as optional dependency

* feat: implement custom path support for youtube engines

* chore: check for custom path in setting engine select dropdown

* chore: update yt_dlp_dart

* chore: setting video url instead of video id in fetchSiblings

* feat: implement NewPipe engine

* chore: update local path to git url for flutter_new_pipe_extractor package

* chore: fix android build isn't working

* chore: fix routes not working when initially signing in

* refactor: drop fallback support to different sources
2025-02-11 21:36:07 +06:00
Kingkor Roy Tirtho
698fb6ba27 fix: youtube tracks keeps skipping despite being matched correctly 2025-02-05 00:36:23 +06:00
Kingkor Roy Tirtho
043eaba81f fix: youtube source taking too long to buffer 2025-02-03 20:53:48 +06:00
Kingkor Roy Tirtho
6cf4ca9179 chore: use shadcn in all places that's using material 2025-01-30 21:44:07 +06:00
Kingkor Roy Tirtho
4e8a50ec58 chore: fix logs not showing up and nightly crashing on track change on android 2025-01-26 22:05:24 +06:00
Kingkor Roy Tirtho
2411f46877 fix: youtube video unplayable issue and use more ytClients 2025-01-21 10:15:06 +06:00
Kingkor Roy Tirtho
4fead5f504 feat: pause playback when no internet connection 2025-01-20 22:04:12 +06:00
Kingkor Roy Tirtho
8ca2115ef0
feat: track caching and cached track export support (#2117)
* feat: add caching support with track metadata

* feat(settings): add cache music toggle

* fix(mobile): cache dir not open-able

* feat(local folder): add cache export/clear actions and size of the folder

* chore: ios deps upgrades

* chore: upgrade lint flutter version

* chore: lint secrets causing error

* cd: invalid value for env var
2024-12-08 20:03:01 +06:00
Kingkor Roy Tirtho
499ecfba26 fix(mobile): ensure audio session is activated when playback is resumed after interruption #2092 2024-12-01 19:01:24 +06:00
Kingkor Roy Tirtho
9f2d423cfe
feat: add invidious audio source and fix auto skipping tracks (#2005)
* feat: add invidious audio source with automatic track switch even on server playback endpoint

* fix: switching to different source on playback endpoint error not working

* chore: update invidious version

* feat: invidious instances customizability
2024-10-17 22:33:03 +06:00
Kingkor Roy Tirtho
6d0cbf97e3 fix(android): clears queue upon swiping away notification 2024-08-19 21:37:31 +06:00
Kingkor Roy Tirtho
95ff13324e fix(mobile): queue doesn't persist 2024-08-15 22:46:17 +06:00
Kingkor Roy Tirtho
470addca83 fix: local tracks takes time to load 2024-08-15 22:45:22 +06:00
Kingkor Roy Tirtho
9b7a7ef1cf chore: update translations and refactor to flutter 3.22 ThemeData 2024-08-10 22:54:25 +06:00
Kingkor Roy Tirtho
39ea7a701c chore: remove unnecessary print statements 2024-08-09 20:07:24 +06:00
Kingkor Roy Tirtho
1c66646798 fix(windows): local tracks plays but disabled playback controls 2024-08-07 21:54:47 +06:00
Kingkor Roy Tirtho
0eb78d14ca chore: use frb based plugins from git 2024-08-01 14:15:40 +06:00
Kingkor Roy Tirtho
bd511584e7 fix: local track metadata timeout 2024-07-29 17:23:13 +06:00
Kingkor Roy Tirtho
a2ba46ea45 fix(android): app getting killed from background 2024-07-14 21:24:44 +06:00
arenekosreal
e6fee03c20
feat(linux): Use XDG_STATE_HOME to storage logs (#1675)
* feat(linux): Use XDG_STATE_HOME to storage logs

* fix: Clean LSP suggestions.

* fix: Use Platform.environment instead String.fromEnvironment

The latter seems return an empty string.
See: https://github.com/flutter/flutter/issues/55870#issuecomment-936612420
2024-07-14 19:38:28 +06:00
Kingkor Roy Tirtho
6a500731d6
feat: discord rpc for macOS, windows-arm64 and linux-arm64 (#1713)
* feat: add discord rpc support for macos, windows arm64 and linux arm64

* chore: discord rpc not clearing activity after close/setting rpc to false

* chore: add migration script to move from files from macos sandbox to non-sandbox directories
2024-07-14 18:58:47 +06:00
Kingkor Roy Tirtho
a6e13ffc08 fix(linux): OS Media control not working for Flatpak #1627 2024-07-10 00:23:22 +06:00
Kingkor Roy Tirtho
86ee64c606 chore: remove old logger 2024-07-06 22:02:31 +06:00
Kingkor Roy Tirtho
ccea4a003d fix: changed source doesn't get saved and uses the wrong once again 2024-07-06 21:35:56 +06:00
Kingkor Roy Tirtho
359b918e6b chore: fix windows playback not working for loop back ipv4 2024-07-05 15:32:18 +06:00
Kingkor Roy Tirtho
ffb3a3377f chore: add migration script to migrate hive to drift 2024-06-30 15:44:24 +06:00
Kingkor Roy Tirtho
6c5cab9899 chore: fix use SpotubeMedia to avoid duplicate sourceTrackProvider instances 2024-06-25 20:36:23 +06:00
Kingkor Roy Tirtho
1b420e661b chore: player skipping all tracks from cache 2024-06-24 22:26:44 +06:00
Kingkor Roy Tirtho
a83dd64476 refactor: replace all instances of proxy playlist 2024-06-24 20:52:40 +06:00
Kingkor Roy Tirtho
f79fedefd4 chore: create new audio player centric playback notifier with drift persistence 2024-06-23 12:23:28 +06:00
Kingkor Roy Tirtho
5936f08a92 refactor(volumeProvider): use notifier and kvstore for persistence 2024-06-17 18:13:41 +06:00
Kingkor Roy Tirtho
d18f74fd65 refactor: use drift db based authentication 2024-06-16 22:33:23 +06:00
Kingkor Roy Tirtho
a799ca55bc chore: add encrypted text column support 2024-06-16 20:58:54 +06:00
Kingkor Roy Tirtho
52d4f60ccc refactor: use drift for skip segments and source matches 2024-06-14 21:24:42 +06:00
Kingkor Roy Tirtho
3fb003ea60 refactor(preferences): use Drift sql db for preferences 2024-06-14 00:29:09 +06:00
Kingkor Roy Tirtho
064d92d35d refactor: merge connect and playback server into one server 2024-06-12 20:46:49 +06:00
Kingkor Roy Tirtho
4f2175987d refactor: remove uncessary methods 2024-06-11 23:02:23 +06:00
Kingkor Roy Tirtho
2822d5dbfd chore: fix widget binding errors 2024-06-09 23:05:19 +06:00
Kingkor Roy Tirtho
de61d90938 refactor: add back exceptions to file support 2024-06-09 22:58:14 +06:00
Kingkor Roy Tirtho
f9087b63d5 refactor: remove catcher_2 and use custom zoned based error handling 2024-06-09 22:52:34 +06:00
Kingkor Roy Tirtho
73bd207ce2 fix(linux): change app id in flatpak environment 2024-06-06 18:54:18 +06:00
Kingkor Roy Tirtho
47f98b98aa fix(desktop): window is not centered 2024-06-06 13:48:52 +06:00
Kingkor Roy Tirtho
6591ec0e1b fix(ios): download not working #1575 2024-06-06 13:08:50 +06:00
Kingkor Roy Tirtho
6cb29868d2 fix: use weak match for Jiosaavn fallback to improve matching 2024-06-06 09:07:07 +06:00
Kingkor Roy Tirtho
37d002d133 fix: alternative sources not showing up for SongLink matched results 2024-06-06 08:47:07 +06:00
Kingkor Roy Tirtho
c607a330ed fix(playback): skipping tracks with unplayable sources instead of falling back #1492 2024-06-02 22:34:06 +06:00
Kingkor Roy Tirtho
e034455173 chore: fix home feed not showing up 2024-06-01 12:47:36 +06:00
Kingkor Roy Tirtho
b2d9e64758 refactor: use replace http with dio and use it as the default 2024-06-01 12:31:20 +06:00
Kingkor Roy Tirtho
d2683c52d8 fix: some text are garbled in different parts of the app #1463 #1505 2024-06-01 11:43:21 +06:00
Kingkor Roy Tirtho
82307bc030
feat: personalized stats based on local music history (#1522)
* feat: add playback history provider

* feat: implement recently played section

* refactor: use route names

* feat: add stats summary and top tracks/artists/albums

* feat: add top date based filtering

* feat: add stream money calculation

* refactor: place search in mobile navbar and settings in home appbar

* feat: add individual minutes and streams page

* feat(stats): add individual minutes and streams page

* chore: default period to 1 month

* feat: add text to explain user how hypothetical fees are calculated

* chore: ensure usage of route names instead of direct paths

* cd: add cache key

* cd: remove media_kit_event_loop from git
2024-06-01 11:40:01 +06:00
Kingkor Roy Tirtho
d82261cb25 fix: local track not showing up in queue 2024-05-23 16:56:52 +06:00
Kingkor Roy Tirtho
7ac791757a fix(linux): tray icon not showing #541
upgrade old packages
2024-04-17 22:20:30 +06:00
Kingkor Roy Tirtho
6f4c308457 chore: fix shuffle doesn't move active track to top and library gridview with floating filter field 2024-04-15 19:11:59 +06:00
Kingkor Roy Tirtho
9e25c742d4
feat: add Spotify homepage personalized recommendations (#1402)
* feat: add spotify homepage recommendations

* chore: bring back made for user sectin
2024-04-14 12:10:34 +06:00
Kingkor Roy Tirtho
39e97eef34 feat: add user profile page 2024-04-13 13:05:41 +06:00
Kingkor Roy Tirtho
22a49e56a2
refactor: use tcp server based track matcher (#1386)
* refactor: remove SourcedTrack based audio player and utilize mediakit playback system

* feat: implement local (loopback) server to resolve stream source and leverage the media_kit playback API

* feat: add source change support and re-add prefetching tracks

* fix: assign lastId when track fetch completes regardless of error

* chore: remove print statements

* fix: remote queue not working

* fix: increase mpv network timeout to reduce auto-skipping

* fix: do not pre-fetch local tracks

* fix(proxy-playlist): reset collections on load

* chore: fix lint warnings

* fix(mobile): player overlay should not be visible when the player is not playing

* chore: fix typo in turkish translation

* cd: checkout PR branch

* cd: upgrade flutter version

* chore: fix lint errors
2024-04-11 17:56:41 +06:00
Kingkor Roy Tirtho
0d080b77b7 fix(playback): sponsor block skips and stutters in same position 2024-04-07 13:05:54 +06:00
Kingkor Roy Tirtho
c8dd8025ec fix: instance of Artist bug #1362 2024-04-04 22:33:01 +06:00
Kingkor Roy Tirtho
68374efd3e
feat: LAN connect a.k.a control remote Spotube playback and local output device selection (#1355)
* feat: add connect server support

* feat: add ability discover and connect to same network Spotube(s) and sync queue

* feat(connect): add player controls, shuffle, loop, progress bar and queue support

* feat: make control page adaptive

* feat: add volume control support

* cd: upgrade macos runner version

* chore: upgrade inappwebview version to 6

* feat: customized devices button

* feat: add user icon next to devices button

* feat: add play in remote device support

* feat: show alert when new client connects

* fix: ignore the device itself from broadcast list

* fix: volume control not working

* feat: add ability to select current device's output speaker
2024-04-04 22:22:00 +06:00
Kingkor Roy Tirtho
82b1cfa0d7 feat: search history support #1236 2024-03-23 20:19:34 +06:00
Kingkor Roy Tirtho
e99f32b610 chore: set yt as jiosaavn fallback 2024-03-23 19:00:37 +06:00
Kingkor Roy Tirtho
9f96b5c537 refactor: use extension methods for simple album to album and simple track to track conversion 2024-03-21 00:48:21 +06:00
Kingkor Roy Tirtho
1cea95bbda refactor: artist name string as extension 2024-03-21 00:30:27 +06:00
Kingkor Roy Tirtho
7545ff6415 refactor: use extension method for image to url string 2024-03-21 00:18:43 +06:00
Kingkor Roy Tirtho
6673e5a8a8
feat: improved caching based on riverpod (#1343)
* feat: add riverpod based favorite album provider

* feat: add album is saved, new releases and tracks providers

* feat: add artist related providers

* feat: add all categories providers

* feat: add lyrics provider

* feat: add playlist related providers

* feat: add search provider

* feat: add view and spotify friends provider

* feat: add playlist create and update and favorite handlers

* feat: use providers in home screen

* chore: fix dart lint issues

* feat: use new providers for playlist and albums screen

* feat: use providers in artist page

* feat: use providers on library page

* feat: use provider for playlist and album card and heart button

* feat: use provider in search page

* feat: use providers in generate playlist

* feat: use provider in lyrics screen

* feat: use provider for create playlist

* feat: use provider in add track dialog

* feat: use providers in remaining pages and remove fl_query

* fix: remove direct access to provider.value

* fix: glitching when loading

* fix: user album loading next page indicator

* feat: make many provider autoDispose after 5 minutes of no usage

* fix: ignore episodes in tracks
2024-03-20 23:38:39 +06:00
Kingkor Roy Tirtho
e516afb185 fix(android): only ask battery optimization once #1252 2024-03-09 00:00:36 +06:00
Kingkor Roy Tirtho
a248a4b48c chore: fix getting started showing up everytime 2024-03-08 23:07:55 +06:00
Kingkor Roy Tirtho
5019c14c44 chore: fix getting started screen theme and bump version and generate changelogs 2024-03-08 19:50:57 +06:00
Kingkor Roy Tirtho
a9a1d4c9dc fix: album, artist page not loading #1282 2024-03-01 18:55:33 +06:00
olivier2
17105a640b
fix(android): audio issue when screen is off and broadcast audio session id (#1221 & #1247)
* this change fixes the garbled audio on my Pixel 6a while the screen is off. Not familiar with libmpv, but seems to favor audiotrack audio output over opensles. KRTirtho/spotube#571

* get audio session id, send it to AudioTrack in libmpv, broadcast it to other apps. Fixes KRTirtho/spotube#1221

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2024-02-25 22:26:06 +06:00
Kingkor Roy Tirtho
a850ed270b chore: add error handling in song link 2024-02-25 22:06:47 +06:00
Kingkor Roy Tirtho
96a2a1f5a6 feat: add getting started page 2024-02-25 22:01:38 +06:00
Kingkor Roy Tirtho
9095a8c8f8 feat: add songlink based track matching for youtube and open song link button
songlink.com will provide accurate match verified by community for most spotify tracks improving overall match accuracy for Youtube audio source
2024-02-25 11:13:23 +06:00
Kingkor Roy Tirtho
e964f61d38 fix: track loading when not found in Youtube 2024-02-17 22:22:00 +06:00
Kingkor Roy Tirtho
badd52223a chore: use piped_client git version to fix search issue 2024-02-17 22:07:32 +06:00
Kingkor Roy Tirtho
90f7c531cd fix: non-banger songs breaking the queue if sources not found
Now fallbacks to another audio source if not found in one
2024-02-17 21:33:09 +06:00
Kingkor Roy Tirtho
4defeefe7e feat: start radio support 2024-01-31 16:33:50 +06:00
Kingkor Roy Tirtho
2168a640af feat: add create playlist button in add playlist dialog 2024-01-27 21:59:10 +06:00
Kingkor Roy Tirtho
8184555ee8 feat: improve youtube/piped matching by suffixing "- Topic" 2024-01-27 21:48:38 +06:00
Kingkor Roy Tirtho
62fde50442 fix: alternative source doesn't persist on next restart #840 2024-01-27 20:59:50 +06:00
Kingkor Roy Tirtho
fd1899f162 fix: audio resumes after a phone call even if it was paused before #926 2024-01-24 10:47:02 +06:00
Kingkor Roy Tirtho
e58e18de33 fix: better error message for failing to find lyrics #1085 2024-01-23 23:13:38 +06:00
Kingkor Roy Tirtho
79839329b0
feat: add spotify friends activity (#1130)
* feat: add spotify friend endpoint

* feat: add friend activity in home screen

* fix: when no friends, dummy UI still shows giving the user a false hope of friendship :'(
2024-01-23 22:44:00 +06:00
Kingkor Roy Tirtho
a8e9b824f3 fix: alternative searched sources doesn't play #1059 2024-01-22 19:02:10 +06:00
Kingkor Roy Tirtho
8cd650b07e fix: artist page error #1018 2024-01-22 17:51:12 +06:00
Kingkor Roy Tirtho
5509cae91c fix(android): download failing for permission issues #1015 2024-01-05 20:26:57 +06:00
Kingkor Roy Tirtho
988a975bf1 feat(deep-link): add track opening page 2024-01-05 14:14:15 +06:00
franchioping
ba4e11a40a
fix: songs doesn't play when sources with preferred audio codec is empty (#976)
* Fix song not playing when m4a or weba is not available (one is available but not the other) for that song

* Update lib/services/sourced_track/sources/youtube.dart

---------

Co-authored-by: Kingkor Roy Tirtho <krtirtho@gmail.com>
2024-01-02 22:37:51 +06:00
Kingkor Roy Tirtho
2fb16e64e9 fix: genre border issues 2023-12-12 21:27:14 +06:00
Kingkor Roy Tirtho
82ed5e9057 feat: compact genre view in home page 2023-12-08 22:18:18 +06:00
Kingkor Roy Tirtho
24a2294512 feat: toggle for discord rpc 2023-12-08 13:27:31 +06:00
Kingkor Roy Tirtho
2a69886556 feat(artist): modularize page and add wikipedia section 2023-11-22 20:23:12 +06:00
Kingkor Roy Tirtho
4511a0bd00 chore: bring back edit user playlist button 2023-11-22 10:49:00 +06:00
Kingkor Roy Tirtho
7d05c40dc0 fix: use CustomScrollView for personalized page 2023-11-22 10:02:11 +06:00
Kingkor Roy Tirtho
88b8785cb8 feat: discord RPC integration #98 2023-11-22 09:32:05 +06:00
Kingkor Roy Tirtho
98aff8f3b9 chore: fix jiosaavn exact match 2023-11-21 23:13:57 +06:00
Kingkor Roy Tirtho
7818574356 fix(windows): media control not working #641 2023-11-21 21:23:08 +06:00
Kingkor Roy Tirtho
75c0c4fff4 Merge branch 'master' into dev 2023-11-21 20:11:08 +06:00
Kingkor Roy Tirtho
28a5d6bb38 feat: paginated playlist and album page 2023-11-17 13:14:25 +06:00
Kingkor Roy Tirtho
14069cd4fe
feat: Add JioSaavn as audio source (#881)
* feat: implement new SourcedTrack for youtube and piped

* refactor: replace old spotube track with sourced track

* feat: add jiosaavn as audio source

* fix: download not working other than jiosaavn

* Merge branch 'dev' into feat-jiosaavn
2023-11-15 18:34:46 +06:00