Drew
Drew

Reputation: 710

.VBS get current Windows Media Player song name

Is it possible to get the name of the current song playing in WMP with a VBS script? My goal is to have a .txt file that contains the name of the currently playing song. I'm using a livestream program (OBS) which can display text from a file, and since so many people ask me for my playlist while streaming, I'd like to have OBS display the name of the current song. To accomplish this, I'm just going to have it change the "Current Song" text to whatever is in currentsong.txt located on my Desktop, but I just don't know how update that txt to contain the current song.

I've searched around on Google and I haven't been able to find any way to get the current MWP song :(

Help please :(

Upvotes: 1

Views: 1692

Answers (2)

Hackoo
Hackoo

Reputation: 18857

Note: Retrieving information on a sequence can be done only when the load status "Transitioning" is reached.

Option Explicit
Dim Sound,Name,NameLog,fso,ws
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("wscript.Shell")
Set Sound = CreateObject("WMPlayer.OCX.7")
Sound.URL = "C:\FaceSong.mp3"
'Disable the sound
Sound.settings.mute = True
Sound.Controls.play
'Note: Retrieving information on a sequence can be done only when the load status "Transitioning" is reached.
While Sound.playState = 9
    Name = Sound.currentMedia.getItemInfo("Name")
    NameLog = Name & ".txt"
    if fso.FileExists(NameLog) Then 
        fso.DeleteFile NameLog
    end If
    MsgBox Name,VbInformation,Name 
    Call WriteLog(Name,NameLog)
Wend
ws.run NameLog
'***********************************************************************************************
Sub WriteLog(strText,LogFile)
    Dim fs,ts 
    Const ForAppending = 8
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set ts = fs.OpenTextFile(LogFile,ForAppending,True)
    ts.WriteLine strText
    ts.Close
End Sub
'************************************************************************************************

Upvotes: 1

Noodles
Noodles

Reputation: 2011

You need to either read Media Player's documentation (so when you looked on the internet you did look at MSDN.com which is where it lives, like all Microsoft's documentation.?). If you have a programming IDE (like VBA in Office) then use it's object browser.

Start an office app, press Alt + F11, then F2.

Right click somewhere and choose References add Windows Media Player from list. Change drop down from All Libraries to just Media Player.

You have a property for filename. And a method to get any info on the song.

Property FileName As String
Member of MediaPlayer.MediaPlayer
Returns or sets the current file name and path

and

Function GetMediaInfoString(MediaInfoType As MPMediaInfoType) As String
Member of MediaPlayer.MediaPlayer
Returns an Information String for the Media

Remember VBS doesn't have access to the type library so you have to use constant's values instead of constant's names. So in the above you woulduse 8 and not mpClipTitle to get the title.

Upvotes: 0

Related Questions