mirror of
https://zotify.xyz/zotify/zotify.git
synced 2024-11-10 01:02:06 +01:00
Merge pull request 'Various fixes from github issues and PRs' (#8) from octoshrimpy/zotify:main into main
Reviewed-on: https://zotify.xyz/zotify/zotify/pulls/8
This commit is contained in:
commit
0db75acc7e
4 changed files with 54 additions and 10 deletions
32
INSTALLATION.md
Normal file
32
INSTALLATION.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
### Installing Zotify
|
||||
|
||||
> **Windows**
|
||||
|
||||
This guide uses *Scoop* (https://scoop.sh) to simplify installing prerequisites and *pipx* to manage Zotify itself.
|
||||
There are other ways to install and run Zotify on Windows but this is the official recommendation, other methods of installation will not receive support.
|
||||
|
||||
- Open PowerShell (cmd will not work)
|
||||
- Install Scoop by running:
|
||||
- `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`
|
||||
- `irm get.scoop.sh | iex`
|
||||
- After installing scoop run: `scoop install python ffmpeg-shared git`
|
||||
- Install pipx:
|
||||
- `python3 -m pip install --user pipx`
|
||||
- `python3 -m pipx ensurepath`
|
||||
Now close PowerShell and reopen it to ensure the pipx command is available.
|
||||
- Install Zotify with: `pipx install https://get.zotify.xyz`
|
||||
- Done! Use `zotify --help` for a basic list of commands or check the *README.md* file in Zotify's code repository for full documentation.
|
||||
|
||||
> **macOS**
|
||||
- Open the Terminal app
|
||||
- Install *Homebrew* (https://brew.sh) by running: `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
|
||||
- After installing Homebrew run: `brew install python@3.11 pipx ffmpeg git`
|
||||
- Setup pipx: `pipx ensurepath`
|
||||
- Install Zotify: `pipx install https://get.zotify.xyz`
|
||||
- Done! Use `zotify --help` for a basic list of commands or check the README.md file in Zotify's code repository for full documentation.
|
||||
|
||||
> **Linux (Most Popular Distributions)**
|
||||
- Install `python3`, `pip` (if a separate package), `ffmpeg`, and `git` from your distribution's package manager or software center.
|
||||
- Then install pipx, either from your package manager or through pip with: `python3 -m pip install --user pipx`
|
||||
- Install Zotify `pipx install https://get.zotify.xyz`
|
||||
- Done! Use `zotify --help` for a basic list of commands or check the README.md file in Zotify's code repository for full documentation.
|
24
README.md
24
README.md
|
@ -3,10 +3,10 @@
|
|||
### A highly customizable music and podcast downloader.
|
||||
|
||||
<p align="center">
|
||||
<img src="https://i.imgur.com/hGXQWSl.png" width="50%">
|
||||
<img src="https://i.imgur.com/hGXQWSl.png" width="50%" alt="Zotify logo">
|
||||
</p>
|
||||
|
||||
### Featues
|
||||
### Features
|
||||
- Downloads at up to 320kbps*
|
||||
- Downloads directly from the source**
|
||||
- Downloads podcasts, playlists, liked songs, albums, artists, singles.
|
||||
|
@ -40,12 +40,13 @@ Basic command line usage:
|
|||
zotify <track/album/playlist/episode/artist url> Downloads the track, album, playlist or podcast episode specified as a command line argument. If an artist url is given, all albums by specified artist will be downloaded. Can take multiple urls.
|
||||
|
||||
Basic options:
|
||||
(nothing) Download the tracks/alumbs/playlists URLs from the parameter
|
||||
-d, --download Download all tracks/alumbs/playlists URLs from the specified file
|
||||
(nothing) Download the tracks/albums/playlists URLs from the parameter
|
||||
-d, --download Download all tracks/albums/playlists URLs from the specified file
|
||||
-p, --playlist Downloads a saved playlist from your account
|
||||
-l, --liked Downloads all the liked songs from your account
|
||||
-f, --followed Downloads all songs by all artists you follow
|
||||
-s, --search Searches for specified track, album, artist or playlist, loads search prompt if none are given.
|
||||
-h, --help See this message.
|
||||
```
|
||||
|
||||
### Options
|
||||
|
@ -67,7 +68,7 @@ Be aware you have to set boolean values in the commandline like this: `--downloa
|
|||
| DOWNLOAD_FORMAT | --download-format | The download audio format (aac, fdk_aac, m4a, mp3, ogg, opus, vorbis)
|
||||
| DOWNLOAD_QUALITY | --download-quality | Audio quality of downloaded songs (normal, high, very_high*)
|
||||
| TRANSCODE_BITRATE | --transcode-bitrate | Overwrite the bitrate for ffmpeg encoding
|
||||
| SKIP_EXISTING_FILES | --skip-existing-files | Skip songs with the same name
|
||||
| SKIP_EXISTING_FILES | --skip-existing | Skip songs with the same name
|
||||
| SKIP_PREVIOUSLY_DOWNLOADED | --skip-previously-downloaded | Use a song_archive file to skip previously downloaded songs
|
||||
| RETRY_ATTEMPTS | --retry-attempts | Number of times Zotify will retry a failed request
|
||||
| BULK_WAIT_TIME | --bulk-wait-time | The wait time between bulk downloads
|
||||
|
@ -84,6 +85,17 @@ Be aware you have to set boolean values in the commandline like this: `--downloa
|
|||
|
||||
*very-high is limited to premium only
|
||||
|
||||
### Configuration
|
||||
|
||||
You can find the configuration file in following locations:
|
||||
| OS | Location
|
||||
|-----------------|---------------------------------------------------------|
|
||||
| Windows | `C:\Users\<USERNAME>\AppData\Roaming\Zotify\config.json`|
|
||||
| MacOS | `/Users/<USERNAME>/.config/zotify/config.json` |
|
||||
| Linux | `/home/<USERNAME>/.config/zotify/config.json` |
|
||||
|
||||
To log out, just remove the configuration file. Uninstalling Zotify does not remove the config file.
|
||||
|
||||
### Output format
|
||||
|
||||
With the option `OUTPUT` (or the commandline parameter `--output`) you can specify the output location and format.
|
||||
|
@ -133,7 +145,7 @@ If you see this, don't worry! Just try logging back in. If you see the incorrect
|
|||
Currently no user has reported their account getting banned after using Zotify.
|
||||
|
||||
It is recommended you use Zotify with a burner account.
|
||||
Alternatively, there is a configuration option labled ```DOWNLOAD_REAL_TIME```, this limits the download speed to the duration of the song being downloaded thus appearing less suspicious.
|
||||
Alternatively, there is a configuration option labeled ```DOWNLOAD_REAL_TIME```, this limits the download speed to the duration of the song being downloaded thus appearing less suspicious.
|
||||
This option is much slower and is only recommended for premium users who wish to download songs in 320kbps without buying premium on a burner account.
|
||||
|
||||
### Disclaimer
|
||||
|
|
|
@ -152,7 +152,7 @@ def search(search_term):
|
|||
try:
|
||||
int(splits[index+1])
|
||||
except ValueError:
|
||||
raise ValueError('Paramater passed after {} option must be an integer.\n'.
|
||||
raise ValueError('Parameter passed after {} option must be an integer.\n'.
|
||||
format(split))
|
||||
if int(splits[index+1]) > 50:
|
||||
raise ValueError('Invalid limit passed. Max is 50.\n')
|
||||
|
|
|
@ -54,7 +54,7 @@ CONFIG_VALUES = {
|
|||
TRANSCODE_BITRATE: { 'default': 'auto', 'type': str, 'arg': '--transcode-bitrate' },
|
||||
SKIP_EXISTING: { 'default': 'True', 'type': bool, 'arg': '--skip-existing' },
|
||||
SKIP_PREVIOUSLY_DOWNLOADED: { 'default': 'False', 'type': bool, 'arg': '--skip-previously-downloaded' },
|
||||
RETRY_ATTEMPTS: { 'default': '1', 'type': int, 'arg': '--retry-attemps' },
|
||||
RETRY_ATTEMPTS: { 'default': '1', 'type': int, 'arg': '--retry-attempts' },
|
||||
BULK_WAIT_TIME: { 'default': '1', 'type': int, 'arg': '--bulk-wait-time' },
|
||||
OVERRIDE_AUTO_WAIT: { 'default': 'False', 'type': bool, 'arg': '--override-auto-wait' },
|
||||
CHUNK_SIZE: { 'default': '20000', 'type': int, 'arg': '--chunk-size' },
|
||||
|
|
Loading…
Reference in a new issue