mirror of
				https://github.com/searxng/searxng.git
				synced 2025-11-03 19:17:07 -05:00 
			
		
		
		
	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.
This commit is contained in:
		
						commit
						754a10c1c1
					
				@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user