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