31 lines
1.5 KiB
Plaintext
31 lines
1.5 KiB
Plaintext
use framework "Foundation"
|
|
try
|
|
set MediaRemote to current application's NSBundle's bundleWithPath:"/System/Library/PrivateFrameworks/MediaRemote.framework/"
|
|
MediaRemote's load()
|
|
|
|
set MRNowPlayingRequest to current application's NSClassFromString("MRNowPlayingRequest")
|
|
set bundleID to MRNowPlayingRequest's localNowPlayingPlayerPath()'s client()'s bundleIdentifier()
|
|
set info to MRNowPlayingRequest's localNowPlayingItem()'s nowPlayingInfo()
|
|
set title to info's valueForKey:"kMRMediaRemoteNowPlayingInfoTitle"
|
|
set album to info's valueForKey:"kMRMediaRemoteNowPlayingInfoAlbum"
|
|
set artist to info's valueForKey:"kMRMediaRemoteNowPlayingInfoArtist"
|
|
set duration to info's valueForKey:"kMRMediaRemoteNowPlayingInfoDuration"
|
|
set playbackStatus to info's valueForKey:"kMRMediaRemoteNowPlayingInfoPlaybackRate"
|
|
set elapsed to info's valueForKey:"kMRMediaRemoteNowPlayingInfoElapsedTime"
|
|
|
|
set jsonString to "{"
|
|
set jsonString to jsonString & "\"title\": \"" & title & "\", "
|
|
set jsonString to jsonString & "\"album\": \"" & album & "\", "
|
|
set jsonString to jsonString & "\"artist\": \"" & artist & "\", "
|
|
set jsonString to jsonString & "\"duration\": \"" & duration & "\", "
|
|
set jsonString to jsonString & "\"playbackStatus\": \"" & playbackStatus & "\", "
|
|
set jsonString to jsonString & "\"elapsed\": \"" & elapsed & "\","
|
|
set jsonString to jsonString & "\"player\": \"" & bundleID & "\""
|
|
set jsonString to jsonString & "}"
|
|
return jsonString
|
|
on error
|
|
set jsonString to "{\"player\": \"none\"}"
|
|
return jsonString
|
|
end try
|
|
|