오프라인 노래를 검색하고 가사를 추가하는 Python 스크립트
16765 단어 beginnerstutorialprogrammingpython
spotifydl을 사용하여 노래를 다운로드하지만 가사를 추가하지는 않습니다. 그래서 우리는 그 노래에 가사를 추가하는 스크립트를 작성합니다.
요구 사항
beautifulsoup4==4.11.1
certifi==2022.6.15
charset-normalizer==2.1.0
idna==3.3
music-tag==0.4.3
mutagen==1.45.1
requests==2.28.1
soupsieve==2.3.2.post1
urllib3==1.26.9
스크립트
이 요구 사항을 사용하여 가사를 검색하고 가져오고 설정하는 세 가지 기능을 작성해야 합니다.
먼저 가사를 검색하는 기능, 가사를 검색하려면 이 사이트https://rclyricsband.com/?s=를 이용해야 합니다. 모든 가사의 출처입니다. 요청을 사용하여 이 사이트에 요청을 보내고 BeautifulSoup4를 사용하여 스크랩합니다.
search_link = "https://rclyricsband.com/?s="
def search_lyrics(song_name: str, one=True):
print(f"Searching for {song_name}")
markup = requests.get(search_link + quote_plus(song_name)).text
soup = BeautifulSoup(markup, "html.parser")
outer_tags = soup.find_all("h2", {"class": "search-entry-title"})
results = []
for outer_tag in outer_tags:
inner_tag = outer_tag.find("a")
results.append({"title": inner_tag.get("title"), "link": inner_tag.get("href")})
if len(results) == 0:
return None
if one:
print(f"Found Best Match: {results[0]['title']}")
return results[0]
else:
results
이 기능은 가사를 검색하고 노래 제목과 가사 링크가 포함된 첫 번째 결과를 반환합니다.
첫 번째 기능의 링크를 사용하여 가사를 가져오는 두 번째 기능
def get_lyrics(link: str):
print("Getting Lyrics ...")
markup = requests.get(link).text
soup = BeautifulSoup(markup, "html.parser")
return soup.find("div", {"class": "su-box su-box-style-default"}).text
이 기능은 Beautifulsoup을 사용하여 가사를 링크하고 스크랩하고 가사를 반환하라는 요청을 보냅니다.
가사를 노래로 설정하는 마지막 기능
def set_lyrics_to_song(song_path: str):
f = music_tag.load_file(song_path)
title = str(f["title"])
search_results = search_lyrics(title)
if search_results:
lyrics = get_lyrics(search_results["link"])
print("Setting Lyrics ...")
f["lyrics"] = lyrics
f.save()
print("Done :)")
else:
print("No Lyrics Found")
이 기능은
music_tag
패키지를 사용하여 노래의 메타데이터를 편집합니다.주요 기능이 포함된 전체 스크립트,
import requests
from bs4 import BeautifulSoup
from urllib.parse import quote_plus
import music_tag
search_link = "https://rclyricsband.com/?s="
def search_lyrics(song_name: str, one=True):
print(f"Searching for {song_name}")
markup = requests.get(search_link + quote_plus(song_name)).text
soup = BeautifulSoup(markup, "html.parser")
outer_tags = soup.find_all("h2", {"class": "search-entry-title"})
results = []
for outer_tag in outer_tags:
inner_tag = outer_tag.find("a")
results.append({"title": inner_tag.get("title"), "link": inner_tag.get("href")})
if len(results) == 0:
return None
if one:
print(f"Found Best Match: {results[0]['title']}")
return results[0]
else:
results
def get_lyrics(link: str):
print("Getting Lyrics ...")
markup = requests.get(link).text
soup = BeautifulSoup(markup, "html.parser")
return soup.find("div", {"class": "su-box su-box-style-default"}).text
def set_lyrics_to_song(song_path: str):
f = music_tag.load_file(song_path)
title = str(f["title"])
search_results = search_lyrics(title)
if search_results:
lyrics = get_lyrics(search_results["link"])
print("Setting Lyrics ...")
f["lyrics"] = lyrics
f.save()
print("Done :)")
else:
print("No Lyrics Found")
if __name__ == "__main__":
import sys
path = sys.argv[1]
set_lyrics_to_song(path)
파일을 다른 이름으로 저장
script.py
스크립트 실행
트랙 제목을 포함해야 하는 spotifydl을 사용하여 노래를 다운로드합니다. 터미널 창을 열고 실행
python script.py <path_to_song>
그것은 노래에 가사를 검색하고 추가합니다
요게슈화란 01 / 가사
오프라인 노래를 검색하고 가사를 추가하는 Python 스크립트 🎵
가사
간단한 Python 스크립트로 오프라인 노래에 가사 추가
용법
python lyricy.py <song_path>
해당 노래에 가사를 검색하고 추가합니다.
View on GitHub
읽어주셔서 감사합니다 :)
Reference
이 문제에 관하여(오프라인 노래를 검색하고 가사를 추가하는 Python 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/yogeshwaran01/a-python-script-that-search-and-add-lyrics-to-offline-songs-44c4
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(오프라인 노래를 검색하고 가사를 추가하는 Python 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yogeshwaran01/a-python-script-that-search-and-add-lyrics-to-offline-songs-44c4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)