deep-gaurav / MusicPiped

A Materialistic Music player that streams music
GNU General Public License v3.0
436 stars 59 forks source link

Update F-Droid version #33

Open quantizzed opened 5 years ago

quantizzed commented 5 years ago

The F-Droid version is stuck at v. 0.2.3-beta. Any plans to update to keep up with the Play Store version?

deep-gaurav commented 5 years ago

I'm removing ads and preparing a desktop version, will update this weekend,.

deep-gaurav commented 5 years ago

one more problem is that the new version uses invidious instead of newpipe, which might not fit for F-Droid, so i'm trying to put newpipextractor back for f-droid version

zarEclEC commented 5 years ago

Why invidious? Is it better than newpipe? @deep-gaurav

deep-gaurav commented 5 years ago

Invidious does provide more streams and more thumbnails, and scraping is done on server side so just a request is sent to api to receive json from server instead of downloading whole page and scraping it, which newpipe did, and took long time..

deep-gaurav commented 5 years ago

Released on Github, F-Droid should give update in a few days

deep-gaurav commented 5 years ago

closing this issue

deep-gaurav commented 5 years ago

Fdroid might not give update for new version, New app is built on flutter and build process is different, so fdroid build might fail, can anyone help out with it? We need to modify fdroid's yml so that it builds from android subdirectory in source instead of source directory

zarEclEC commented 5 years ago

I don't know this, I'm sorry

theScrabi commented 5 years ago

I could but I have no time. Try and open an issue at gitlab.com/fdroid/fdroiddata, and ask if this was possible.

relan commented 5 years ago

Hi,

F-Droid maintainer here. Could you post detailed instructions how to build v1.0.0? I'm stuck at

$ gradle assembleRelease

FAILURE: Build failed with an exception.

* Where:
Build file '/home/fdroid/fdroiddata/build/deep.ryd.rydplayer/android/app/build.gradle' line: 11

* What went wrong:
A problem occurred evaluating project ':app'.
> Flutter SDK not found. Define location with flutter.sdk in the local.properties file.
deep-gaurav commented 5 years ago

Hi @relan , Thanks for contacting, This app is now made with flutter so building apk needs to have flutter SDK in system. Which is essentially downloading sdk and adding flutter/bin to PATH, https://flutter.io/docs/get-started/install

Let me know if it works and I can help better

relan commented 5 years ago

Didn't work for me, unfortunately:

$ cd android/app
$ gradle clean

FAILURE: Build failed with an exception.

* Where:
Script '/home/fdroid/fdroiddata/build/srclib/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 193

* What went wrong:
A problem occurred configuring project ':path_provider'.
> Failed to notify project evaluation listener.
   > Could not get unknown property 'android' for project ':path_provider' of type org.gradle.api.Project.
   > Could not find method debugProvided() for arguments [file collection] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s

I'm using flutter 1.0.0 and gradle 4.10.2 on Debian 9.7 amd64.

deep-gaurav commented 5 years ago

I see it seems to be like an error in a flutter module path_provider. It looks like path_provider is not being downloaded from pub. This is automatically done when using flutter method to build APK, but I guess not when using gradle directly.

If you've flutter installed, running

flutter build apk in project directory should build apk

It'll also automatically sign the apk

keystore file path username and password must be provided in this file https://github.com/deep-gaurav/MusicPiped/blob/master/android/key.properties

OR alternatively you can try to run flutter packages get to get packages and rebuild app as normal. This should work.

deep-gaurav commented 5 years ago

Also just to mention, the packages downloaded from pub by flutter are sources themselves and not binary or compiled projects, so it should still be compatible with F-Droid Policy :)

relan commented 5 years ago

flutter packages get did the trick. Updated in https://gitlab.com/fdroid/fdroiddata/commit/2ca3d88cbd26f453077a53b3265f22dedb511fa9.

The only problem was that build.gradle is missing maven { url "https://jitpack.io" }, so Gradle couldn't find NewPipeExtractor. Please fix this in a future version (I added a hack for now). Also jcenter{ url "https://jcenter.bintray.com/"} looks odd.

deep-gaurav commented 5 years ago

jcenter bintray is needed to download gradle build in prepare script of flutter build which i need for testing, no additional binaries are downloaded

ff8368c adds jitpack repo so closing this issue Thank You

dimqua commented 5 years ago

@deep-gaurav did you drop Invidious support?

relan commented 5 years ago

jcenter bintray is needed to download gradle build in prepare script of flutter build which i need for testing, no additional binaries are downloaded

I meant the syntax:

jcenter{ url "https://jcenter.bintray.com/"}

It's usually

jcenter()

or

maven { url "https://jcenter.bintray.com/" }

:)

deep-gaurav commented 5 years ago

@dimqua not yet, invidious is used first but if it fails newpipe is used. But I'm thinking to remove invidious as I couldn't find localisation support in it. And for some reason it seems to be getting slower (or maybe just my network 😅)

deep-gaurav commented 5 years ago

@relaj got it, it was pregenerated by flutter so didn't looked., I'll see

omarroth commented 5 years ago

I'm not sure what you mean by localization support, but I'd like to address any issues you're having with the Invidious API.

If you want you can discuss them here, or hop on the Invidious Matrix Server so I can help you use it in your project.

deep-gaurav commented 5 years ago

Hi @omarroth , By localisation I meant I couldn't find any parameter in search API for country to search with, I think this could also be reason for #39 where some videos weren't found even after they existed on YouTube

omarroth commented 5 years ago

Added support for &region= in /api/v1/search with a7b7982.

/api/v1/search, /api/v1/trending, and /api/v1/videos support the region=REGION param. The following regions are supported for search and videos: AE, BD, BR, CA, CD, CN, DE, EG, ES, FR, GB, ID, IN, IT, JP, KR, MX, PH, PK, RU, TH, TR, VN. You can see an example here.

trending should support all regions supported by YouTube.

The default region is US and does not need to be specified.

Requests to videos and search are proxied by Invidious in order to work correctly. See my comment in #92 for more info, as there's still room for improvement.

For videos and search, I would consider the region param a "hint" for where to pull from first. Invidious will fallback on the region where it is hosted (US) if it is not able to proxy the request.

I hope all that is helpful.

I'm working on speeding up response times as much as possible. If there are any endpoints you would like to be prioritized let me know. Feel free to hop on the matrix server as mentioned above, or send me an email at omarroth@protonmail.com .

dimqua commented 5 years ago

@deep-gaurav @relan the latest version (1.0.5) still isn't on F-Droid: https://f-droid.org/packages/deep.ryd.rydplayer/

relan commented 5 years ago

@dimqua, each new version has to be added manually because of dynamic versionName: https://github.com/deep-gaurav/MusicPiped/blob/v1.0.5/android/app/build.gradle#L46

dimqua commented 5 years ago

@deep-gaurav is it possible to use a constant versionName?

deep-gaurav commented 5 years ago

Yeah that's no problem I'll use a constant version name from next version

relan commented 5 years ago

I'll use a constant version name from next version

This would be awesome. Please ping me once you do this and I'll enable automatic updates.

deep-gaurav commented 5 years ago

@relan from 861b7ee on constant version name is used, new update released too, You can enable automatic updates

relan commented 5 years ago

Added 1.0.6 in 6db8989.

fdroidserver misinterprets this part of build.gradle when checks for updates:

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

Could you remove this code? It's unused anyway. (No rush, we can wait.)

deep-gaurav commented 5 years ago

@relan removed those unused declaration in commit 1ad05e8

relan commented 5 years ago

Added 1.0.7 and enabled autoupdates in c36b7f9. Thanks!

Gitoffthelawn commented 5 years ago

F-Droid version is now stuck at v1.20 - Can it be updated?

Does this issue need to be reopened?

deep-gaurav commented 5 years ago

I didn't knew, can't say, I've released it on GitHub it should have updated on fdroid

Gitoffthelawn commented 5 years ago

Hmmm... do you have any contacts at F-Droid that might be able to tell you what's going on?

deep-gaurav commented 5 years ago

A report is generated by fdroid builder when it tries to build online, I'll have to check how to find it,

Will open issue for now. If there is no mistake in that report on app side we can open issue on fdroid repo

relan commented 5 years ago

Looks like 1ad05e8 never got into master, so the reason why F-Droid can't find updates is the same. I submitted a fix to fdroidserver but it can take ages to merge and deploy.

I built v2.0.3 but it does not work on my Android 8.1 tablet: views are empty, search never finishes. On start I get this:

06-13 20:28:06.661   441   462 I ActivityManager: Displayed deep.ryd.rydplayer/deep.ryd.MainActivity: +282ms
06-13 20:28:06.868 16606 16821 I flutter : musicpiped: Dart Handler Ready
06-13 20:28:06.906 16606 16821 E flutter : [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: Invalid argument(s)
06-13 20:28:06.906 16606 16821 E flutter : #0      _StringBase.+ (dart:core-patch/string_patch.dart:260)
06-13 20:28:06.906 16606 16821 E flutter : #1      new AudioPlayer..<anonymous closure> (package:musicpiped_pro/playerService.dart:45)
06-13 20:28:06.906 16606 16821 E flutter : #2      _rootRunUnary (dart:async/zone.dart:1132)
06-13 20:28:06.906 16606 16821 E flutter : #3      _CustomZone.runUnary (dart:async/zone.dart:1029)
06-13 20:28:06.906 16606 16821 E flutter : #4      _FutureListener.handleValue (dart:async/future_impl.dart:126)
06-13 20:28:06.906 16606 16821 E flutter : #5      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:639)
06-13 20:28:06.906 16606 16821 E flutter : #6      Future._propagateToListeners (dart:async/future_impl.dart:668)
06-13 20:28:06.906 16606 16821 E flutter : #7      Future._complete (dart:async/future_impl.dart:473)
06-13 20:28:06.906 16606 16821 E flutter : #8      _SyncCompleter.complete (dart:async/future_impl.dart:51)
06-13 20:28:06.906 16606 16821 E flutter : #9      _AsyncAwaitCompleter.complete (dart:async-patch/async_patch.dart:28)
06-13 20:28:06.906 16606 16821 E flutter : #10     _completeOnAsyncReturn (dart:async-patch/async_patch.dart:294)
06-13 20:28:06.906 16606 16821 E flutter : #11     MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:0)
06-13 20:28:06.906 16606 16821 E flutter : <asynchronous suspension>
06-13 20:28:06.906 16606 16821 E flutter : #12     new AudioPlayer. (package:musicpiped_pro/playerService.dart:45)
06-13 20:28:06.906 16606 16821 E flutter : #13     init:player (package:musicpiped_pro/main.dart:41)
06-13 20:28:06.906 16606 16821 E flutter : #14     get:player (package:musicpiped_pro/main.dart:41)
06-13 20:28:06.906 16606 16821 E flutter : #15     MyHomePageState.initState (package:musicpiped_pro/main.dart:197)
06-13 20:28:06.906 16606 16821 E flutter : #16     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3943)
06-13 20:28:06.906 16606 16821 E flutter : #17     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3814)
06-13 20:28:06.906 16606 16821 E flutter : #18     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #19     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #20     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4973)
06-13 20:28:06.906 16606 16821 E flutter : #21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #22     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3847)
06-13 20:28:06.906 16606 16821 E flutter : #24     Element.rebuild (package:flutter/src/widgets/framework.dart:3657)
06-13 20:28:06.906 16606 16821 E flutter : #25     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3819)
06-13 20:28:06.906 16606 16821 E flutter : #26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3814)
06-13 20:28:06.906 16606 16821 E flutter : #27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #28     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #29     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4973)
06-13 20:28:06.906 16606 16821 E flutter : #30     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #31     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #32     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4973)
06-13 20:28:06.906 16606 16821 E flutter : #33     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #34     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #35     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4973)
06-13 20:28:06.906 16606 16821 E flutter : #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #37     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #38     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4973)
06-13 20:28:06.906 16606 16821 E flutter : #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #40     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #41     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3847)
06-13 20:28:06.906 16606 16821 E flutter : #42     Element.rebuild (package:flutter/src/widgets/framework.dart:3657)
06-13 20:28:06.906 16606 16821 E flutter : #43     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3819)
06-13 20:28:06.906 16606 16821 E flutter : #44     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3961)
06-13 20:28:06.906 16606 16821 E flutter : #45     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3814)
06-13 20:28:06.906 16606 16821 E flutter : #46     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3053)
06-13 20:28:06.906 16606 16821 E flutter : #47     Element.updateChild (package:flutter/src/widgets/framework.dart:2856)
06-13 20:28:06.906 16606 16821 E flutter : #48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3847)
06-13 20:28:06.906 16606 16821 E flutter : #49     Element.rebuild (package:flutter/src/widgets/framework.dart:3657)
06-13 20:28:06.906 16606 16821 E flutter : #50     Com
06-13 20:28:06.956 16606 16821 I flutter : readingDB
06-13 20:28:06.956 16606 16821 I flutter : Instance of 'Future<dynamic>'
06-13 20:28:06.957 16606 16821 I flutter : Completed
06-13 20:28:06.959 16606 16821 I flutter : 0

Tried Flutter 1.6.7 and 1.7.3, seems to make no difference. Any ideas?

deep-gaurav commented 5 years ago

The error is not related to search, it looks like a player related error. Which will not effect search at all, if you're just seeing a circular progress bar all time it could be that the request is failing, I have not added an error handler.

Can you try Changing invidious instance url to something else and retry.

That being said I'll add an error handler for search in next version

relan commented 5 years ago

if you're just seeing a circular progress bar all time it could be that the request is failing

Yep.

Can you try Changing invidious instance url to something else and retry.

Tried vid.wxzm.sx, invidious.kabi.tk and invidiou.sh (from this list)---search works with neither of them.

deep-gaurav commented 5 years ago

@relan I improved search and it'll now show error if fails with retry can you check now and report error it projects if it does i.e Thanks

relan commented 5 years ago

Search works in 2.0.5 but playback never starts.

deep-gaurav commented 5 years ago

Can you monitor the logcat with search/tag "musicpiped" It should output getNewpipe Url and response codes.

From some time all url received by newpipe are giving 403 error specially in music videos.

If you're trying to play from any official channel, try out video from non official ones.

I'm trying to figure out some way to fix it

On Tue, Jun 18, 2019, 8:28 AM relan notifications@github.com wrote:

Search works in 2.0.5 but playback never starts.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/deep-gaurav/MusicPiped/issues/33?email_source=notifications&email_token=AGZHJAWLWDCG2K2UXBFVKGLP3BFMDA5CNFSM4GNBI5OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX5AUXQ#issuecomment-502925918, or mute the thread https://github.com/notifications/unsubscribe-auth/AGZHJAW7C3X4TFTPYNK6GB3P3BFMDANCNFSM4GNBI5OA .

zarEclEC commented 5 years ago

Fdroid still 1.2.0 version

deep-gaurav commented 5 years ago

Sorry for late reply, @ArmeF97 Can you create an issue on fdroid repo and link it here? Since app is completely ok from what ik

olIoNyaMIXATu commented 5 years ago

Before that, is it still 1.2.0 on fdroid for you? https://f-droid.org/en/packages/deep.ryd.rydplayer/ Here it says 1.2.0

Confirm that before everything

deep-gaurav commented 5 years ago

It does say 1.2.0 I do not know why, neither can I find build log

On Thu, Jul 4, 2019, 2:25 PM ArmelliniFederico notifications@github.com wrote:

Before that, is it still 1.2.0 on fdroid for you? https://f-droid.org/en/packages/deep.ryd.rydplayer/ Here it says 1.2.0

Confirm that before everything

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/deep-gaurav/MusicPiped/issues/33?email_source=notifications&email_token=AGZHJAWJSRAF7LT32WBU7X3P5W3JRA5CNFSM4GNBI5OKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODZGZKLY#issuecomment-508400943, or mute the thread https://github.com/notifications/unsubscribe-auth/AGZHJAXBAMRZLMKU5V3GZRTP5W3JRANCNFSM4GNBI5OA .

esmoak commented 5 years ago

Commented on this thread:

https://gitlab.com/fdroid/rfp/issues/758

Not sure if that's the best way to bring this to the forefront or if it needs a brand new issue.