mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
Prepare for releases
This commit is contained in:
110
.gitignore
vendored
110
.gitignore
vendored
@@ -1,9 +1,111 @@
|
|||||||
config.yml
|
config.yml
|
||||||
Music/
|
Music/
|
||||||
*.txt
|
*.txt
|
||||||
.coverage
|
|
||||||
|
|
||||||
*.pyc
|
|
||||||
__pycache__/
|
|
||||||
.cache/
|
.cache/
|
||||||
|
README.rst
|
||||||
|
upload.sh
|
||||||
|
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
.hypothesis/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
.static_storage/
|
||||||
|
.media/
|
||||||
|
local_settings.py
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# pyenv
|
||||||
.python-version
|
.python-version
|
||||||
|
|
||||||
|
# celery beat schedule file
|
||||||
|
celerybeat-schedule
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
|||||||
13
CHANGES.md
Normal file
13
CHANGES.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# Changelog
|
||||||
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||||
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [Unreleased]
|
||||||
|
|
||||||
|
## 1.0.0-alpha.1 - 2018-02-02
|
||||||
|
### Added
|
||||||
|
- Initial release, prepare for 1.0.0
|
||||||
|
|
||||||
|
[Unreleased]: https://github.com/olivierlacan/keep-a-changelog/compare/v1.0.0-alpha.1...HEAD
|
||||||
36
README.md
36
README.md
@@ -38,26 +38,31 @@ If you need to use Python 2 though, check out the (old) `python2` branch.
|
|||||||
since they were not of much use and created unnecessary clutter.
|
since they were not of much use and created unnecessary clutter.
|
||||||
You can still get them back by using `old` branch though.
|
You can still get them back by using `old` branch though.
|
||||||
|
|
||||||
### Debian, Ubuntu, Linux & Mac
|
### Debian-like GNU/Linux & macOS
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cd
|
$ pip install spotify-downloader
|
||||||
$ git clone https://github.com/ritiek/spotify-downloader
|
|
||||||
$ cd spotify-downloader
|
|
||||||
$ pip install -U -r requirements.txt
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Important:** if you have installed both Python 2 and 3, the `pip` command
|
**Important:** if you have installed both Python 2 and 3, the `pip` command
|
||||||
could invoke an installation for Python 2. To see which Python version `pip`
|
could invoke an installation for Python 2. To see which Python version `pip`
|
||||||
refers to, try `$ pip -V`. If it turns out `pip` is your Python 2 pip, try
|
refers to, try `$ pip -V`. If it turns out `pip` is your Python 2 pip, try
|
||||||
`$ pip3 install -U -r requirements.txt` instead.
|
`$ pip3 install spotify-downloader` instead.
|
||||||
|
|
||||||
You'll also need to install FFmpeg for conversion
|
You'll also need to install FFmpeg for conversion
|
||||||
(use `--avconv` if you'd like to use that instead):
|
(use `--avconv` if you'd like to use that instead):
|
||||||
|
|
||||||
Linux: `$ sudo apt-get install ffmpeg`
|
GNU/Linux:
|
||||||
|
|
||||||
Mac: `$ brew install ffmpeg --with-libmp3lame --with-libass --with-opus --with-fdk-aac`
|
```
|
||||||
|
$ sudo apt-get install ffmpeg
|
||||||
|
```
|
||||||
|
|
||||||
|
macOS:
|
||||||
|
|
||||||
|
```
|
||||||
|
$ brew install ffmpeg --with-libmp3lame --with-libass --with-opus --with-fdk-aac
|
||||||
|
```
|
||||||
|
|
||||||
If it does not install correctly, you may have to build it from source.
|
If it does not install correctly, you may have to build it from source.
|
||||||
For more info see https://trac.ffmpeg.org/wiki/CompilationGuide.
|
For more info see https://trac.ffmpeg.org/wiki/CompilationGuide.
|
||||||
@@ -65,18 +70,21 @@ For more info see https://trac.ffmpeg.org/wiki/CompilationGuide.
|
|||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
Assuming you have Python 3
|
Assuming you have Python 3
|
||||||
([preferably v3.6 or above to stay away from Unicode errors](https://stackoverflow.com/questions/30539882/whats-the-deal-with-python-3-4-unicode-different-languages-and-windows)) already installed and in PATH.
|
([preferably v3.6 or above to stay away from Unicode errors](https://stackoverflow.com/questions/30539882/whats-the-deal-with-python-3-4-unicode-different-languages-and-windows)) and pip already installed and in PATH.
|
||||||
|
|
||||||
- Download and extract the [zip file](https://github.com/ritiek/spotify-downloader/archive/master.zip)
|
|
||||||
from master branch.
|
|
||||||
|
|
||||||
- Download FFmpeg for Windows from [here](http://ffmpeg.zeranoe.com/builds/).
|
- Download FFmpeg for Windows from [here](http://ffmpeg.zeranoe.com/builds/).
|
||||||
Copy `ffmpeg.exe` from `ffmpeg-xxx-winxx-static\bin\ffmpeg.exe` to PATH
|
Copy `ffmpeg.exe` from `ffmpeg-xxx-winxx-static\bin\ffmpeg.exe` to PATH
|
||||||
(usually C:\Windows\System32\) or just place it in the root directory extracted
|
(usually C:\Windows\System32\) or just place it in the root directory extracted
|
||||||
from the above step.
|
from the above step.
|
||||||
|
|
||||||
- Open `cmd` and type `$ pip install -U -r requirements.txt` to install dependencies.
|
- Open `cmd` and type `pip install spotify-downloader`.
|
||||||
The same note about `pip` as for Debian, Ubuntu, Linux & Mac applies.
|
The same note about `pip` as for GNU/Linux and macOS applies.
|
||||||
|
|
||||||
|
### From GitHub releases
|
||||||
|
|
||||||
|
- Download and extract the [latest](https://github.com/ritiek/spotify-downloader/releases/latest) or a [specific](https://github.com/ritiek/spotify-downloader/releases/latest) release archive file.
|
||||||
|
|
||||||
|
- `cd` into the directory and `python3 setup.py install`
|
||||||
|
|
||||||
## Instructions for Downloading Songs
|
## Instructions for Downloading Songs
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
pathlib >= 1.0.1
|
|
||||||
youtube_dl >= 2017.5.1
|
|
||||||
pafy >= 0.5.3.1
|
|
||||||
spotipy >= 2.4.4
|
|
||||||
mutagen >= 1.37
|
|
||||||
unicode-slugify >= 0.1.3
|
|
||||||
titlecase >= 0.10.0
|
|
||||||
logzero >= 1.3.1
|
|
||||||
lyricwikia >= 0.1.8
|
|
||||||
PyYAML >= 3.12
|
|
||||||
53
setup.py
Normal file
53
setup.py
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
from setuptools import setup
|
||||||
|
from spotdl import __version__
|
||||||
|
|
||||||
|
# Created from README.md using pandoc
|
||||||
|
with open('README.rst', 'r') as f:
|
||||||
|
long_description = f.read()
|
||||||
|
|
||||||
|
setup(
|
||||||
|
name='spotify-downloader',
|
||||||
|
py_modules=['spotdl'],
|
||||||
|
# Tests are included automatically:
|
||||||
|
# https://docs.python.org/3.6/distutils/sourcedist.html#specifying-the-files-to-distribute
|
||||||
|
packages=['core'],
|
||||||
|
version=__version__,
|
||||||
|
install_requires=[
|
||||||
|
'pathlib >= 1.0.1',
|
||||||
|
'youtube_dl >= 2017.5.1',
|
||||||
|
'pafy >= 0.5.3.1',
|
||||||
|
'spotipy >= 2.4.4',
|
||||||
|
'mutagen >= 1.37',
|
||||||
|
'unicode-slugify >= 0.1.3',
|
||||||
|
'titlecase >= 0.10.0',
|
||||||
|
'logzero >= 1.3.1',
|
||||||
|
'lyricwikia >= 0.1.8',
|
||||||
|
'PyYAML >= 3.12'
|
||||||
|
],
|
||||||
|
description='Download songs from YouTube using Spotify song URLs or playlists with albumart and meta-tags.',
|
||||||
|
long_description=long_description,
|
||||||
|
author='Ritiek Malhotra and the spotify-downloader contributors',
|
||||||
|
license='MIT',
|
||||||
|
url='https://github.com/ritiek/spotify-downloader',
|
||||||
|
download_url='https://pypi.org/project/spotify-downloader/',
|
||||||
|
keywords=['spotify', 'downloader', 'download', 'music', 'youtube', 'mp3', 'album', 'metadata'],
|
||||||
|
classifiers=[
|
||||||
|
'Development Status :: 4 - Beta',
|
||||||
|
'Intended Audience :: End Users/Desktop',
|
||||||
|
'License :: OSI Approved :: MIT License',
|
||||||
|
'Programming Language :: Python',
|
||||||
|
'Programming Language :: Python :: 3',
|
||||||
|
'Programming Language :: Python :: 3.4',
|
||||||
|
'Programming Language :: Python :: 3.5',
|
||||||
|
'Programming Language :: Python :: 3.6',
|
||||||
|
'Programming Language :: Python :: 3 :: Only',
|
||||||
|
'Topic :: Multimedia',
|
||||||
|
'Topic :: Multimedia :: Sound/Audio',
|
||||||
|
'Topic :: Utilities'
|
||||||
|
],
|
||||||
|
entry_points={
|
||||||
|
'console_scripts': [
|
||||||
|
'spotdl = spotdl:cli',
|
||||||
|
],
|
||||||
|
}
|
||||||
|
)
|
||||||
@@ -16,6 +16,8 @@ import time
|
|||||||
import platform
|
import platform
|
||||||
import pprint
|
import pprint
|
||||||
|
|
||||||
|
__version__ = '1.0.0b1'
|
||||||
|
|
||||||
|
|
||||||
def check_exists(music_file, raw_song, meta_tags):
|
def check_exists(music_file, raw_song, meta_tags):
|
||||||
""" Check if the input song already exists in the given folder. """
|
""" Check if the input song already exists in the given folder. """
|
||||||
@@ -167,12 +169,13 @@ def download_single(raw_song, number=None):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
def main():
|
||||||
const.args = handle.get_arguments()
|
const.args = handle.get_arguments()
|
||||||
internals.filter_path(const.args.folder)
|
internals.filter_path(const.args.folder)
|
||||||
|
|
||||||
const.log = const.logzero.setup_logger(formatter=const.formatter,
|
const.log = const.logzero.setup_logger(formatter=const.formatter,
|
||||||
level=const.args.log_level)
|
level=const.args.log_level)
|
||||||
|
global log
|
||||||
log = const.log
|
log = const.log
|
||||||
log.debug('Python version: {}'.format(sys.version))
|
log.debug('Python version: {}'.format(sys.version))
|
||||||
log.debug('Platform: {}'.format(platform.platform()))
|
log.debug('Platform: {}'.format(platform.platform()))
|
||||||
@@ -197,3 +200,7 @@ if __name__ == '__main__':
|
|||||||
except KeyboardInterrupt as e:
|
except KeyboardInterrupt as e:
|
||||||
log.exception(e)
|
log.exception(e)
|
||||||
sys.exit(3)
|
sys.exit(3)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user