Definindo credenciais do Spotify usando o Spotipy

Estou testando o spotipy com o python 2.7.10 pré-instalado no meu mac 10.10, especificamente [add_a_saved_track.py] [1] Aqui está o código copiado do github:

# Add tracks to 'Your Collection' of saved tracks

import pprint
import sys

import spotipy
import spotipy.util as util

scope = 'user-library-modify'

if len(sys.argv) > 2:
    username = sys.argv[1]
    tids = sys.argv[2:]
else:
    print("Usage: %s username track-id ..." % (sys.argv[0],))
    sys.exit()

token = util.prompt_for_user_token(username, scope)

if token:
    sp = spotipy.Spotify(auth=token)
    sp.trace = False
    results = sp.current_user_saved_tracks_add(tracks=tids)
    pprint.pprint(results)
else:
    print("Can't get token for", username)

Registrei o aplicativo no developer.spotify.com/my-applications e recebi client_id e client_secret. Não sou um pouco claro sobre a seleção de redirect_uri, então defino como 'https://play.spotify.com/collection/songs'

Executando isso no terminal, recebo um erro que diz:

You need to set your Spotify API credentials. You can do this by
setting environment variables like so:
export SPOTIPY_CLIENT_ID='your-spotify-client-id'
export SPOTIPY_CLIENT_SECRET='your-spotify-client-secret'
export SPOTIPY_REDIRECT_URI='your-app-redirect-url'

Eu coloquei isso no meu código com o id, secret e url como strings, apenas seguindo as importações, mas acima do método util.prompt_for_user_token.

Isso causou um retorno:

File "add-track.py", line 8
export SPOTIPY_CLIENT_ID='4f...6'
                       ^
SyntaxError: invalid syntax

Notei que o Text Wrangler não reconhece 'export' como uma palavra especial. E pesquisei docs.python.org por 'export' e não achei nada útil. O que é exportação? Como estou usando incorretamente?

Em seguida, tentei passar o client_id, client_secret e redirect_uri como argumentos no método util.prompt_for_user_token da seguinte maneira:

util.prompt_for_user_token(username,scope,client_id='4f...6',client_secret='xxx...123',redirect_uri='https://play.spotify.com/collection/songs')

Quando tentei isso, é o que acontece no terminal:

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.


Opening https://accounts.spotify.com/authorize?scope=user-library-modify&redirect_uri=https%3A%2F%2Fplay.spotify.com%2Fcollection%2Fsongs&response_type=code&client_id=4f...6 in your browser


Enter the URL you were redirected to: 

eu entreihttps://play.spotify.com/collection/songs e então recebi este rastreio:

Traceback (most recent call last):
File "add-track.py", line 21, in <module>
token = util.prompt_for_user_token(username, scope, client_id='4f...6', client_secret='xxx...123', redirect_uri='https://play.spotify.com/collection/songs')
File "/Library/Python/2.7/site-packages/spotipy/util.py", line 86, in prompt_for_user_token
token_info = sp_oauth.get_access_token(code)
File "/Library/Python/2.7/site-packages/spotipy/oauth2.py", line 210, in get_access_token
raise SpotifyOauthError(response.reason)
spotipy.oauth2.SpotifyOauthError: Bad Request

Parece que estou faltando alguma coisa, talvez outra parte do Spotipy precise ser importada ou algum outro módulo python. Parece que estou perdendo a peça que define as credenciais do cliente. Como faço isso? Eu sou bastante novo nisso (se isso não fosse óbvio). Por favor ajude.

UPDATE: Alterei redirect_uri para localhost: 8888 / callback. Isso faz com que uma guia do Firefox seja aberta com um erro - "incapaz de se conectar ao servidor". (Como não tenho um servidor em execução. Pensei em instalar o node.js como no tutorial da API da Web do Spotify, mas ainda não o tenho). O script python solicita que eu copie e cole o URL para o qual fui redirecionado. Mesmo que o FF não pudesse abrir uma página, consegui que isso funcionasse copiando ointeira URL incluindo o "code = BG ..." que segue localhost: 8888 / callback? Não tenho certeza se esta é uma configuração ideal, mas pelo menos funciona.

Importa se eu configuro o node.js ou não?

questionAnswers(1)

yourAnswerToTheQuestion