📜  创建一个 GUI 来使用Python从歌曲中提取歌词

📅  最后修改于: 2022-05-13 01:54:27.092000             🧑  作者: Mango

创建一个 GUI 来使用Python从歌曲中提取歌词

在本文中,我们将编写一个Python脚本来从歌曲中提取歌词并与其 GUI 应用程序绑定。我们将使用歌词提取器 为了仅通过传递歌曲名称来获取歌曲的歌词,它会从各种网站中提取并返回歌曲的标题和歌词。在开始之前,安装歌词提取器模块。将此命令运行到您的终端中。

pip install lyrics-extractor

要求

需要 Google 自定义搜索 JSON API 的 API 密钥和引擎 ID。

引擎 ID

  • 创建自定义搜索引擎以在此处获取您的引擎 ID。
  • 我们必须创建自己的可编程搜索引擎(Google 自定义搜索引擎)并添加链接以获取歌词。
  • 可编程搜索引擎基于谷歌的核心搜索技术。
  • 它是您网站的搜索引擎,其任务是根据用户的选择查找信息。

选择任一链接以获取您的搜索引擎:

https://genius.com/
http://www.lyricsted.com/
http://www.lyricsbell.com/
https://www.glamsham.com/
http://www.lyricsoff.com/
http://www.lyricsmint.com/

JSON API :

  • 自定义搜索 JSON API 能够从可编程搜索引擎检索和显示搜索结果。
  • 要使用自定义搜索 JSON API,我们必须创建可编程搜索引擎。
  • 访问此处获取您的 API 密钥。

方法:

  • 导入模块。
from lyrics_extractor import SongLyrics 
  • 将 Google 自定义搜索 JSON API 密钥和引擎 ID 传递到SongLyrics()中。
extract_lyrics = SongLyrics(Your_API_KEY, GCS_ENGINE_ID)
  • 通过将歌曲名称作为参数传递给extract_lyrics.get_lyrics()方法来获取歌词。
extract_lyrics.get_lyrics("Shape of You")

下面是实现。

Python3
# importing modules
from lyrics_extractor import SongLyrics
  
# pass the GCS_API_KEY, GCS_ENGINE_ID
extract_lyrics = SongLyrics("AIzaSewfsdfsdfOq0oTixw","frewrewrfsac")
  
extract_lyrics.get_lyrics("Tujhse Naraz Nahi Zindagi Lyrics")


Python3
# import modules
from tkinter import *
from lyrics_extractor import SongLyrics
  
# user defined funtion
def get_lyrics():
    
    extract_lyrics = SongLyrics(
        "Aerwerwefwdssdj-nvN3Oq0oTixw", "werwerewcxzcsda")
      
    temp = extract_lyrics.get_lyrics(str(e.get()))
    res = temp['lyrics']
    result.set(res)
  
  
# object of tkinter
# and background set to light grey
master = Tk()
master.configure(bg='light grey')
  
# Variable Classes in tkinter
result = StringVar()
  
# Creating label for each information
# name using widget Label
Label(master, text="Enter Song name : ",
      bg="light grey").grid(row=0, sticky=W)
  
Label(master, text="Result :",
      bg="light grey").grid(row=3, sticky=W)
  
  
# Creating lebel for class variable
# name using widget Entry
Label(master, text="", textvariable=result,
      bg="light grey").grid(row=3, column=1, sticky=W)
  
e = Entry(master, width=50)
e.grid(row=0, column=1)
  
# creating a button using the widget
b = Button(master, text="Show",
           command=get_lyrics, bg="Blue")
  
b.grid(row=0, column=2, columnspan=2,
       rowspan=2, padx=5, pady=5,)
  
mainloop()


输出:

使用 Python 的歌词提取器

注意:输入您自己的 API 密钥和引擎 ID,否则会产生错误。

使用 Tkinter 提取歌词应用程序:

蟒蛇3

# import modules
from tkinter import *
from lyrics_extractor import SongLyrics
  
# user defined funtion
def get_lyrics():
    
    extract_lyrics = SongLyrics(
        "Aerwerwefwdssdj-nvN3Oq0oTixw", "werwerewcxzcsda")
      
    temp = extract_lyrics.get_lyrics(str(e.get()))
    res = temp['lyrics']
    result.set(res)
  
  
# object of tkinter
# and background set to light grey
master = Tk()
master.configure(bg='light grey')
  
# Variable Classes in tkinter
result = StringVar()
  
# Creating label for each information
# name using widget Label
Label(master, text="Enter Song name : ",
      bg="light grey").grid(row=0, sticky=W)
  
Label(master, text="Result :",
      bg="light grey").grid(row=3, sticky=W)
  
  
# Creating lebel for class variable
# name using widget Entry
Label(master, text="", textvariable=result,
      bg="light grey").grid(row=3, column=1, sticky=W)
  
e = Entry(master, width=50)
e.grid(row=0, column=1)
  
# creating a button using the widget
b = Button(master, text="Show",
           command=get_lyrics, bg="Blue")
  
b.grid(row=0, column=2, columnspan=2,
       rowspan=2, padx=5, pady=5,)
  
mainloop()

注意:输入您自己的 API 密钥和引擎 ID,否则会产生错误。

输出: