Python ile Playerctl'den veri çekerek şarkı sözü bulmak

Python:
from gi.repository import Playerctl, GLib
from gi.repository import Playerctl, GLib
from time import sleep
from os import system
import lyricsgenius 

genius = lyricsgenius.Genius()
player = Playerctl.Player()
not_shown = True

def on_metadata(player, metadata):
    global not_shown # Dışarıdaki not_shown değişkenini aktarıyoruz
    if 'xesam:artist' in metadata.keys() and 'xesam:title' in metadata.keys() and not_shown == True: # şarkı başlığı ve sanatçı ismi varsa ve bu yazı hiç gösterilmemişse.
        song = genius.search_song(metadata['xesam:title'],metadata['xesam:artist']) # Şarkıyı API'da ara.
        system(f"echo \"{song.lyrics}\" | less") # Bulunan şarkı sözlerini listele. Less komutu ekranı kaplamasını ve kaydırma özelliğini sağlıyor.
        not_shown = False # Bir kere gösterildiği için daha görünmesini istemiyoruz.
        exit(0)
player.connect('metadata', on_metadata) # Eğer bir şarkı çalınıyorsa on_metadata fonksiyonuna bağlan.


"""
---   GLib işlemleri
"""
main = GLib.MainLoop()
main.run()

Çıkmak için LESS komutu gereği Q tuşuna basmanız gerek.
Gereken paketleri pip ile yüklemeyi unutmayın! Kod yalnızca PlayerCTL kullanan GNU/Linux dağıtımların'da çalışmaktadır.
pip3 install lyricsgenius
"TOKEN" kısmına Genius API Token'ınızı yazmanız gerek.

Örnek kullanım videosu:
enginar.gif

Yorumlar


Blog girdisi detayları

Ekleyen
Linuxginar
Okuma süresi
1 dakika okuma
Görüntüleme
805
Yorumlar
2
Son güncelleme
Değerlendirme
5,00 yıldız 1 değerlendirme

Yazılım kategorisindeki diğer girdiler

Linuxginar adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı