|
1 | | -spotify-ripper |Version| |
| 1 | +spotify-ripper |
2 | 2 | ======================== |
3 | 3 |
|
4 | 4 | A fork of |
5 | 5 | `spotify-ripper <https://github.com/robbeofficial/spotifyripper>`__ that |
6 | 6 | uses `pyspotify <https://github.com/mopidy/pyspotify>`__ v2.x and `spotipy <https://github.com/plamere/spotipy>`__ |
7 | 7 |
|
8 | | -Spotify-ripper is a small ripper script for Spotify that rips Spotify |
9 | | -URIs to audio files and includes ID3 tags and cover art. By default spotify-ripper will encode to MP3 files, but includes the ability to rip to WAV, FLAC, Ogg Vorbis, Opus, AAC, and MP4/M4A. |
| 8 | +Spotify-ripper is a small ripper script for Spotify that rips Spotify URIs to audio files and includes ID3 tags and cover art. By default spotify-ripper will encode to MP3 files, but includes the ability to rip to WAV, FLAC, Ogg Vorbis, Opus, AAC, and MP4/M4A. |
10 | 9 |
|
11 | 10 | **Note that stream ripping violates the libspotify's ToS** |
12 | 11 |
|
@@ -72,26 +71,22 @@ Features |
72 | 71 | **Please note: Spotify’s highest quality setting is 320 kbps, so the benefit of ripping to a lossless format is to not double encode the audio data. It’s not possible to rip in true lossless quality.** |
73 | 72 |
|
74 | 73 |
|
75 | | -Spotipy Intergration |
| 74 | +Spotipy Integration |
76 | 75 | -------------------- |
77 | | -Downloading playlists does not work anymore through libspotify due to changes in the Spotify API. As a workaround, spotipy, a small python library using the Spotify Web API, is being used for playlists (and currently for playlists only!) |
78 | | -Using Spotify as described below is not mandatory for spotify-ripper. It is only needed for downloading playlists. |
| 76 | +To download playlists and to filterartist albums (see options `--artist-album-type` and `--artist-album-market`, spotipy, a small python library using the Spotify Web API, is being used. |
| 77 | +Using spotipy and the Web API is not mandatory for the usage of spotify-ripper! However for proper function of the module it is advised to follow below workflow to have full functionality. |
79 | 78 |
|
| 79 | +1) |
80 | 80 | Create a Client ID at https://developer.spotify.com/dashboard/applications |
81 | | -The Redirect_uri needs to `http://localhost` (can be changed in "Edit settings") |
82 | | -Copy/Paste the Client ID and Client Secret and export them in to your shell |
83 | | -.. code:: |
84 | | -
|
85 | | - export SPOTIPY_CLIENT_ID='123456789' |
86 | | - export SPOTIPY_CLIENT_SECRET='abcde123456789' |
87 | | -
|
| 81 | +The Redirect URI can be any site that you can access. E.g. it can be `http://localhost`. It is only important thatit is accessible from the device you are doing the authorisation from. |
| 82 | +Copy/Paste the Client ID and Client Secret and include them into web.py |
88 | 83 |
|
89 | 84 | Then, run spotify-ripper (as described below). When downloading an album or playlist, a browser window will be opened. |
90 | 85 | You will be asked to login and approve your app. |
91 | 86 |
|
92 | | -A blank webpage will now be shown with an url something like |
| 87 | +A blank webpage will now be shown with an url something like this: |
93 | 88 | ``http://localhost/?code=AQA3ZzBDw2s4SiMDdu0qkE`` |
94 | | -copy this URL, paste it to your terminal and hit Enter |
| 89 | +Copy this URL, paste it to your terminal and hit Enter |
95 | 90 |
|
96 | 91 | Reference: https://spotipy.readthedocs.io/en/latest/#authorized-requests |
97 | 92 |
|
@@ -140,7 +135,7 @@ Command Line |
140 | 135 | --aac Rip songs to AAC format with FreeAAC instead of MP3 |
141 | 136 | --alac Rip songs to Apple Lossless format instead of MP3 |
142 | 137 | --artist-album-type ARTIST_ALBUM_TYPE |
143 | | - Only load albums of specified types when passing a Spotify artist URI [Default=album,single,ep,compilation,appears_on] |
| 138 | + Only load albums of specified types when passing a Spotify artist URI [Default=album,single,compilation,appears_on] |
144 | 139 | --artist-album-market ARTIST_ALBUM_MARKET |
145 | 140 | Only load albums with the specified ISO2 country code when passing a Spotify artist URI. You may get duplicate albums if not set. [Default=any] |
146 | 141 | -A, --ascii-path-only |
@@ -223,7 +218,7 @@ Spotify-ripper will work with your regular Facebook login/password if you setup |
223 | 218 | Config File |
224 | 219 | ~~~~~~~~~~~ |
225 | 220 |
|
226 | | -For options that you want set on every run, you can use a config file named ``config.ini`` in the settings folder (defaults to ``~/.spotify-ripper``). The options in the config file use the same name as the command line options with the exception that dashes are translated to ``snake_case``. Any option specified in the command line will overwrite any setting in the config file. Please put all options under a ``[main]`` section. |
| 221 | +For options that you want set on every run, you can use a config file named ``config.ini`` in the settings folder (defaults to ``home/user/.spotify-ripper``). The options in the config file use the same name as the command line options with the exception that dashes are translated to ``snake_case``. Any option specified in the command line will overwrite any setting in the config file. Please put all options under a ``[main]`` section. |
227 | 222 |
|
228 | 223 | Here is an example config file |
229 | 224 |
|
@@ -357,6 +352,8 @@ Prerequisites |
357 | 352 |
|
358 | 353 | - `colorama <https://pypi.python.org/pypi/colorama>`__ |
359 | 354 |
|
| 355 | +- `spotipy <https://pypi.org/project/spotipy>`__ |
| 356 | + |
360 | 357 | - (optional) `flac <https://xiph.org/flac/index.html>`__ |
361 | 358 |
|
362 | 359 | - (optional) `opus-tools <http://www.opus-codec.org/downloads/>`__ |
@@ -514,30 +511,28 @@ Use ``git pull`` to upgrade to the latest version. |
514 | 511 | $ cd spotify-ripper |
515 | 512 | $ git pull |
516 | 513 |
|
517 | | - You need to install the scripts again after each upgrade. |
| 514 | +
|
| 515 | +You need to install the scripts again after each upgrade. |
518 | 516 |
|
519 | 517 | .. code:: bash |
520 | 518 |
|
521 | 519 | $ cd spotify-ripper |
522 | 520 | $ sudo python setup.py install |
523 | 521 | |
524 | 522 |
|
525 | | -Common Issues and Problems |
526 | | --------------------------- |
527 | | - |
528 | | -Help for common problems while using spotify-ripper can be found in the `wiki <https://github.com/hbashton/spotify-ripper/wiki/Help>`__. |
529 | | - |
530 | | - |
531 | | -Release Notes |
532 | | -------------- |
| 523 | +TODOs |
| 524 | +------- |
533 | 525 |
|
534 | | -Release notes can be found in the `wiki <https://github.com/hbashton/spotify-ripper/wiki/Release-Notes>`__. |
| 526 | +- [ ] Save files under Album artist instead of Track artist |
| 527 | +- [ ] Check if an Album has more than one CD and save files in seperate folders accordingly |
| 528 | +- [ ] Clean up summary: Summarise success and failure output per album/playlist, structurise more |
| 529 | +- [ ] Change to Wep API for filtered albums call |
| 530 | +- [ ] Scrap spotipy and use WEP API exclusively. |
535 | 531 |
|
536 | 532 |
|
537 | 533 | License |
538 | 534 | ------- |
539 | 535 |
|
540 | 536 | `MIT License <http://en.wikipedia.org/wiki/MIT_License>`__ |
541 | 537 |
|
542 | | -.. |Version| image:: http://img.shields.io/pypi/v/spotify-ripper.svg?style=flat-square |
543 | | - :target: https://pypi.python.org/pypi/spotify-ripper |
| 538 | + |
0 commit comments