Skip to content

Add -I <Interval>, Remove -o <offset>, and Refactor -n #521

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

Tjerbor
Copy link

@Tjerbor Tjerbor commented Nov 5, 2024

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.

@Tjerbor Tjerbor changed the title Add -I <Interval>, Remove of -o <offset>, and Refactor -n Add -I <Interval>, Remove -o <offset>, and Refactor -n Nov 5, 2024
@cdamian-sh
Copy link

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.

@Tjerbor
Copy link
Author

Tjerbor commented Jul 9, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants