Spotify with Python

ลำเต้ยของงูเหลือม.By Mint

Spotify เป็นหนึ่งในผู้ให้บริการสตรีมเพลงที่ใหญ่ที่สุดในโลก เเต่ฉันเป็นเพียงสาวน้อยตัวเล็กเเสนบอบบาง อุ๊ย(เสียงพี่หนุ่มกรรชัย) วันนี้ฉันจะทำบางอย่างเกี่ยวกับ Spotify โดยใช้ Spotipy Web API ให้สามารถเข้าถึงข้อมูลเพลงทั้งหมดที่ได้รับจากแพลตฟอร์ม Spotify ได้อย่างเต็มที่ นอกจากนี้ยังสามารถดึงเนื้อหา Spotify เช่น ข้อมูลอัลบั้ม เพลย์ลิสต์ และแม้แต่เพลงโดยใช้ API

REST API คืออะไร

REST ย่อมาจาก Representational State Transfer และปฏิบัติตามข้อจํากัดของสถาปัตยกรรม REST ที่อนุญาตให้โต้ตอบกับบริการเว็บ RESTful กําหนดชุดของฟังก์ชัน (GET, PUT, POST, DELETE) ที่ไคลเอนต์ใช้เพื่อเข้าถึงข้อมูลเซิร์ฟเวอร์ ฟังก์ชั่นที่ใช้คือ:

  • GET (ดึงเรกคอร์ด)

  • PUT (อัปเดตระเบียน)

  • POST (สร้างเรกคอร์ด)

  • DELETE (ลบระเบียน)

คุณสมบัติหลักของมันคือ REST API เป็นแบบไร้สถานะ กล่าวคือ เซิร์ฟเวอร์จะไม่บันทึกข้อมูลของลูกค้าระหว่างคําขอ

Web API คืออะไร

Web API เป็นเพียง API สําหรับเว็บ เป็น API ที่สามารถเข้าถึงได้โดยใช้โปรโตคอล HTTP สามารถสร้างได้โดยใช้ Java, .nET เป็นต้น มีการใช้งานเพื่อขยายฟังก์ชันการทํางานของเบราว์เซอร์ลดความซับซ้อนของฟังก์ชันที่ซับซ้อนและให้ไวยากรณ์ที่ง่ายสําหรับโค้ดที่ซับซ้อน

API เว็บสี่ประเภทหลักคือ:

  • เปิด API

  • API พาร์ทเนอร์

  • API ภายใน

  • API คอมโพสิต

ฉันรู้เเค่นี้ละ เข้าเรื่องกันดีกว่า

แพ็คเกจที่จําเป็น

pip install spotipy

การตั้งค่าแอพ Spotify

ขั้นตอนที่ 1: สร้างบัญชีหรือเข้าสู่ระบบบัญชี Spotify Developers

ขั้นตอนที่ 2: สร้างแอป

ขั้นตอนที่ 3: แดชบอร์ดจะเปิดขึ้น ตอนนี้บันทึก รหัสลูกค้า-ความลับของลูกค้า ซึ่งจะใช้ในภายหลังในโปรแกรม

ขั้นตอนที่ 4: คลิกที่ปุ่ม "แก้ไขการตั้งค่า" และเพิ่ม URI เปลี่ยนเส้นทางดังต่อไปนี้

http://google.com/callback/

ขั้นตอนที่ 5: คลิกที่เพิ่มและบันทึกการเปลี่ยนแปลง

ขั้นตอน Dev.

ขั้นตอนที่ 1: ทําตามขั้นตอนด้านล่างเพื่อตั้งค่าสภาพแวดล้อมเสมือน

  • สร้างโฟลเดอร์สําหรับโครงการนี้

  • ไปที่พรอมต์คําสั่งและกําหนดเส้นทางไปยังโฟลเดอร์ที่สร้างขึ้น

  • คําสั่งด้านล่างใช้เพื่อตั้งค่าสภาพแวดล้อมเสมือนเพื่อให้โครงการของเราทํางาน

python -m venv .env
  • คําสั่งด้านล่างคือการเปิดใช้งานสภาพแวดล้อมเสมือน
.env\Scripts\activate

ขั้นตอนที่ 2:

ในขั้นตอนนี้เราจะนําเข้า Spotify เว็บเบราว์เซอร์ถูกนําเข้าดังนั้นหลังจากการตรวจสอบสิทธิ์เราจะถูกเปลี่ยนเส้นทางไปยัง URL ที่ระบุผ่านเบราว์เซอร์ เรานําเข้า JSON เพื่อยอมรับการตอบกลับจากเบราว์เซอร์ซึ่งอยู่ในรูปแบบโค้ด JSON

import json 
import spotipy 
import webbrowser

ขั้นตอนที่ 3:

ในขั้นตอนนี้ เราจะเพิ่มข้อมูลประจําตัวที่จําเป็นที่นี่แทนข้อมูลประจําตัว Your_Client_Id และ Your_Client_Secret ที่คุณจดบันทึกไว้ในขั้นตอนที่ 3 คลิกที่นี่ เพื่อทราบชื่อผู้ใช้ของคุณและแทนที่ Your_Username

username = 'Your user name'
clientID = 'your client ID'
clientSecret = 'Your client secret'
redirect_uri = 'http://google.com/callback/'

ขั้นตอนที่ 4:

บรรทัดต่อไปนี้ใช้เพื่อตรวจสอบข้อมูลของเราและให้การเข้าถึงบัญชี Spotify ของเรา

  • oauth_object เป็นวัตถุที่เราสร้างขึ้นเพื่อเข้าถึงฟังก์ชัน SpotifyOAuth จากไลบรารีที่ติดตั้งของเรา ที่นี่เราส่ง clientID, clientSecret และเปลี่ยนเส้นทาง URI ฟังก์ชันนี้จะตรวจสอบว่า clientID, clientSecret และ URI เปลี่ยนเส้นทางถูกต้องหรือไม่

  • token_dict ที่ได้รับโทเค็นเป็นหลักฐานการเข้าถึง Spotify ที่ได้รับอนุญาตของเรา

  • สปอยปี้ Spotify(auth=token) นี่คือขั้นตอนจริงที่โทเค็นที่สร้างขึ้นในขั้นตอนก่อนหน้าได้รับอนุญาต

  • ผู้ใช้ = spotifyObject.current_user() บรรทัดนี้ได้รับรายละเอียดทั้งหมดของผู้ใช้และรวมเข้าด้วยกัน

  • ข้อมูลผู้ใช้นี้ใช้เพื่อดึงการตอบกลับ JSON ที่ส่งโดยเบราว์เซอร์ไปยังระบบของเรา คําสั่งการพิมพ์ที่นี่ใช้เพื่อพิมพ์การตอบกลับ JSON นี้

  •     oauth_object = spotipy.SpotifyOAuth(clientID, clientSecret, redirect_uri) 
        token_dict = oauth_object.get_access_token() 
        token = token_dict['access_token'] 
        spotifyObject = spotipy.Spotify(auth=token) 
        user_name = spotifyObject.current_user() 
    
        # To print the response in readable format. 
        print(json.dumps(user_name, sort_keys=True, indent=4))
    

ขั้นตอนที่ 5:

ในขั้นตอนนี้ เราจะสร้างลูปฟังก์ชันการทํางานของผู้ใช้

  • เมื่อให้ 1 เป็นอินพุต ชื่อเพลงที่จะค้นหาจะถูกพิมพ์ และเล่นเพลงที่ต้องการ

  • เมื่อกําหนด 0 เป็นอินพุต จะออกจากโปรแกรม

      while True: 
          print("Welcome to the project, " + user_name['display_name']) 
          print("0 - Exit the console") 
          print("1 - Search for a Song") 
          user_input = int(input("Enter Your Choice: ")) 
          if user_input == 1: 
              search_song = input("Enter the song name: ") 
              results = spotifyObject.search(search_song, 1, 0, "track") 
              songs_dict = results['tracks'] 
              song_items = songs_dict['items'] 
              song = song_items[0]['external_urls']['spotify'] 
              webbrowser.open(song) 
              print('Song has opened in your browser.') 
          elif user_input == 0: 
              print("Good Bye, Have a great day!") 
              break
          else: 
              print("Please enter valid user-input.")
    

ขั้นตอนที่ 6:

สร้างไฟล์ python และเพิ่มโค้ดด้านล่างในไฟล์ (spotify.py)

โน้ต: ตรวจสอบให้แน่ใจว่าตําแหน่งของไฟล์ python และตําแหน่งสภาพแวดล้อมเสมือนเหมือนกัน

import json 
import spotipy 
import webbrowser 

username = 'Your user name'
clientID = 'your client ID'
clientSecret = 'Your client secret'
redirect_uri = 'http://google.com/callback/'
oauth_object = spotipy.SpotifyOAuth(clientID, clientSecret, redirect_uri) 
token_dict = oauth_object.get_access_token() 
token = token_dict['access_token'] 
spotifyObject = spotipy.Spotify(auth=token) 
user_name = spotifyObject.current_user() 

# To print the JSON response from 
# browser in a readable format. 
# optional can be removed 
print(json.dumps(user_name, sort_keys=True, indent=4)) 

while True: 
    print("Welcome to the project, " + user_name['display_name']) 
    print("0 - Exit the console") 
    print("1 - Search for a Song") 
    user_input = int(input("Enter Your Choice: ")) 
    if user_input == 1: 
        search_song = input("Enter the song name: ") 
        results = spotifyObject.search(search_song, 1, 0, "track") 
        songs_dict = results['tracks'] 
        song_items = songs_dict['items'] 
        song = song_items[0]['external_urls']['spotify'] 
        webbrowser.open(song) 
        print('Song has opened in your browser.') 
    elif user_input == 0: 
        print("Good Bye, Have a great day!") 
        break
    else: 
        print("Please enter valid user-input.")

ขั้นตอนที่ 7:

รันโปรแกรมของคุณในพรอมต์คําสั่งโดยใช้คําสั่งต่อไปนี้

python spotify.py

การดําเนินการของโปรแกรม

ขั้นตอนที่ 1: หลังจากการดําเนินการครั้งแรกของโปรแกรมคุณจะถูกนําไปยังหน้าต่อไปนี้ ยอมรับเงื่อนไขเพื่อดําเนินการต่อไป

ขั้นตอนที่ 2: หลังจากตกลงแล้ว มันจะถูกเปลี่ยนเส้นทางไปยังหน้า Google เพียงคัดลอก URL ของหน้าแล้ววางลงในพรอมต์คําสั่งแล้วคลิก Enter

ขั้นตอนที่ 3: คุณจะเห็นโค้ด JSON ดังกล่าวปรากฏบนหน้าจอพรอมต์คําสั่งของคุณ

ขั้นตอนที่ 4: ตอนนี้เรียกใช้ไฟล์ python ของคุณอีกครั้งในพรอมต์คําสั่งโดยใช้คําสั่ง pythonspotify.py มันจะขอข้อมูลจากผู้ใช้

  • กด 0 เพื่อออก

กด 1 เพื่อป้อนชื่อเพลงที่จะเล่น

ยังไม่จบ

Did you find this article valuable?

Support Pripramot by becoming a sponsor. Any amount is appreciated!