diff options
author | Markus Heiser <markus.heiser@darmarIT.de> | 2019-12-30 07:44:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-30 07:44:31 +0100 |
commit | 754a10c1c1b66195f3ae7542806593d87158a61b (patch) | |
tree | 0c2e238ed8fd03a95a090692d0d761fe2ea13d79 | |
parent | f6d66c0f6f1d8f1f583d9000ee0123450cce8130 (diff) | |
parent | 36e72a46192235615f63a02984ab88c70145b0ec (diff) | |
download | searxng-754a10c1c1b66195f3ae7542806593d87158a61b.tar.gz searxng-754a10c1c1b66195f3ae7542806593d87158a61b.zip |
Merge pull request #1661 from 0xhtml/fix-engine-spotify
Fix engine spotify
As you can read here https://developer.spotify.com/documentation/web-api/#authentication all requests to the spotify api require authentication. You can not test the api without credentials.
-rw-r--r-- | searx/engines/spotify.py | 14 | ||||
-rw-r--r-- | searx/settings.yml | 9 |
2 files changed, 20 insertions, 3 deletions
diff --git a/searx/engines/spotify.py b/searx/engines/spotify.py index aed756be3..00c395706 100644 --- a/searx/engines/spotify.py +++ b/searx/engines/spotify.py @@ -12,10 +12,14 @@ from json import loads from searx.url_utils import urlencode +import requests +import base64 # engine dependent config categories = ['music'] paging = True +api_client_id = None +api_client_secret = None # search-url url = 'https://api.spotify.com/' @@ -31,6 +35,16 @@ def request(query, params): params['url'] = search_url.format(query=urlencode({'q': query}), offset=offset) + r = requests.post( + 'https://accounts.spotify.com/api/token', + data={'grant_type': 'client_credentials'}, + headers={'Authorization': 'Basic ' + base64.b64encode( + "{}:{}".format(api_client_id, api_client_secret).encode('utf-8') + ).decode('utf-8')} + ) + j = loads(r.text) + params['headers'] = {'Authorization': 'Bearer {}'.format(j.get('access_token'))} + return params diff --git a/searx/settings.yml b/searx/settings.yml index e41b84c13..2a2d2bf87 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -598,9 +598,12 @@ engines: shortcut : se categories : science - - name : spotify - engine : spotify - shortcut : stf +# Spotify needs API credentials +# - name : spotify +# engine : spotify +# shortcut : stf +# api_client_id : ******* +# api_client_secret : ******* - name : startpage engine : startpage |