记录在线音乐到last.fm
某个时候听了某个音乐,因此自己心中的什么,发生了很大的变化…之类的
gmscrobber 的目标是提供一种简单的方法来将在线播放的音乐记录到 last.fm. 安装 gmscrobber 需要 greasemonkey 或者兼容环境(如 chrome + Tampermonkey 或 firefox + greasemonkey)
目前支持的网站有: 豆瓣电台, Google Music, QQ 音乐, 百度音乐盒, 网易云音乐, 虾米电台/虾米播放器
基础支持(不支持红心同步):
在网站上首次使用 gmscrobbler 需要 last.fm 的认证. 认证以后, 脚本会自动运行. 认证操作如下:
通过 @solos 的歌词迷API, gmscrobbler 也对正在收听的歌曲提供了简单的在线歌词. 输出在浏览器的 javascript 控制台中(如在 Firefox 中 ctrl + shift + j 打开).
使用 GMscrobber 将使编写你自己的 scrobbler 变得非常简单, 如果已有 javascript 和 userscript 的编写经验, 写一个 scrobbler 只需要以下几步:
在你喜欢的在线音乐播放页面新建一个用户脚本文件, 引入 simple_scrobbler_user:
// @require http://justan.github.io/gmscrobber/GMscrobbler_for_xiami.user.js
创建一个 Scrobber 实例:
var scrobber = new Scrobber({name: '在线音乐', ready: init})
创建你自己的播放器监控方法. 这是你代码的核心部分, 后面会详细讨论这一部分. 当歌曲开始播放的时候调用:
scrobber.nowPlaying({
name: 'Wish You Were Here',//歌名
artist: 'Pink Floyd',//歌手
duration: 280,//曲长
album: 'Wish You Were Here'//专辑名
});
大功告成
目前有两种办法监控页面的播放状态:
scrobber.setSongInfoFN
, 剩下的 gmscrobber 会聪明的处理好. 示例: QQ 音乐 scrobber.在页面播放器有可访问的播放状态变化函数的时候, 可以选择重新封装该函数. 如豆瓣电台 scrobber:
var ex = unsafeWindow.extStatusHandler;
unsafeWindow.extStatusHandler = function(songChangeInfo){
//your code here
return ex.apply(this, arguments);
};
有任何问题, 欢迎提交到 Github issue 上.
留言