Shabinder / SpotiFlyer

Kotlin Multiplatform Music Downloader, Supports Spotify / Gaana / Youtube Music / Jio Saavn / SoundCloud.
https://app.spotiflyer.in/
GNU General Public License v3.0
10.44k stars 780 forks source link

[ATTENTION HERE] : Use Apk Provided here, until I can fix all issues #374

Closed Shabinder closed 3 years ago

Shabinder commented 3 years ago

We use an External 3rd Party m4a -> mp3 converter which seems to have changed their API behavior and hence APP is DOWN and not working for the moment.

I request everybody to give me a few days, I will make some time and fix it as soon as possible.(Probably this Weekend, i.e., by Aug 9)

Please refrain from creating more issues until I fix the app and release a new version. I appreciate your understanding.

Xavier90280 commented 3 years ago

Thank You 🙌

Elrebono commented 3 years ago

Your awesome. I appreciate your work and thank you for your creation. Will contribute when I get paid. 👍👍

felix7droid commented 3 years ago

Keep it up

adnanfml commented 3 years ago

Looking forward to it. Thank you for such a great app.

HimawariFujiko commented 3 years ago

Thank you! Keep up the good work 👍

ujjwal-fsl commented 3 years ago

Bro how long will you tak to solve the issue??

Shabinder commented 3 years ago

Bro how long will you tak to solve the issue??

I am working on this , this is gonna take somewhat longer than expected

Edit: I am building a Backend and will be swapping out 2 or more components in App so I can better get Crash Reports whenever crash Occurs, So Please be patient for next update.

ujjwal-fsl commented 3 years ago

Ohh,try to solve this fast because your app has alot demand. I have an Instagram page on which I posted TOP 5 apps not on Play Store and I'm flooded with DMs of Spotiflyer link, I'm telling everyone that will send them as soon as it gets fixed.

On Mon 9 Aug, 2021, 5:27 PM Shabinder Singh, @.***> wrote:

Bro how long will you tak to solve the issue??

I am working on this , this is gonna take somewhat longer than expected

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Shabinder/SpotiFlyer/issues/374#issuecomment-895162303, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVEMTMSKKQFKB2Z2AR7FYYLT367BXANCNFSM5BT4R77Q . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .

ujjawal30 commented 3 years ago

Ohh,try to solve this fast because your app has alot demand. I have an Instagram page on which I posted TOP 5 apps not on Play Store and I'm flooded with DMs of Spotiflyer link, I'm telling everyone that will send them as soon as it gets fixed.

@ujjwal-fsl bro, I have also come here to checkout this app after seeing a random post on instagram explore section, but it is not working currently.

ujjwal-fsl commented 3 years ago

@ujjawal30 Bro you can DM me on @taknikigeek on Instagram, I can help you out for 3-4 days with some alternatives!!

adnanfml commented 3 years ago

how much longer? @Shabinder

StreamOfRon commented 3 years ago

@Shabinder have you considered adding the option to use ffmpeg if it can be located either in the working directory or on PATH? That way users will have an option to be untethered from the cloud service should it break again.

Xavier90280 commented 3 years ago

@Shabinder what is ffmpeg?

StreamOfRon commented 3 years ago

@Xavier90280 it's a nearly universal media conversion tool. https://en.wikipedia.org/wiki/FFmpeg

Shabinder commented 3 years ago

@Shabinder have you considered adding the option to use ffmpeg if it can be located either in the working directory or on PATH? That way users will have an option to be untethered from the cloud service should it break again.

Initially we used ffmpeg for same, but it increased App Size significantly and for Desktop Users it will be a root cause for many issues like not being in path, etc.

Thats why I went down on a lane for using 3rd party service and as of now I am building a backend which we will act as a fallback for Media Conversion when primary one fails (Its taking some time and hence might be available in this or next update, will see)

StreamOfRon commented 3 years ago

@Shabinder have you considered adding the option to use ffmpeg if it can be located either in the working directory or on PATH? That way users will have an option to be untethered from the cloud service should it break again.

Initially we used ffmpeg for same, but it increased App Size significantly and for Desktop Users it will be a root cause for many issues like not being in path, etc.

Thats why I went down on a lane for using 3rd party service and as of now I am building a backend which we will act as a fallback for Media Conversion when primary one fails (Its taking some time and hence might be available in this or next update, will see)

What if instead of having it be the default, you only enable it if the user supplies the path to the ffmpeg binary in the settings? I've seen a lot of apps that handle media that work that way. This would mean that it doesn't work for mobile apps but I think it would work well for the desktop app.

Shabinder commented 3 years ago

@Shabinder have you considered adding the option to use ffmpeg if it can be located either in the working directory or on PATH? That way users will have an option to be untethered from the cloud service should it break again.

Initially we used ffmpeg for same, but it increased App Size significantly and for Desktop Users it will be a root cause for many issues like not being in path, etc. Thats why I went down on a lane for using 3rd party service and as of now I am building a backend which we will act as a fallback for Media Conversion when primary one fails (Its taking some time and hence might be available in this or next update, will see)

What if instead of having it be the default, you only enable it if the user supplies the path to the ffmpeg binary in the settings? I've seen a lot of apps that handle media that work that way. This would mean that it doesn't work for mobile apps but I think it would work well for the desktop app.

Yeah that can work good for desktops, Really will be a nice feature to have, can you generate a feature request for this, in future will surely implement this :+1:

yotiko commented 3 years ago

@Shabinder whats the ETA for the update?. So i could patiently wait for the update But keep in mind that you are doing a great job 😁

backisnickel commented 3 years ago

We use an External 3rd Party m4a -> mp3 converter which seems to have changed their API behavior and hence APP is DOWN and not working for the moment.

I request everybody to give me a few days, I will make some time and fix it as soon as possible.(Probably this Weekend, i.e., by Aug 9)

Please refrain from creating more issues until I fix the app and release a new version. I appreciate your understanding.

Any luck on the fix....

Shabinder commented 3 years ago

Any luck on the fix....

I investigated the issue and apparently the 3rd Party Service has Stopped their services for m4a to mp3 conversion, Now I am evaluating other options like, self-hosting one or building and integrating FFMpeg into the app itself and their pros and cons, If I go with integrating FFMpeg route, the app release may take some extra time but it will be more stable as It won't rely on 3rd party service.

ZukeDST commented 3 years ago

Any luck on the fix....

I investigated the issue and apparently the 3rd Party Service has Stopped their services for m4a to mp3 conversion, Now I am evaluating other options like, self-hosting one or building and integrating FFMpeg into the app itself and their pros and cons, If I go with integrating FFMpeg route, the app release may take some extra time but it will be more stable as It won't rely on 3rd party service.

Can you made a temporary ersion where we can download in m4a, and do the conversion job ourselves?

0xAl3xH commented 3 years ago

Any luck on the fix....

I investigated the issue and apparently the 3rd Party Service has Stopped their services for m4a to mp3 conversion, Now I am evaluating other options like, self-hosting one or building and integrating FFMpeg into the app itself and their pros and cons, If I go with integrating FFMpeg route, the app release may take some extra time but it will be more stable as It won't rely on 3rd party service.

Can you made a temporary ersion where we can download in m4a, and do the conversion job ourselves?

@Shabinder This seems like a reasonable workaround if the conversion process will take some time to implement!

Shabinder commented 3 years ago

Can you made a temporary ersion where we can download in m4a, and do the conversion job ourselves?

@Shabinder This seems like a reasonable workaround if the conversion process will take some time to implement!

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

ghost commented 3 years ago

Can you made a temporary ersion where we can download in m4a, and do the conversion job ourselves?

@Shabinder This seems like a reasonable workaround if the conversion process will take some time to implement!

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

I think we've been waiting long enough and if you can get the app full and functional then a lil more wait is worth it instead of a temp fix

ZukeDST commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Shabinder commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Its been two days I have been messing with streamlining FFmpeg for Android so that when shipped in-app it wont bloat and as I have less experience with JNI, I am learning and doing and hence taking time.

If I simply pick someone else prebuilt ffmpeg, App starts working but it goes over 45MB in size. So that's the progress update guys

Lets do one thing, I will drop that huge apk here just for the meantime till I figure things out, Sounds Good?

adnanfml commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Its been two days I have been messing with streamlining FFmpeg for Android so that when shipped in-app it wont bloat and as I have less experience with JNI, I am learning and doing and hence taking time.

If I simply pick someone else prebuilt ffmpeg, App starts working but it goes over 45MB in size. So that's the progress update guys

Lets do one thing, I will drop that huge apk here just for the meantime till I figure things out, Sounds Good?

Yes please do that. The size doesn't matter that much.

ghost commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Its been two days I have been messing with streamlining FFmpeg for Android so that when shipped in-app it wont bloat and as I have less experience with JNI, I am learning and doing and hence taking time.

If I simply pick someone else prebuilt ffmpeg, App starts working but it goes over 45MB in size. So that's the progress update guys

Lets do one thing, I will drop that huge apk here just for the meantime till I figure things out, Sounds Good?

Can we expect it like today or something? Sorry for seeming impatient but I've got a whole list of songs ready by now😅

Jokerverse commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Its been two days I have been messing with streamlining FFmpeg for Android so that when shipped in-app it wont bloat and as I have less experience with JNI, I am learning and doing and hence taking time.

If I simply pick someone else prebuilt ffmpeg, App starts working but it goes over 45MB in size. So that's the progress update guys

Lets do one thing, I will drop that huge apk here just for the meantime till I figure things out, Sounds Good?

Sounds great man!

ZukeDST commented 3 years ago

Lemme see if I can wrap up and test the fix soon, if not will share an apk with conversion disabled(no id3 tags / metadata will be there)

@Shabinder have you an idea of the time that will be needed for the release?

Its been two days I have been messing with streamlining FFmpeg for Android so that when shipped in-app it wont bloat and as I have less experience with JNI, I am learning and doing and hence taking time.

If I simply pick someone else prebuilt ffmpeg, App starts working but it goes over 45MB in size. So that's the progress update guys

Lets do one thing, I will drop that huge apk here just for the meantime till I figure things out, Sounds Good?

@Shabinder is it released yet?

Shabinder commented 3 years ago

Can we expect it like today or something? Sorry for seeming impatient but I've got a whole list of songs ready by now😅

Hopefully today 🤞 , However I won't be making an official release for that, will simply drop APK here as I will be considering it as a preview/temp release until everything is back on track

adnanfml commented 3 years ago

Can we expect it like today or something? Sorry for seeming impatient but I've got a whole list of songs ready by now😅

Hopefully today 🤞 , However I won't be making an official release for that, will simply drop APK here as I will be considering it as a preview/temp release until everything is back on track

let's go 🥳🥳🥳

ujjwal-fsl commented 3 years ago

Can we expect it like today or something? Sorry for seeming impatient but I've got a whole list of songs ready by now😅

Hopefully today 🤞 , However I won't be making an official release for that, will simply drop APK here as I will be considering it as a preview/temp release until everything is back on track

Bring it soon, about 100-120 followers of mine are waiting for Spotiflyer, I had no idea that so many people want to download songs from Spotify🔥

ZukeDST commented 3 years ago

Bring it soon, about 100-120 followers of mine are waiting for Spotiflyer, I had no idea that so many people want to download songs from Spotify🔥

@ujjwal-fsl Told them to use Spotify to YouTube synchronization by the soundiiz app (Google play), then use spotiflyer to download the ytb playlist

Shabinder commented 3 years ago

Spotiflyer Alpha Release: https://drive.google.com/file/d/1U5WUdWhN1-A-3y5m3NcnXYEEkS5aeHZ0/view?usp=sharing Use this until I can bring the codebase back on track

ghost commented 3 years ago

Spotiflyer Alpha Release: https://drive.google.com/file/d/1U5WUdWhN1-A-3y5m3NcnXYEEkS5aeHZ0/view?usp=sharing Use this until I can bring the codebase back on track

Thanks so so much man

user1654 commented 3 years ago

Spotify download still don't work...

Shabinder commented 3 years ago

Spotify download still don't work...

It should , you should not encounter MP3 Convert Busy error, if some songs dont download that must be because of yt-match algo failure ,but this would happen on only some songs not all.

aidrouge commented 3 years ago

Unable to download 😅 from spotify

Shabinder commented 3 years ago

Unable to download 😅 from spotify

Please confirm whats the failure reason ? Mp3 converter busy ? If not then the rest issues are related to youtube matching algo.

user1654 commented 3 years ago

Spotify download still don't work...

It should , you should not encounter MP3 Convert Busy error, if some songs dont download that must be because of yt-match algo failure ,but this would happen on only some songs not all.

Now I tried multiple songs, and still download won't start.

ghost commented 3 years ago

Spotiflyer Alpha Release: https://drive.google.com/file/d/1U5WUdWhN1-A-3y5m3NcnXYEEkS5aeHZ0/view?usp=sharing Use this until I can bring the codebase back on track

Tried 3 songs so far .. 2 done. One song.. (Daydream by Johnny Orlando) Tried from Spotify and gaana... It doesn't show error in app.. but the file downloaded is barely 100 something kb and obviously doesn't play

aidrouge commented 3 years ago

DownloadLinkFetchFailed(errorTrace=Find Link for Ah Ya Leil

Fetching From Saavn Failed:DownloadLinkFetchFailed(errorTrace=No SAAVN Match Found for Ah Ya Leil) at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$DefaultImpls.findBestSongDownloadURL(JioSaavnRequests.kt:17) at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$findBestSongDownloadURL$1.invokeSuspend(JioSaavnRequests.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

Fetching From YT-Music Failed:NoMatchFound(trackName=Ah Ya Leil, message=Ah Ya Leil : NO Match Found!) at com.shabinder.common.providers.youtube_music.YoutubeMusic.getYTIDBestMatch(YoutubeMusic.kt:13) at com.shabinder.common.providers.youtube_music.YoutubeMusic.access$getYTIDBestMatch(YoutubeMusic.kt:1) at com.shabinder.common.providers.youtube_music.YoutubeMusic$getYTIDBestMatch$1.invokeSuspend(YoutubeMusic.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

) at com.shabinder.common.providers.FetchPlatformQueryResult.findBestDownloadLink(FetchPlatformQueryResult.kt:42) at com.shabinder.common.providers.FetchPlatformQueryResult$findBestDownloadLink$1.invokeSuspend(FetchPlatformQueryResult.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

vbouchet31 commented 3 years ago

This is the first time I try the app so I am not 100% sure I did it right. I copied the URL to my public playlist, then I clicked thé download all button. All failed with this error.


Fetching From Saavn Failed:DownloadLinkFetchFailed(errorTrace=No SAAVN Match Found for PDM)
    at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$DefaultImpls.findBestSongDownloadURL(JioSaavnRequests.kt:17)
    at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$findBestSongDownloadURL$1.invokeSuspend(Unknown Source:10)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

Fetching From YT-Music Failed:NoMatchFound(trackName=PDM, message=PDM : Aucun résultat trouvé !)
    at com.shabinder.common.providers.youtube_music.YoutubeMusic.getYTIDBestMatch(YoutubeMusic.kt:13)
    at com.shabinder.common.providers.youtube_music.YoutubeMusic.access$getYTIDBestMatch(YoutubeMusic.kt:1)
    at com.shabinder.common.providers.youtube_music.YoutubeMusic$getYTIDBestMatch$1.invokeSuspend(Unknown Source:12)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

)
    at com.shabinder.common.providers.FetchPlatformQueryResult.findBestDownloadLink(FetchPlatformQueryResult.kt:42)
    at com.shabinder.common.providers.FetchPlatformQueryResult$findBestDownloadLink$1.invokeSuspend(Unknown Source:12)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10)
    at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3)
    at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1)
    at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3)
    at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18)
    at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4)
    at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)
user1654 commented 3 years ago

DownloadLinkFetchFailed(errorTrace=Find Link for Ah Ya Leil

Fetching From Saavn Failed:DownloadLinkFetchFailed(errorTrace=No SAAVN Match Found for Ah Ya Leil) at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$DefaultImpls.findBestSongDownloadURL(JioSaavnRequests.kt:17) at com.shabinder.common.providers.saavn.requests.JioSaavnRequests$findBestSongDownloadURL$1.invokeSuspend(JioSaavnRequests.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

Fetching From YT-Music Failed:NoMatchFound(trackName=Ah Ya Leil, message=Ah Ya Leil : NO Match Found!) at com.shabinder.common.providers.youtube_music.YoutubeMusic.getYTIDBestMatch(YoutubeMusic.kt:13) at com.shabinder.common.providers.youtube_music.YoutubeMusic.access$getYTIDBestMatch(YoutubeMusic.kt:1) at com.shabinder.common.providers.youtube_music.YoutubeMusic$getYTIDBestMatch$1.invokeSuspend(YoutubeMusic.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

) at com.shabinder.common.providers.FetchPlatformQueryResult.findBestDownloadLink(FetchPlatformQueryResult.kt:42) at com.shabinder.common.providers.FetchPlatformQueryResult$findBestDownloadLink$1.invokeSuspend(FetchPlatformQueryResult.kt) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at io.ktor.util.pipeline.SuspendFunctionGun.resumeRootWith(SuspendFunctionGun.kt:10) at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:3) at io.ktor.util.pipeline.SuspendFunctionGun.access$loop(SuspendFunctionGun.kt:1) at io.ktor.util.pipeline.SuspendFunctionGun$continuation$1.resumeWith(SuspendFunctionGun.kt:3) at i.t.k.a.a.resumeWith(ContinuationImpl.kt:9) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:4) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:1)

Same here...

ghost commented 3 years ago

Spotiflyer Alpha Release: https://drive.google.com/file/d/1U5WUdWhN1-A-3y5m3NcnXYEEkS5aeHZ0/view?usp=sharing Use this until I can bring the codebase back on track

Tried 3 songs so far .. 2 done. One song.. (Daydream by Johnny Orlando) Tried from Spotify and gaana... It doesn't show error in app.. but the file downloaded is barely 100 something kb and obviously doesn't play

I didn't get an error in app yet... Just the file that didn't really download

Shabinder commented 3 years ago
> Fetching From Saavn Failed:DownloadLinkFetchFailed(errorTrace=No SAAVN Match Found for PDM)

> Fetching From YT-Music Failed:NoMatchFound(trackName=PDM, message=PDM : Aucun résultat trouvé !)

This error shows that there was some.issue in matching a find , its not related to conversion,if you try some other songs, many would download normally.

user1654 commented 3 years ago

This is the first time I try the app so I am not 100% sure I did it right. I copied the URL to my public playlist, then I clicked thé download all button. All failed with this error.


Fetching From Saavn Failed:DownloadLinkFetchFailed(errorTrace=No SAAVN Match Found for PDM)

Fetching From YT-Music Failed:NoMatchFound(trackName=PDM, message=PDM : Aucun résultat trouvé !)

This error shows that there was some.issue in matching a find , its not related to conversion,if you try some other songs, many would download normally.

I tried multiple songs from same artist. Should I try YT music links?

Shabinder commented 3 years ago

I tried multiple songs from same artist. Should I try YT music links? Yup its more possible to encounter issue when finding a match for same artist.

And everyone untils its mp3 conversion error/corrupted file download ,dont clutter this thread instead create new issue.

vbouchet31 commented 3 years ago

That playlist contrains about 70 songs, none match.