【问题标题】:Is there a way to get the Current Song being listened to by a Google Music Member?有没有办法让 Google 音乐会员收听当前歌曲?
【发布时间】:2014-07-18 18:04:02
【问题描述】:

我想在我的网站上附加一个“他现在在听什么!”我的网站的功能,它会说诸如停播或当前歌曲的任何内容。我不知道是否有办法做到这一点。

我想找到一种方法来传播音乐品味,如果访问我的网站的人有谷歌音乐,他们也可以听那首歌,或者点击它来启动他们的播放器。歌曲。

我不知道对于给定的 Google 用户名或类似的东西是否有任何 API。

有谁知道如果/如何做到这一点?

我在想我可以有一个可以 ping 谷歌网站的脚本,或者运行一个 php 脚本来填充列表或数据库的信息。

【问题讨论】:

    标签: php jquery ajax google-music


    【解决方案1】:

    根据products page on Google Developers,没有与 Google Play 音乐相关的 API。


    您可以创建一个书签或浏览器扩展来从用户那里提取歌曲标题等,然后使用 ajax 将其提交到您的服务器。要使用 jQuery 获取信息:
    title = $("#playerSongTitle").text(); //Song title
    artist = $("#player-artist").text(); //Song artist
    album = $(".player-album:first").text(); //Album title
    data = JSON.stringify([title, artist, album]); //Generate json string
    $.post('http://www.example.com/postSong.php', data); //Send to server
    

    确保set the Access-Control-Allow-Origin header server-side 允许传入请求。


    演示:

    这是一个小书签(原版 JS):

    javascript:alert('Title: '+document.getElementById('playerSongTitle').innerHTML+'. Artist: '+document.getElementById('player-artist').innerHTML+'. Album: '+document.getElementsByClassName('player-album')[0].innerHTML+'.');
    

    如果页面上不存在元素,此功能将失败。在生产中,使用以下命令检查信息是否可用:

    if(document.getElementsByClassName('player-album').length > 0){
        //Music info is available
    }else{
        //Music info is not available
    }
    

    【讨论】:

    • 啊,所以我想我只需要将该扩展程序关联到我的 Chrome/Google 帐户,然后在我听音乐时,扩展程序只会推送到我的服务器......然后人们坐在我的网站可能只有一个每分钟 ping 一次的微调器,正在寻找新的数据库条目?
    • 我要调查一下,看看我能不能做到。我认为这将是一个理想的方式来做到这一点。如果我能以任何方式举一个粗略的例子,我会给你答案。 :)
    • 扩展不需要任何身份验证。我添加了一个简单的演示。观察更改的更好方法是不断检查客户端是否标题艺术家更改,如果更改则将其发送到服务器。
    【解决方案2】:

    Github上有一个开源项目:https://github.com/simon-weber/Unofficial-Google-Music-API 这也引用了他的网站:http://unofficial-google-music-api.readthedocs.org/en/latest/

    现在,从我所看到和管理的情况来看,虽然您看不到别人在说什么,但您可以使用此应用下载到计算机或服务器,然后通过您的网站访问这些下载的流。

    您不能公开分享此内容,因为它违反了 EULA。确保你遵守规则,因为我知道我不想有问题。如果您有一个执行此计算的大脑服务器,然后工作服务器只是根据需要进行 ping,这可能会派上用场。这是我想做的一个侧面目标。请允许我创建一个渐变系统,让我可以根据我所在的房间在房子周围播放音乐,而不是一直在客厅播放。

    现在,如果你想打破 EULA(我不希望你这样做,我知道我不是),但你可以将当前歌曲存储在服务器上,然后每次网站加载时,它只会延迟加载当前正在播放的文件或当前播放列表。但是,这样做意味着您无法在设备上播放音乐,因为您只能拥有 1 个访问音乐的接入点,因此您作为个人必须将网络服务器设置为您想听的任何内容,然后只需从网络服务器而不是您的设备流式传输。

    以为你们都想知道。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-05
      • 2014-11-03
      • 1970-01-01
      • 2015-08-10
      • 2011-09-17
      • 1970-01-01
      相关资源
      最近更新 更多