Shabinder / SpotiFlyer

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

[BUG] : Download: NoMatchFound #312

Closed mkikets99 closed 3 years ago

mkikets99 commented 3 years ago

Describe the bug Song was able to download only once... After deleting file app can't download it again

Media Links Used:

Expected behavior Downloaded file

Screenshots Screenshot_20210730-073424.jpg Screenshot_20210730-073430.jpg

StackTrace:

DownloadLinkFetchFailed(trackName=Virtual Gaming, jioSaavnError=java.util.NoSuchElementException: Collection is empty., ytMusicError=NoMatchFound(trackName=Virtual Gaming, message=Virtual Gaming : Нічого не знайденно!), message=Посилання для завантаження не знайденно!: Virtual Gaming, 
 YtMusic Error's StackTrace: NoMatchFound(trackName=Virtual Gaming, message=Virtual Gaming : Нічого не знайденно!)
    at com.shabinder.common.di.providers.YoutubeMusic.getYTIDBestMatch(YoutubeMusic.kt:13)
    at com.shabinder.common.di.providers.YoutubeMusic.access$getYTIDBestMatch(YoutubeMusic.kt:1)
    at com.shabinder.common.di.providers.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)

 JioSaavn Error's StackTrace: java.util.NoSuchElementException: Collection is empty.
    at i.r.m.p(_ArraysJvm.kt:5)
    at com.shabinder.common.di.providers.requests.saavn.JioSaavnRequests$DefaultImpls.findMp3SongDownloadURL(JioSaavnRequests.kt:8)
    at com.shabinder.common.di.providers.requests.saavn.JioSaavnRequests$findMp3SongDownloadURL$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 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.di.FetchPlatformQueryResult.findMp3Link(FetchPlatformQueryResult.kt:18)
    at com.shabinder.common.di.FetchPlatformQueryResult.access$findMp3Link(FetchPlatformQueryResult.kt:1)
    at com.shabinder.common.di.FetchPlatformQueryResult$findMp3Link$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)

Device Info (please complete the following information):

Additional context None

brunetton commented 3 years ago

Same here, Huawei p20, Android 8, last available version from f-droid. I can post trace if it's useful, but it appears very close to this one to me.

Shabinder commented 3 years ago

image

Try in v3.3.0 and it should work: https://github.com/Shabinder/SpotiFlyer/releases/tag/v3.3.0 https://github.com/Shabinder/SpotiFlyer/tree/main#-install