3

我正在尝试制作一个不和谐的机器人来在 103.7 广播电台播放 iheart80s,到目前为止,我找不到直接的流 url 来给我的不和谐机器人。

我试图通过 python 获取 json,但它只返回 http.client.BadStatusLine: ICY 200 OK

我正在使用 discord.js。这是我试图将流 url 输入的函数:

function(CmdArg,CmdMsg){
  const voiceChannel = CmdMsg.member.voiceChannel;
  voiceChannel.join().then(connection => resolve(connection)).catch(err =>reject(err));
  const stream = () => {
           return request.get({
               uri: CmdArg,
               followAllRedirects: true,
               encoding: null
           });
       }


    console.log(stream);
    CmdMsg.guild.voiceConnection.playStream(stream, { passes: token.passes    });
}
4

6 回答 6

3

通过这样做,我能够找到 iheart 网址...转到所需的广播电台网站。点击收听/播放。右键单击页面然后查看页面源。查找/搜索...“icy”“icy”的第一个实例应该在这里..“shoutcast_stream”:“http://(各种字母和数字)。playlists.ihrhls.com/(4个数字)icy”我将http地址复制并粘贴到winamp中,它起作用了。

http://c10icyelb.prod.playlists.ihrhls.com/4342_icy

于 2017-12-02T04:08:49.507 回答
3

它再次发生了变化,没有任何wireshark解决方案,或者在chrome/firefox的检查选项卡中搜索某些文本有帮助,但我想通了......

我将使用的示例是:I heart Mix 90.1 Toluca https://www.iheart.com/live/mix-901-toluca-6566/

  1. 单击“共享”图标,它位于“连接”按钮的右侧。
  2. 查找嵌入小部件部分。
  3. 然后从src="的末尾复制。示例:整个文本是

<iframe allow="autoplay" width="100%" height="200" src="https://www.iheart.com/live/mix-901-toluca-6566/?embed=true" frameborder="0"></iframe>

我会复制

https://www.iheart.com/live/mix-901-toluca-6566/?embed=true
  1. 好的,不错。现在我们可以使用更少的 html 和 url。现在复制该网址并将其粘贴到您的网络浏览器中(您现在可以关闭以前的广播网页)。Rick 点击播放按钮,选择 Inspect。
  2. 现在,使用 Ctrl+F(仅按ctrlF),查找stream. 你应该得到几个结果,但它们都在同一个文本行上,所以不用担心。
  3. 现在双击加载的 JSON 数据,应该以类似的开头 {"initialPropos" : {.....,现在复制所有文本并粘贴到文本编辑器中,这样您就可以搜索文本(例如vim,、、notepadMS Word
  4. 现在,使用粘贴的文本打开文本编辑器。现在寻找streams. 第一个结果应该以以下内容开头:,"streams":{"hls...
  5. 伟大的!现在您可以复制您喜欢的流,有些可能不可用,但在此示例中,可以使用以下流类型:
{
"hls_stream":"http://playerservices.streamtheworld.com/api/livestream-redirect/XHENOFMAAC.m3u8",

"pls_stream":"http://playerservices.streamtheworld.com/pls/XHENOFMAAC.pls",

"secure_hls_stream":"https://playerservices.streamtheworld.com/api/livestream-redirect/XHENOFMAAC.m3u8",

"secure_pls_stream":"https://playerservices.streamtheworld.com/pls/XHENOFMAAC.pls"}
  1. 现在,您可以选择您喜欢的流并用您最喜欢的音频/视频播放器打开它。例如(一定要把它放在双引号中,这样它就不会被你的 shell 或 smth 操纵)mpv "http://playerservices.streamtheworld.com/api/livestream-redirect/XHENOFMAAC.m3u8"

  2. 结束!现在你应该好好去!如果我一点都不清楚,请告诉我。我创建堆栈溢出帐户的唯一原因是发布此信息并帮助其他人知道如何执行此操作,所以如果这不起作用,请告诉我!

干杯。

于 2021-08-15T22:38:01.047 回答
1

您可以在计算机上使用 mitmproxy 来检查应用程序的流量。我能够将http://c10.prod.playlists.ihrhls.com/4342/playlist.m3u8识别为该广播电台的流源。当然,url可能会随着时间而改变,所以ymmv。

于 2017-02-04T19:02:10.977 回答
1

查找 iHeartRadio 的链接:(我以 93.3 频道为例)

  1. 打开 iHeart 收音机并找到您的直播 *注意:请勿开始直播
  2. 使用 Wire Shark 或任何其他捕获工具并在 iHeart Radio 上播放流之前立即开始捕获
  3. 停止流然后立即停止捕获(这将我们捕获的数据包数量限制为仅我们想要的数据包)
  4. 使用过滤器并输入 tcp contains "ihrh"
  5. 打开所有包含链接的数据包。*注意:忽略任何包含“ihrh”的文本,我们正在寻找链接
  6. 查找服务器链接(例如 c13.prod.playlists.ihrhls.com) *注意:确保它是“c”和类似“c13”的数字而不是“cdn”或其他任何东西
  7. 进入 Internet Explorer 并在 iheart 电台上播放
  8. 查看 url 并注意代码(例如h ttps://www.iheart.com/live/channel-933-241 / ?autoplay=true&pname=fire&campid=local&callletters=khts-fm)
  9. 使用服务器链接,然后添加“/”,然后添加从上述步骤中找到的代码
  10. 接下来,将“/playlist.m3u8”字样添加到链接末尾
  11. 完成所有步骤后,您将获得我们案例中的最终链接:https ://c13.prod.playlists.ihrhls.com/241/playlist.m3u8
于 2018-03-17T19:13:51.607 回答
0

> 查找/搜索...“冰冷”

这不是一种可靠的方法,因为可能会使用其他服务器,例如 streamtheworld、edgefcs 等 - 有些可能使用 RTMP(您的播放器可能无法处理)

这是可以完成这项工作的 Perl 模块和示例脚本:

https://metacpan.org/release/IHeartRadio-Streams

参考:https ://askubuntu.com/questions/470269/how-do-i-add-iheartradio-stations-to-radio-tray/470277

于 2017-12-10T17:41:52.490 回答
-1

我觉得播放广播电台需要代理服务器和 ffmpeg 设置,因为多个用户将通过您的网站/webapp/app 连接到流媒体。服务器端的 ffmpeg 将读取广播电台流(http 流或 rtsp 流)并将其提供给您的流媒体代理服务器,该服务器将管理多个连接。

于 2017-02-04T18:34:08.607 回答