Add -I <Interval>, Remove -o <offset>, and Refactor -n
Based on this issue.
The Interval option allows to download a subset of a Playlist or all User options. It is compatible with all other options including --download-archive, --sync, and -n.
It can be used like this:
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10-36
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I -36
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10-
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10
The interval bounds are inclusive. Indexing starts from 1. The option supports left- and right-unbounded intervals. Since a right-unbounded interval equals a skip function, the offset option can be safely removed. If only one number without hyphen is given, then the single track at that index will be downloaded.
The original recency sorting -n has been refactored to just -n to avoid clashing track limits.
Some tests are currently broken.
I quite like this overall, except of the syntax. I would just use a more human way:
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10-36
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I -36
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10-
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 123 # for only one track.
With the other refactoring going on, I am not sure if this will ever get merged.
scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10-36 scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I -36 scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 10- scdl -l https://soundcloud.com/one-thousand-and-one/sets/playlist1 -I 123 # for only one track.
I changed it to this syntax and also added the support to download a single track as shown in your example. You can use my fork in the meantime.
With the other refactoring going on, I am not sure if this will ever get merged.
I switched to yt-dlp some months ago because of this.