[GH-ISSUE #118] parallel download & pre-download checks #99

Closed
opened 2026-02-27 19:02:14 +03:00 by kerem · 4 comments
Owner

Originally created by @ParthJadhav on GitHub (Nov 27, 2025).
Original GitHub issue: https://github.com/afkarxyz/SpotiFLAC/issues/118

I was able to get both the solutions to work individually, just vibe coded using cursor. Although there were lot of issues, hence scrapped the solution.

Pre Download check for existing files:

I noticed that the downloads are sequential and even if a file already exist it take quite a while for it to skip it.

There should be a pre-download check for existing files:

  1. Get all the final names for the files.
  2. Check if they exist using just their names. Should be fast enough
  3. Mark the existing ones, skipped before proceeding to downloads.

Parallel downloads

This could be a bit tricky and tedious to implement.

Originally created by @ParthJadhav on GitHub (Nov 27, 2025). Original GitHub issue: https://github.com/afkarxyz/SpotiFLAC/issues/118 I was able to get both the solutions to work individually, just vibe coded using cursor. Although there were lot of issues, hence scrapped the solution. ### Pre Download check for existing files: I noticed that the downloads are sequential and even if a file already exist it take quite a while for it to skip it. There should be a pre-download check for existing files: 1. Get all the final names for the files. 2. Check if they exist using just their names. Should be fast enough 3. Mark the existing ones, skipped before proceeding to downloads. ### Parallel downloads This could be a bit tricky and tedious to implement.
kerem closed this issue 2026-02-27 19:02:15 +03:00
Author
Owner

@afkarxyz commented on GitHub (Nov 27, 2025):

  1. For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name.
  2. I deliberately made it sequential so as not to overload the server instance.
<!-- gh-comment-id:3584746066 --> @afkarxyz commented on GitHub (Nov 27, 2025): 1. For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name. 2. I deliberately made it sequential so as not to overload the server instance.
Author
Owner

@ParthJadhav commented on GitHub (Nov 27, 2025):

For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name.

I'm working with a single large playlist for download, at first I downloaded 700 files. Then I added more 1000 files in the same playlist and started download. The ISRC check, checks all files sequentially even the existing 700 which takes a huge amount of time.

Would it be possible to add an option to use Name check along with ISRC set to default and this name check can be done very fast.

I deliberately made it sequential so as not to overload the server instance.

That's fair point.

<!-- gh-comment-id:3584767734 --> @ParthJadhav commented on GitHub (Nov 27, 2025): > For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name. I'm working with a single large playlist for download, at first I downloaded 700 files. Then I added more 1000 files in the same playlist and started download. The ISRC check, checks all files sequentially even the existing 700 which takes a huge amount of time. Would it be possible to add an option to use Name check along with ISRC set to default and this name check can be done very fast. > I deliberately made it sequential so as not to overload the server instance. That's fair point.
Author
Owner

@Pherrara commented on GitHub (Dec 15, 2025):

  1. For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name.

    1. I deliberately made it sequential so as not to overload the server instance.

@afkarxyz first of all thank you for your hard work, I've been using this software with good results.

For 2, nothing to say here, it's your choice.
As for 1, maybe you could make at least the ISRC check to run in parallel, so the "real" download queue is quickly obtained, and while it's still sequential the process should be much faster without checks between downloads.

<!-- gh-comment-id:3652479711 --> @Pherrara commented on GitHub (Dec 15, 2025): > 1. For the initial check, I use the ISRC check method. It does take a little time, but it is more accurate than just checking the file name. > > 2. I deliberately made it sequential so as not to overload the server instance. @afkarxyz first of all thank you for your hard work, I've been using this software with good results. For 2, nothing to say here, it's your choice. As for 1, maybe you could make at least the ISRC check to run in parallel, so the "real" download queue is quickly obtained, and while it's still sequential the process should be much faster without checks between downloads.
Author
Owner

@afkarxyz commented on GitHub (Dec 20, 2025):

already implemented

<!-- gh-comment-id:3677350056 --> @afkarxyz commented on GitHub (Dec 20, 2025): already implemented
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SpotiFLAC#99
No description provided.