All Projects → nithinphilips → Spotifyscrape

nithinphilips / Spotifyscrape

Licence: gpl-3.0
Export Spotify Playlists to Google Play Music All Access

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Spotifyscrape

Smd
Spotify Music Downloader
Stars: ✭ 822 (+5037.5%)
Mutual labels:  music, spotify
Hifiberry Os
Linux distribution optimized for audio playback
Stars: ✭ 487 (+2943.75%)
Mutual labels:  music, spotify
Spotui
Spotify in the terminal 💻🎶
Stars: ✭ 302 (+1787.5%)
Mutual labels:  music, spotify
Lyricsx
🎶 Ultimate lyrics app for macOS.
Stars: ✭ 3,251 (+20218.75%)
Mutual labels:  music, spotify
Warez
All your base are belong to us!
Stars: ✭ 584 (+3550%)
Mutual labels:  music, spotify
Spotiflyer
Spotify/Gaana/Youtube Music Downloader For Android!
Stars: ✭ 231 (+1343.75%)
Mutual labels:  music, spotify
Raveberry
A multi-user music server with a focus on participation
Stars: ✭ 442 (+2662.5%)
Mutual labels:  music, spotify
Obscurify
Find out more about your music taste and compare it to others' with Obscurify
Stars: ✭ 200 (+1150%)
Mutual labels:  music, spotify
Monstercat Visualizer
A real time audio visualizer for Rainmeter similar to the ones used in the Monstercat videos.
Stars: ✭ 571 (+3468.75%)
Mutual labels:  music, spotify
Homehost
self-hosted, Netflix-like app made for streaming
Stars: ✭ 564 (+3425%)
Mutual labels:  music, spotify
Singlespotify
🎵 Create Spotify playlists based on one artist through the command line
Stars: ✭ 254 (+1487.5%)
Mutual labels:  music, spotify
Spotify Downloader
Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found).
Stars: ✭ 6,957 (+43381.25%)
Mutual labels:  music, spotify
Spotitube
Synchronize your Spotify collections downloading from external providers
Stars: ✭ 250 (+1462.5%)
Mutual labels:  music, spotify
Plylst
Smart playlists for Spotify! Stop relying on fancy pants algorithms to organize your library and instead build playlists the way you want.
Stars: ✭ 301 (+1781.25%)
Mutual labels:  music, spotify
Swdc Vscode Musictime
A VS Code extension to discover the most productive music to listen to as you code
Stars: ✭ 242 (+1412.5%)
Mutual labels:  music, spotify
App
🎉 Festify Host & Client
Stars: ✭ 317 (+1881.25%)
Mutual labels:  music, spotify
Coverify
🎧 Design fresh album cover for your Spotify playlists
Stars: ✭ 167 (+943.75%)
Mutual labels:  music, spotify
Spotify Now Playing
Spotify now playing information and control popup for macOS menu bar
Stars: ✭ 171 (+968.75%)
Mutual labels:  music, spotify
Tauonmusicbox
The Linux desktop music player from the future! 🌆
Stars: ✭ 494 (+2987.5%)
Mutual labels:  music, spotify
Muse
An open-source Spotify controller with TouchBar support
Stars: ✭ 594 (+3612.5%)
Mutual labels:  music, spotify

Spotify Scrape

Spotify Scrape exports playlists from Spotify_ and imports them into Google Play Music All Access_. This tool is not approved or authorized by either Spotify or Google. Use it at your own risk.

Getting Started

Install Python 3.6.9 or above. Download the source and install::

git clone https://github.com/nithinphilips/spotifyscrape.git
cd spotifyscrape
python setup.py install

Usage

Spotify Scrape is run using one of these commands::

spotifyscrape {gmusic, spotify} <command>

Here are the supported commands:

Export Tracks


Usage: ``spotifyscrape spotify export-tracks <tracklist>``

Gets the track Title, Artist and Album from a list of Spotify track URIs.

This method does not require any authentication. However, you will need to use
the Spotify desktop client to get the Spotify URI (the one that looks like
``spotify:track:3HaYLn3KGQ6PF7O3TbhNat``). You can right click on a track to
get the URI.

Example::

    $ cat tracks.txt
    spotify:track:1oVlMEQe8myOjNCASaAHnQ
    spotify:track:0zoHzM4bKGQ8Q6wze334Qs
    spotify:track:4p2olbKKjXCdJmR4Xa1mYv

    $ spotifyscrape spotify export-tracks tracks.txt
    "Track","Artist","Album"
    "The Bad In Each Other","Feist","Metals"
    "Graveyard","Feist","Metals"
    "Caught A Long Wind","Feist","Metals"
    3 tracks processed. 3 found. 0 failed.

Export Playlist

Usage: spotifyscrape spotify export <URI>

Gets all the tracks in a Spotify playlist.

You need to have a Spotify Developer API key before you can use this command. You can export your own private playlists and other users' public playlists.

Example::

$ spotifyscrape spotify export spotify:user:1150884627:playlist:3cyD3zInBW4j97ay6xB2WQ
Searching for 1150884627's playlist 3cyD3zInBW4j97ay6xB2WQ
# Playlist: Beach Bar Boutique-Vol8
# Description: from http://open.spotify.com/user/1150884627/playlist/3cyD3zInBW4j97ay6xB2WQ
"Track","Artist","Album"
"Lighting The Spark","Dave Sparkz","Ivory Lounge"
"Hello Sunshine","Damien Jurado","Hello Sunshine"
"Feel Like I Do","Disclosure","Moog For Love"
"Taxi Bossa","FloFilz","Cenário"
...

Login

Usage: ``spotifyscrape login``

Updates the Spotify API token. You must run this command at least once before
using the ``export`` command.

Example::

    $ spotifyscrape login
    Token OK.

Import

Usage: spotifyscrape gmusic import --playlist <tracks-file> or cat <tracks-file> | spotifyscrape gmusic import

Imports a playlist into Google Play Music All Access.

This command expects a list of track in STDIN. Alternatively, you can pass a track list file name using the --playlist argument.

The track list input format is same as the output of the export-playlist command.

If a line starts with # Playlist:, then the rest of the line will be used as the playlist name. If the line starts with # Description: the remainder will be used as the playlist description.

We match tracks in the input by searching by the track and artist name in the Google Play All Access library. A match is not always guaranteed. You might especially run into issues with remixes and covers.

Example::

$ cat tracks.csv
# Playlist: Beach Bar Boutique-Vol8
# Description: from http://open.spotify.com/user/1150884627/playlist/3cyD3zInBW4j97ay6xB2WQ
"Track","Artist","Album"
"Lighting The Spark","Dave Sparkz","Ivory Lounge"
"Hello Sunshine","Damien Jurado","Hello Sunshine"
...

$ cat tracks.csv | spotifyscrape gmusic import
Playlist not found. Creating new.
Going to update playlist Beach Bar Boutique-Vol8 (47ca4a0c-b717-43c1-bf51-c50bcf25b3d3)

Skipping header.
Searching Lighting The Spark Dave Sparkz...OK
Searching Hello Sunshine Damien Jurado...OK
...
33 songs added out of 38. 5 Failed.
Failed tracks:
['Mission & 24th', 'Pimp Rekker', 'Om: Hip Hop Soul Sessions']
['Forever This', 'Fries', 'Norman Jay MBE presents GOOD TIMES 30th Anniversary Edition']
...

One time Setup

  1. First, register for a Spotify developer key at https://developer.spotify.com/my-applications

    You will need a free Spotify account.

    Once registered, click on Create an App. Give it a name and description.

    In the Redirect URIs section, add the URI http://localhost.

  2. Create a configuration file .spotifyscrape in your home directory with the following content::

    [All Access] client-id = # Client-id is a unique 16 digit hexadecimal string [Spotify] username = [email protected] client-id = client-secret = redirect-uri = http://localhost

    Replace the place holders with actual values.

  3. Update the Spotify API token::

    $ spotifyscrape spotify login

    You will see something like::

     User authentication requires interaction with your
     web browser. Once you enter your credentials and
     give authorization, you will be redirected to
     a url.  Paste that url you were directed to to
     complete the authorization.
    
     Please navigate here: https://accounts.spotify.com/authorize?...
    
     Enter the URL you were redirected to:
    

    Copy and paste the URL https://accounts.spotify.com/authorize?... into your browser. Login to Spotify and authorize the app.

    You will be redirected to a page that looks like an error page. The information required to complete the authorization is in the URL.

    Copy the URL of the page and paste it back in the terminal and press Enter

    If everything went correctly, you will see Token OK

  4. Update the Google Play All Access Token::

     spotifyscrape gmusic login
    

Import a Playlist

Download the playlist and upload to Google Play All Access::

spotifyscrape spotify export http://open.spotify.com/user/115683679/playlist/55RoVrmRtlgMF0kZnco4vp | spotifyscrape gmusic import

or using the spotify: URI::

spotifyscrape spotify export spotify:user:1150884627:playlist:3cyD3zInBW4j97ay6xB2WQ | spotifyscrape gmusic import

The playlist will be created in All Access.

License

.. code::

Spotify Scrape. Import Spotify playlists to Google Play Music
All Access.
Copyright (C) 2016 Nithin Philips

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

.. _Google Play Music All Access: https://play.google.com/music/listen .. _Spotify: https://www.spotify.com/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].