1
0
Fork 0
mirror of https://github.com/fiso64/slsk-batchdl.git synced 2025-01-08 06:22:43 +00:00

update readme

This commit is contained in:
fiso64 2024-12-23 11:58:49 +01:00
parent 13072ecc79
commit b5e7e58a9c
2 changed files with 177 additions and 199 deletions

197
README.md
View file

@ -186,7 +186,7 @@ Usage: sldl <input> [OPTIONS]
#### Album Download Options
```
-a, --album Album download mode: Download a folder
-t, --interactive Interactive mode, allows to select the folder and images
-t, --interactive Interactively select folders. See --help shortcuts.
--album-track-count <num> Specify the exact number of tracks in the album. Add a + or
- for inequalities, e.g '5+' for five or more tracks.
--album-art <option> Retrieve additional images after downloading the album:
@ -222,25 +222,25 @@ Flags can be explicitly disabled by setting them to false, e.g '--interactive fa
## Input types
The input type is usually determined automatically. To force a specific input type, set
--input-type [spotify|youtube|csv|string|bandcamp|list]. The following input types are available:
The input type is usually determined automatically, however it's possible to manually set it
with `--input-type`. The following input types are available:
### CSV file
Path to a local CSV file: Use a csv file containing track info of the songs to download.
The names of the columns should be Artist, Title, Album, Length, although alternative names
are usually detected as well. Only the title or album column is required, but extra info may
improve search result ranking. Every row that does not have a title column text will be treated
as an album download.
Path to a local CSV file. Use a csv file containing track information to download a list of
songs or albums. Only the title or album column is required, but extra info may improve search
result ranking. If the columns have common names ('Artist', 'Title', 'Album', 'Length', etc)
then it's not required to manually specify them. Rows that do not have any text in the title
column will be treated as album downloads.
### YouTube
A playlist url: Download songs from a youtube playlist.
The default method to retrieve playlists doesn't always return all videos, especially not
the ones which are unavailable. To get all video titles, you can use the official API by
providing a key with --youtube-key. Get it here https://console.cloud.google.com. Create a
new project, click "Enable Api" and search for "youtube data", then follow the prompts.
A YouTube playlist url. Download songs from a youtube playlist.
The default method to retrieve playlists does not reliably return all videos. To get all
video titles, you can use the official API by providing a key with `--youtube-key`. A key can
be obtained at https://console.cloud.google.com. Create a new project, click 'Enable Api' and
search for 'youtube data', then follow the prompts.
### Spotify
A playlist/album url or 'spotify-likes': Download a spotify playlist, album, or your
A playlist/album url, or 'spotify-likes'. Download a spotify playlist, album, or your
liked songs. Credentials are required when downloading a private playlist or liked music.
#### Using Credentials
@ -267,62 +267,59 @@ spotify-token access is only valid for 1 hour. spotify-refresh will enable sldl
</details>
### Bandcamp
A bandcamp url: Download a single track, an album, or an artist's entire discography.
Extracts the artist name, album name and sets --album-track-count="n+", where n is the
number of visible tracks on the bandcamp page.
A bandcamp track, album, or artist url. Download a single track, an album, or an artist's
entire discography.
### Search string
Name of the track, album, or artist to search for: Can either be any typical search string
(like what you would enter into the soulseek search bar), or a comma-separated list of
properties like 'title=Song Name, artist=Artist Name, length=215'.
Name of the track, album, or artist to search for. The input can either be an arbitrary
search string (like what you would type in the soulseek search bar), or a comma-separated
list of properties of the form `title=Song Name, artist=Artist Name, length=215`.
The following properties are accepted: title, artist, album, length (in seconds),
artist-maybe-wrong, album-track-count.
Example inputs and their interpretations:
Example inputs:
| Input String | Artist | Title | Album | Length |
|-----------------------------------------|----------|----------|----------|--------|
| 'Foo Bar' (without any hyphens) | | Foo Bar | | |
| 'Foo - Bar' | Foo | Bar | | |
| 'Foo - Bar' (with --album enabled) | Foo | | Bar | |
| 'Artist - Title, length=42' | Artist | Title | | 42 |
| 'artist=AR, title=T, album=AL' | AR | T | AL | |
| Foo Bar (without hyphens) | | Foo Bar | | |
| Foo - Bar | Foo | Bar | | |
| Foo - Bar (with --album) | Foo | | Bar | |
| Artist - Title, length=42 | Artist | Title | | 42 |
| artist=AR, title=T, album=AL | AR | T | AL | |
### List
A path to a text file where each line has the following form:
List input must be manually activated with `--input-type=list`. The input is a path to a text
file containing lines of the following form:
```bash
# input conditions pref. conditions
"artist=Artist, album=Album" "format=mp3; br > 128" "br >= 320"
artist=Artist,album=Album format=mp3;br>128 "br >= 320"
```
Where "some input" is any of the above input types. The quotes can be omitted if the field
contains no spaces. The condition fields are added on top of the
configured conditions and can also be omitted. List input must be manually activated with
--input-type=list.
It also accepts a shorthand for album downloads: `a:"Artist - Album"`. Note that the `a:` must appear outside the quotes.
The inputs can be any of the above input types. The conditions are added on top of the
configured conditions and can be omitted.
For album downloads, the above example can be written briefly as `a:"Artist - Album"` (note
that `a:` must appear outside the quotes).
## Download modes
### Normal
The default. Downloads a single file for every input entry.
The default. Downloads a single file for every input entry.
### Album
sldl will search for the album and download an entire folder including non-audio
files. Activated when the input is a link to a spotify or bandcamp album, when the input
string or csv row has no track title, or when -a/--album is enabled.
sldl will search for the album and download an entire folder including non-audio
files. Activated when the input is a link to a spotify or bandcamp album, when the input
string or csv row has no track title, or when `-a/--album` is enabled.
### Aggregate
With -g/--aggregate, sldl performs an ordinary search for the input then attempts to
group the results into distinct songs and download one of each kind, starting with the one
shared by the most users.
Note that --min-shares-aggregate is 2 by default, which means that songs shared by only
one user will be ignored.
With `-g/--aggregate`, sldl performs an ordinary search for the input, then attempts to
group the results into distinct songs and download one of each, starting with the one shared
by the most users. Note that `--min-shares-aggregate` is 2 by default, meaning that songs
shared by only one user will be ignored.
### Album Aggregate
Activated when both --album and --aggregate are enabled. sldl will group shares and download
one of each distinct album, starting with the one shared by the most users. It is
recommended to pair this with --interactive.
Note that --min-shares-aggregate is 2 by default, which means that albums shared by only
one user will be ignored.
Activated when both `--album` and `--aggregate` are enabled. sldl will group shares and
download one of each distinct album, starting with the one shared by the most users. It is
recommended to pair this with `--interactive`. Note that `--min-shares-aggregate` is 2 by
default, meaning that albums shared by only one user will be ignored.
## Searching
@ -336,28 +333,28 @@ The search query is determined as follows:
Otherwise, search for 'Artist Album'
### Soulseek's rate limits
The server will ban you for 30 minutes if too many searches are performed within a short
timespan. The program has a search limiter which can be adjusted with --searches-per-time
and --searches-renew-time (when the limit is reached, the status of the downloads will be
"Waiting"). By default it is configured to allow up to 34 searches every 220 seconds.
The default values were determined through experimentation, so they may be incorrect.
The server may ban users for 30 minutes if too many searches are performed within a short
timespan. sldl has a search limiter which can be adjusted with `--searches-per-time`
and `--searches-renew-time` (when the limit is reached, the status of the downloads will be
'Waiting'). By default it is configured to allow up to 34 searches every 220 seconds.
The default values were determined through experimentation, so they may be incorrect.
### Speeding things up
The following options will make it go faster, but may decrease search result quality or cause
instability:
- --fast-search skips waiting until the search completes and downloads as soon as a file
matching the preferred conditions is found
- --concurrent-downloads - set it to 4 or more
- --max-stale-time is set to 50 seconds by default, so it will wait a long time before giving
up on a file
- --searches-per-time - increase at the risk of bans
- --album-parallel-search - enables parallel searching for album entries
The following options will make it go faster, but may decrease search result quality or cause
instability:
- `--fast-search` skips waiting until the search completes and downloads as soon as a file
matching the preferred conditions is found
- `--concurrent-downloads` - set it to 4 or more
- `--max-stale-time` is set to 50 seconds by default, sldl will wait a long time before giving
up on a file
- `--searches-per-time` - increase at the risk of bans, see above
- `--album-parallel-search` - enables parallel searching for album entries
## File conditions
Files not satisfying the required conditions will not be downloaded. Files satisfying pref-
conditions will be preferred; setting --pref-format "flac,wav" will make it download lossless
files if available, and only download lossy files if there's nothing else.
Files not satisfying the required conditions will be ignored. Files satisfying pref-conditions
will be preferred: With `--pref-format flac,wav` sldl will try to download lossless files if
available, but still accept lossy files.
There are no default required conditions. The default preferred conditions are:
```
@ -371,36 +368,32 @@ pref-strict-album = true
pref-accept-no-length = false
```
sldl will therefore prefer mp3 files with bitrate between 200 and 2500 kbps, and whose length
differs from the supplied length by no more than 3 seconds. It will also prefer files whose
paths contain the supplied title and album (ignoring case, and bounded by boundary characters)
and which have non-null length. Changing the last three preferred conditions is not recommended.
Note that files satisfying a subset of the preferred conditions will still be preferred over files
that don't satisfy any condition, but some conditions have precedence over others. For instance,
a file that only satisfies strict-title (if enabled) will always be preferred over a file that
only satisfies the format condition. Run with --print "results-full" to reveal the sorting logic.
differs from the supplied length by no more than 3 seconds. Additionally, it will prefer files
whose paths contain the supplied title and album and which have non-null length. Changing the
last three preferred conditions is not recommended.
Conditions can also be supplied as a semicolon-delimited string with --cond and --pref, e.g
`--cond "br >= 320; format = mp3,ogg; sr < 96000"`.
Note that files satisfying only a subset of the conditions will be preferred over files that don't
satisfy any condition. Run a search with `--print results-full` to reveal the sorting logic.
Conditions can also be supplied as a semicolon-delimited string with `--cond` and `--pref`, e.g
`--cond "br>=320; format=mp3,ogg; sr<96000"`.
### Filtering irrelevant results
The options --strict-title, --strict-artist and --strict-album will filter any file that
does not contain the title/artist/album in the filename (ignoring case, bounded by boundary
chars).
Another way to prevent false downloads is to set --length-tol to 3 or less to make it ignore
any songs that differ from the input by more than 3 seconds. However, all 4 options are already
enabled as 'preferred' conditions by default, meaning that such files will only be downloaded
as a last resort anyways. Hence it is only recommended to enable them if you need to minimize
false downloads as much as possible, or for special cases like tracks or albums whose name
is just one or a two characters.
The options `--strict-title`, `--strict-artist` and `--strict-album` will filter any file that
does not contain the title/artist/album in the path (ignoring case, bounded by boundary chars).
Another way to prevent false downloads is to set `--length-tol` to 3 or less to make it ignore
any songs that differ from the input by more than 3 seconds. However, all 4 options are already
enabled as 'preferred' conditions by default. Hence it is only recommended to enable them for
special cases, like albums whose name is just one or two characters.
### Important note
Some info may be unavailable depending on the client used by the peer. For example, the standard
Soulseek client does not share the file bitrate. If (e.g) --min-bitrate is set, then sldl will
still accept any file with unknown bitrate. You can configure it to reject all files where one
or more of the checked properties is null (unknown) by enabling --strict-conditions.
As a consequence, if --min-bitrate is also set then any files shared by users with the default
client will be ignored. Also note that the default preferred conditions will already affect
ranking with this option due to the bitrate and samplerate checks.
Some info may be unavailable depending on the client used by the peer. If (e.g) `--min-bitrate`
is set, then sldl will still accept any file with unknown bitrate. To reject all files where one
or more of the checked properties is null (unknown), enable `--strict-conditions`.
As a consequence, if `--min-bitrate` is also set then any files shared by users with the default
client will be ignored, since the default client does not broadcast the bitrate. Also note that
the default preferred conditions will already affect ranking with this option due to the bitrate
and samplerate checks.
## Name format
@ -441,33 +434,33 @@ default-folder Default sldl folder name (usually the playlist n
## Configuration
### Config Location
sldl will look for a file named sldl.conf in the following locations:
sldl will look for a file named sldl.conf in the following locations:
```
~/AppData/Roaming/sldl/sldl.conf
~/.config/sldl/sldl.conf
```
as well as in the directory of the executable.
as well as in the directory of the executable.
### Syntax
Example config file:
Example config file:
```
username = your-username
password = your-password
pref-format = flac
fast-search = true
```
Lines starting with hashtags (#) will be ignored. Tildes in paths are expanded as the user
directory. The path variable `{bindir}` stores the directory of the sldl binary.
Lines starting with hashtags (#) will be ignored. Tildes in paths are expanded as the user
directory. The path variable `{bindir}` stores the directory of the sldl binary.
### Configuration profiles
Profiles are supported:
Profiles are supported:
```
[lossless]
pref-format = flac,wav
```
To activate the above profile, run --profile "lossless". To list all available profiles,
run --profile "help".
Profiles can be activated automatically based on a few simple conditions:
To activate the above profile, run `--profile lossless`. To list all available profiles,
run `--profile help`.
Profiles can be activated automatically based on a few simple conditions:
```
[no-stale]
profile-cond = interactive && download-mode == "album"
@ -479,8 +472,8 @@ profile-cond = input-type == "youtube"
path = ~/downloads/sldl-youtube
# download to another location for youtube
```
The following operators are supported for use in profile-cond: &&, ||, ==, !=, !{bool}.
The following variables are available:
The following operators are supported for use in profile-cond: &&, ||, ==, !=, !{bool}.
The following variables are available:
```
input-type ("youtube"|"csv"|"string"|"bandcamp"|"spotify")
download-mode ("normal"|"aggregate"|"album"|"album-aggregate")
@ -528,7 +521,7 @@ sldl "Some Album" -a -t
```
<br>
Download a specific song by name, preferring lossless:
Download a specific song by name and length, preferring lossless:
```
sldl "MC MENTAL @ HIS BEST, length=242" --pref-format "flac,wav"
```
@ -572,7 +565,7 @@ input-type = list
index-path = ~/sldl/wishlist-index.sldl
album-parallel-search = true
```
This will create a global index file `wishlist-index.sldl` which will be scanned every time sldl is run to skip wishlist items that have already been downloaded. If you want to continue searching until a version satisfying the preferred conditions is downloaded, also add `skip-check-pref-cond = true` (note that this requires the files to remain in the same spot after being downloaded).
This will create a global index file `wishlist-index.sldl` which will be scanned every time sldl is run to skip wishlist items that have already been downloaded. If you want to continue searching until a version satisfying the preferred conditions is found, also add `skip-check-pref-cond = true` (note that this requires the files to remain in the same spot after being downloaded).
Finally, set up a cron job (or a scheduled task on windows) to periodically run sldl with the following option:
```
sldl --profile wishlist

View file

@ -155,7 +155,7 @@ public static class Help
Album Download
-a, --album Album download mode: Download a folder
-t, --interactive Interactive mode, allows to select the folder and images
-t, --interactive Interactively select folders. See --help shortcuts.
--album-track-count <num> Specify the exact number of tracks in the album. Add a + or
- for inequalities, e.g '5+' for five or more tracks.
--album-art <option> Retrieve additional images after downloading the album:
@ -197,29 +197,26 @@ public static class Help
const string inputHelp = @"
Input types
The input type is usually determined automatically. To force a specific input type, set
--input-type [spotify|youtube|csv|string|bandcamp|list]. The following input types are available:
The input type is usually determined automatically, however it's possible to manually set it
with `--input-type`. The following input types are available:
CSV file
Path to a local CSV file: Use a csv file containing track info of the songs to download.
The names of the columns should be Artist, Title, Album, Length, although alternative names
are usually detected as well. Only the title or album column is required, but extra info may
improve search result ranking. Every row that does not have a title column text will be treated
as an album download.
Path to a local CSV file. Use a csv file containing track information to download a list of
songs or albums. Only the title or album column is required, but extra info may improve search
result ranking. If the columns have common names ('Artist', 'Title', 'Album', 'Length', etc)
then it's not required to manually specify them. Rows that do not have any text in the title
column will be treated as album downloads.
YouTube
A playlist url: Download songs from a youtube playlist.
The default method to retrieve playlists doesn't always return all videos, especially not
the ones which are unavailable. To get all video titles, you can use the official API by
providing a key with --youtube-key. Get it here https://console.cloud.google.com. Create a
new project, click ""Enable Api"" and search for ""youtube data"", then follow the prompts.
A YouTube playlist url. Download songs from a youtube playlist.
The default method to retrieve playlists does not reliably return all videos. To get all
video titles, you can use the official API by providing a key with `--youtube-key`. A key can
be obtained at https://console.cloud.google.com. Create a new project, click 'Enable Api' and
search for 'youtube data', then follow the prompts.
Spotify
A playlist/album url or 'spotify-likes': Download a spotify playlist, album, or your
liked songs. --spotify-id and --spotify-secret are required in addition when downloading
a private playlist or liked music.
The id and secret can be obtained at https://developer.spotify.com/dashboard/applications.
Create an app and add http://localhost:48721/callback as a redirect url in its settings.
A playlist/album url, or 'spotify-likes'. Download a spotify playlist, album, or your
liked songs. Credentials are required when downloading a private playlist or liked music.
Using Credentials
Create a Spotify application at https://developer.spotify.com/dashboard/applications with a
@ -242,42 +239,37 @@ public static class Help
access every time it is run (and can be used without including spotify-token).
Bandcamp
A bandcamp url: Download a single track, an album, or an artist's entire discography.
Extracts the artist name, album name and sets --album-track-count=""n+"", where n is the
number of visible tracks on the bandcamp page.
A bandcamp track, album, or artist url. Download a single track, an album, or an artist's
entire discography.
Search string
Name of the track, album, or artist to search for: Can either be any typical search string
(like what you would enter into the soulseek search bar), or a comma-separated list of
properties like 'title=Song Name, artist=Artist Name, length=215'.
Name of the track, album, or artist to search for. The input can either be an arbitrary
search string (like what you would type in the soulseek search bar), or a comma-separated
list of properties of the form `title=Song Name, artist=Artist Name, length=215`.
The following properties are accepted: title, artist, album, length (in seconds),
artist-maybe-wrong, album-track-count.
Example inputs and their interpretations:
Input String | Artist | Title | Album | Length
---------------------------------------------------------------------------------
'Foo Bar' (without any hyphens) | | Foo Bar | |
'Foo - Bar' | Foo | Bar | |
'Foo - Bar' (with --album enabled) | Foo | | Bar |
'Artist - Title, length=42' | Artist | Title | | 42
'artist=AR, title=T, album=AL' | AR | T | AL |
Example inputs:
| Input String | Artist | Title | Album | Length |
|-----------------------------------------|----------|----------|----------|--------|
| Foo Bar (without hyphens) | | Foo Bar | | |
| Foo - Bar | Foo | Bar | | |
| Foo - Bar (with --album) | Foo | | Bar | |
| Artist - Title, length=42 | Artist | Title | | 42 |
| artist=AR, title=T, album=AL | AR | T | AL | |
List
A path to a text file where each line has the following form:
List input must be manually activated with `--input-type=list`. The input is a path to a text
file containing lines of the following form:
""some input"" ""conditions"" ""preferred conditions""
# input conditions pref. conditions
artist=Artist,album=Album format=mp3;br>128 ""br >= 320""
for example:
""artist=Artist, album=Album"" ""format=mp3; br > 128"" ""br >= 320""
Where ""some input"" is any of the above input types. The quotes can be omitted if the field
contains no spaces. The condition fields are added on top of the
configured conditions and can also be omitted. List input must be manually activated with
--input-type=list.
It also accepts a shorthand for album downloads: a:""Artist - Album"". Note that the a: must
appear outside the quotes.
The inputs can be any of the above input types. The conditions are added on top of the
configured conditions and can be omitted.
For album downloads, the above example can be written briefly as `a:""Artist - Album""` (note
that `a:` must appear outside the quotes).
";
const string downloadModesHelp = @"
@ -287,23 +279,21 @@ public static class Help
The default. Downloads a single file for every input entry.
Album
sldl will search for the album and download an entire folder including non-audio files.
Activated when the input is a link to a spotify or bandcamp album, when the input string
or csv row has no track title, or when -a/--album is enabled.
sldl will search for the album and download an entire folder including non-audio
files. Activated when the input is a link to a spotify or bandcamp album, when the input
string or csv row has no track title, or when `-a/--album` is enabled.
Aggregate
With -g/--aggregate, sldl performs an ordinary search for the input then attempts to
group the results into distinct songs and download one of each kind, starting with the one
which is shared by the most users.
Note that --min-shares-aggregate is 2 by default, which means that songs shared by only
one user will be ignored.
With `-g/--aggregate`, sldl performs an ordinary search for the input, then attempts to
group the results into distinct songs and download one of each, starting with the one shared
by the most users. Note that `--min-shares-aggregate` is 2 by default, meaning that songs
shared by only one user will be ignored.
Album Aggregate
Activated when both --album and --aggregate are enabled. sldl will group shares and download
one of each distinct album, starting with the one shared by the most users. It's
recommended to pair this with --interactive.
Note that --min-shares-aggregate is 2 by default, which means that albums shared by only
one user will be ignored.
Activated when both `--album` and `--aggregate` are enabled. sldl will group shares and
download one of each distinct album, starting with the one shared by the most users. It is
recommended to pair this with `--interactive`. Note that `--min-shares-aggregate` is 2 by
default, meaning that albums shared by only one user will be ignored.
";
const string searchHelp = @"
@ -318,32 +308,31 @@ public static class Help
Otherwise, search for 'Artist Album'
Soulseek's rate limits
The server will ban you for 30 minutes if too many searches are performed within a short
timespan. The program has a search limiter which can be adjusted with --searches-per-time
and --searches-renew-time (when the limit is reached, the status of the downloads will be
""Waiting""). By default it is configured to allow up to 34 searches every 220 seconds.
The server may ban users for 30 minutes if too many searches are performed within a short
timespan. sldl has a search limiter which can be adjusted with `--searches-per-time`
and `--searches-renew-time` (when the limit is reached, the status of the downloads will be
'Waiting'). By default it is configured to allow up to 34 searches every 220 seconds.
The default values were determined through experimentation, so they may be incorrect.
Speeding things up
The following options will make it go faster, but may decrease search result quality or cause
instability:
--fast-search skips waiting until the search completes and downloads as soon as a file
matching the preferred conditions is found
--concurrent-downloads - set it to 4 or more
--max-stale-time is set to 50 seconds by default, so it will wait a long time before giving
up on a file
--searches-per-time - increase at the risk of bans
--album-parallel-search - enables parallel searching for album entries
- `--fast-search` skips waiting until the search completes and downloads as soon as a file
matching the preferred conditions is found
- `--concurrent-downloads` - set it to 4 or more
- `--max-stale-time` is set to 50 seconds by default, sldl will wait a long time before giving
up on a file
- `--searches-per-time` - increase at the risk of bans, see above
- `--album-parallel-search` - enables parallel searching for album entries
";
const string fileConditionsHelp = @"
File conditions
Files not satisfying the required conditions will not be downloaded. Files satisfying pref-
conditions will be preferred; setting --pref-format ""flac,wav"" will make it download lossless
files if available, and only download lossy files if there's nothing else.
Files not satisfying the required conditions will be ignored. Files satisfying pref-conditions
will be preferred: With `--pref-format flac,wav` sldl will try to download lossless files if
available, but still accept lossy files.
There are no default required conditions. The default preferred conditions are:
pref-format = mp3
@ -356,36 +345,32 @@ public static class Help
pref-accept-no-length = false
sldl will therefore prefer mp3 files with bitrate between 200 and 2500 kbps, and whose length
differs from the supplied length by no more than 3 seconds. It will also prefer files whose
paths contain the supplied title and album (ignoring case, and bounded by boundary characters)
and which have non-null length. Changing the last three preferred conditions is not recommended.
Note that files satisfying a subset of the preferred conditions will still be preferred over files
that don't satisfy any condition, but some conditions have precedence over others. For instance,
a file that only satisfies strict-title (if enabled) will always be preferred over a file that
only satisfies the format condition. Run with --print ""results-full"" to reveal the sorting logic.
differs from the supplied length by no more than 3 seconds. Additionally, it will prefer files
whose paths contain the supplied title and album and which have non-null length. Changing the
last three preferred conditions is not recommended.
Conditions can also be supplied as a semicolon-delimited string with --cond and --pref, e.g
--cond ""br >= 320; format = mp3,ogg; sr < 96000"".
Note that files satisfying only a subset of the conditions will be preferred over files that don't
satisfy any condition. Run a search with `--print results-full` to reveal the sorting logic.
Conditions can also be supplied as a semicolon-delimited string with `--cond` and `--pref`, e.g
`--cond ""br>=320; format=mp3,ogg; sr<96000""`.
Filtering irrelevant results
The options --strict-title, --strict-artist and --strict-album will filter any file that
does not contain the title/artist/album in the filename (ignoring case, bounded by boundary
chars).
Another way to prevent false downloads is to set --length-tol to 3 or less to make it ignore
The options `--strict-title`, `--strict-artist` and `--strict-album` will filter any file that
does not contain the title/artist/album in the path (ignoring case, bounded by boundary chars).
Another way to prevent false downloads is to set `--length-tol` to 3 or less to make it ignore
any songs that differ from the input by more than 3 seconds. However, all 4 options are already
enabled as 'preferred' conditions by default, meaning that such files will only be downloaded
as a last resort anyways. Hence it is only recommended to enable them if you need to minimize
false downloads as much as possible, or for special cases like tracks or albums whose name
is just one or a two characters.
enabled as 'preferred' conditions by default. Hence it is only recommended to enable them for
special cases, like albums whose name is just one or two characters.
Important note
Some info may be unavailable depending on the client used by the peer. For example, the standard
Soulseek client does not share the file bitrate. If (e.g) --min-bitrate is set, then sldl will
still accept any file with unknown bitrate. You can configure it to reject all files where one
or more of the checked properties is null (unknown) by enabling --strict-conditions.
As a consequence, if --min-bitrate is also set then any files shared by users with the default
client will be ignored. Also note that the default preferred conditions will already affect
ranking with this option due to the bitrate and samplerate checks.
Some info may be unavailable depending on the client used by the peer. If (e.g) `--min-bitrate`
is set, then sldl will still accept any file with unknown bitrate. To reject all files where one
or more of the checked properties is null (unknown), enable `--strict-conditions`.
As a consequence, if `--min-bitrate` is also set then any files shared by users with the default
client will be ignored, since the default client does not broadcast the bitrate. Also note that
the default preferred conditions will already affect ranking with this option due to the bitrate
and samplerate checks.
";
const string nameFormatHelp = @"