Created ver 1.00 of LastFM-NowPlaying.

-Stable
This commit is contained in:
GamePlayerCole
2018-07-22 18:49:02 -04:00
parent 574d0be8f4
commit 81869c6b75
3 changed files with 74 additions and 1 deletions

69
LastFM-NowPlaying.py Normal file
View File

@@ -0,0 +1,69 @@
from xml.dom import minidom
from urllib.request import urlopen
import sys
import time
import threading
userName = input("Enter your LastFM username: ")
#Public API Key for Accessing Last FM
apiKey = ("460cda35be2fbf4f28e8ea7a38580730")
#Global Variables
currentTrackURL = ('http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&nowplaying="true"&user=' + str(userName) + '&api_key=' + str(apiKey))
runCheck = True
waitTime = 0
noSongPlaying = ("Nothing Currently Playing")
#Defines the funcions for use in different threads.
def checkForNewSong():
global runCheck
global waitTime
while runCheck == True:
#Loads Current Song info from Last FM
currentTrackXML = urlopen(currentTrackURL).read()
currentTrack = minidom.parseString(currentTrackXML)
songName = currentTrack.getElementsByTagName('name')
songArtist = currentTrack.getElementsByTagName('artist')
songInfo = songName[0].firstChild.nodeValue + " by " + songArtist[0].firstChild.nodeValue + " "
currentSongFile = open("currentSong.txt", "r")
#Checks if currentSong is already in currentSong.txt If it isn't, clears the file.
if currentSongFile.readline() != songInfo:
currentSongFile.close()
#Runs twice; Once for clearing and once for adding the curren song.
currentSongFile = open("currentSong.txt", "w")
currentSongFile.write(songInfo)
currentSongFile.close()
print(songInfo)
#Adds wait before next check.
time.sleep(waitTime)
#End of While Loop
#Sets the current song to "Nothing Currently Playing"
currentSongFile = open("currentSong.txt", "w")
currentSongFile.write(noSongPlaying)
currentSongFile.close()
#Closes the Application
sys.exit()
def exitCheck():
global runCheck
while runCheck == True:
exitInput = input("Type Exit to close: \n")
if exitInput == "exit" or exitInput == "Exit" or exitInput == "EXIT":
print("Closing Application...")
runCheck = False
#Checks for currentSong.txt. If doesn't exist, creates file.
currentSongFile = open("currentSong.txt", "w")
#Used to keep currentSong.txt on "Nothing Currently Playing" until first song is pulled from LastFM
currentSongFile.write(noSongPlaying)
currentSongFile.close()
#Creates Threads for the two functions
newSongThread = threading.Thread(target=checkForNewSong)
exitThread = threading.Thread(target=exitCheck)
newSongThread.start()
exitThread.start()

View File

@@ -1,2 +1,6 @@
# LastFM-NowPlaying
A Python Script that pull's a user's current song from Last FM then writes it to a text file for use with OBS or Xsplit.
A Python Script that pull's a user's current song from LastFM then writes it to a text file for use with an external program.
### Use
Input your LastFM username. Then let it run. The songs will automatically write to currentSong.txt
To close, type in "exit" then press Enter.

Binary file not shown.