Текстове на български рапъри

Fakeheal

Super Moderator
Здравейте,
чудя се къде мога да намеря всички текстове на следните изпълнителни:
- ЪпсурТ
- Krisko
- 100 кила!
- Shamara a.k.a. Big Sha
- Dim4ou
- Wosh MC
- Billy Hlapeto
- Qvkata DLG
- Спенс
- M.W.P. & X
- DiS (Denyo i Sensei)
- Gangsta Man
- The Top Stoppers
- Над Закона
- Hoodini
- Rudi, Duli, Muden MC & KukuSheff
- SARAFA OFICIAL PAGE
- Играта
- Calligraphist
- F.O. Zanimation Entertainment Studio
- СтЗ Отбора
- NOKAUT
- Manata & Keran Kenobi
- MILIONI
- Yoko
- JAY
- KARTELA RECORDS
- ILLmate
- Varna Sound
- Keranov
Тъй като не всички имат официални уебсайтове, се чудех дали не знаете някакъв сайт, който е на тази тематика и да има текстовете на тези изпълнители. Като е важно да са всичките.
 
Много трудно е да се намерят ... Рап музиката е доста продуктивна и дори не вярвам самите те да си знаят всички песни. Иначе по-известните си ги има в текстове.инфо
 
Явно е така. Опитах се да използвам по-голям сървис от някой български сайт за текстове, в случая musixmatch. Но там ти трябва лиценз за да използваш API-то им за пълните текстове. А и не всички са там. Особено на по-некомерсиални изпълнители.

musixmatch.py:
Код:
import requests
import json

class Musixmatch: 
  
  url = 'http://api.musixmatch.com/ws/1.1/'
  apiKey = None

  def __init__(self, apiKey):
    self.apiKey = apiKey

  def searchArtist(self, name):
    endpoint = 'artist.search?apikey=' + self.apiKey + '&q_artist=' + name
    response = self._requestApi(endpoint)
    for artist in response['artist_list']:
        if (artist['artist']['artist_name'] == name):
          return artist['artist']['artist_id']        
    return None
  
  def searchTracksByArtistName(self, artist_name):
    endpoint = 'track.search?apikey=' + self.apiKey + '&q_artist=' + artist_name
    response = self._requestApi(endpoint)
    track_ids = []
    for track in response['track_list']:
      track_ids.append(track['track']['track_id'])
    
    return  track_ids if len(track_ids) > 0 else None

  def getTrackLyrics(self, track_id):
    endpoint = 'track.lyrics.get?apikey=' + self.apiKey + '&track_id=' + str(track_id)
    response = self._requestApi(endpoint)
    if(response is not None): 
      return response['lyrics']['lyrics_body'].encode('utf-8')
    else:
      return None
  
  def _requestApi(self, endpoint):
    response = requests.get(self.url + endpoint)
    if(response.ok):
        jsonResponse = json.loads(response.content)
        #Api status code
        status_code = jsonResponse['message']['header']['status_code']
        if(status_code == 200):
          return jsonResponse['message']['body']
    else:
        response.raise_for_status()

run.py:
Код:
# -*- coding: utf-8 -*-
from musixmatch import Musixmatch
import os

musixmatch = Musixmatch("MUSIXMATCH_API_KEY")
rappers = ['upsurd', 'Krisko','100 kila','Shamara a.k.a. Big Sha','Dim4ou','Wosh MC','Billy Hlapeto','Qvkata DLG','Спенс ','M.W.P. & X','DiS (Denyo i Sensei)','Gangsta Man','The Top Stoppers','Над Закона','Hoodini','Rudi, Duli, Muden MC & KukuSheff','SARAFA OFICIAL PAGE','Играта','Calligraphist ','F.O. Zanimation Entertainment Studio','СтЗ Отбора','NOKAUT ','Manata & Keran Kenobi ','MILIONI ','Yoko ','JAY ','KARTELA RECORDS','ILLmate ','Varna Sound','Keranov']

for i, rapper in enumerate(rappers):  
  tracks = musixmatch.searchTracksByArtistName(rapper)
  if tracks is not None:
    for k, track in enumerate(tracks):
      lyrics = musixmatch.getTrackLyrics(track)
      if lyrics is not None: 
        directory = 'lyrics/' + rapper + '/'
        if not os.path.exists(directory):
            os.makedirs(directory)
        with open(directory + str(track) + '.txt', 'w') as file_:
          file_.write(lyrics)
 

Горе