我怎样才能获得 iheartradio 电台的原始流 url。
how can i get the raw stream url of a iheartradio station.
我正在尝试制作一个 discord 机器人来在 103.7 广播电台播放 iheart80s,
到目前为止,我找不到直接流 url 给我的 discord 机器人。
我曾尝试通过 python 获得 json 但那只是 returns 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 });
}
我觉得流式传输广播电台需要代理服务器和 ffmpeg 设置,因为多个用户将通过您的 website/webapp/app 连接以进行流式传输。服务器端的 ffmpeg 将读取广播电台流(http 流或 rtsp 流)并将其提供给将管理多个连接的流媒体代理服务器。
您可以在计算机上使用 mitmproxy 来检查应用程序的流量。我能够将 http://c10.prod.playlists.ihrhls.com/4342/playlist.m3u8 识别为该电台的流源。当然,url 可能会随时间变化,所以 ymmv.
通过这样做,我找到了 iheart url...
转到所需的广播电台网站。
点击 listen/play。
右键单击页面然后查看页面源代码。
Find/search 为..."icy"
"icy"的第一个实例应该在这里..
"shoutcast_stream":"http:// (various letters and numbers). playlists.ihrhls.com/(4 numbers) icy"
我将 http 地址复制并粘贴到 winamp 中,它起作用了。
> Find/search 为..."icy"
这不是可靠的方法,因为可能会使用其他服务器,例如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
找到 links 关闭 iHeartRadio:(我使用频道 93.3 作为示例)
- 打开 iHeart 电台并找到您的直播 *注意:暂时不要开始直播
- 使用 Wire Shark 或任何其他捕获工具并在 iHeart Radio 上播放流之前立即开始捕获
- 停止流然后立即停止捕获(这将我们捕获的数据包数量限制为我们想要的)
- 使用过滤器并输入 tcp contains "ihrh"
- 打开所有包含 link 的数据包。 *注意:忽略任何包含 "ihrh" 我们正在寻找 link
的文本
- 查找服务器 link(例如 c13.prod.playlists.ihrhls.com)*注意:确保它是 "c" 并且数字类似于 "c13" 而不是 "cdn" 或任何其他内容否则
- 进入 Internet Explorer 并在 iheart 电台上播放
- 查看 url 并注意代码(例如 https://www.iheart.com/live/channel-933-241/?autoplay=true&pname=fire&campid=local&callletters=khts-fm)
- 使用服务器link然后添加“/”然后是从上面的步骤中找到的代码
- 接下来,将单词“/playlist.m3u8”添加到link
- 完成所有步骤后,您将得到最终的 link,在我们的例子中:https://c13.prod.playlists.ihrhls.com/241/playlist.m3u8
它又变了再次,none 的 wireshark 解决方案,或在 chrome/firefox 的检查选项卡中搜索某些文本有帮助,但我想通了.. .
我将使用的示例是:我喜欢 Mix 90.1 Toluca https://www.iheart.com/live/mix-901-toluca-6566/
- 点击 Share 图标,它位于 'connect' 按钮右侧。
- 查找嵌入小部件部分。
- 然后从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
- 好的,很好。现在我们可以使用的 html 和 url 少了很多。现在复制 url 并将其粘贴到您的网络浏览器中(您现在可以关闭之前的广播网页)。 Rick 单击播放按钮,select 检查。
- 现在,使用 Ctrl+F(仅按
ctrl
和 F
),查找 stream
。您应该会得到多个结果,但它们都在同一文本行中,所以不用担心。
- 现在双击加载的 JSON 数据,应该以类似
{"initialPropos" : {.....
,现在复制所有文本并粘贴到文本编辑器中,这样您就可以搜索文本(例如 vim
、notepad
、MS Word
)
- 现在,使用粘贴的文本打开文本编辑器。现在寻找
streams
。第一个结果应以类似以下内容开头:,"streams":{"hls...
- 太棒了!现在你可以复制你喜欢的流,有些可能不可用,但在这个例子中,以下流类型可用:
{
"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"}
现在,您可以选择自己喜欢的流,并用您最喜欢的 audio/video 播放器打开它。例如。 (一定要把它放在双引号里,这样它就不会被你的 shell 或 smth 操纵)mpv "http://playerservices.streamtheworld.com/api/livestream-redirect/XHENOFMAAC.m3u8"
结束!现在你应该可以开始了!如果我一点都不清楚,请告诉我。我创建堆栈溢出帐户的唯一原因是 post 这个并帮助其他人知道如何执行此操作,所以如果这不起作用请告诉我!!
干杯。
我正在尝试制作一个 discord 机器人来在 103.7 广播电台播放 iheart80s, 到目前为止,我找不到直接流 url 给我的 discord 机器人。
我曾尝试通过 python 获得 json 但那只是 returns 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 });
}
我觉得流式传输广播电台需要代理服务器和 ffmpeg 设置,因为多个用户将通过您的 website/webapp/app 连接以进行流式传输。服务器端的 ffmpeg 将读取广播电台流(http 流或 rtsp 流)并将其提供给将管理多个连接的流媒体代理服务器。
您可以在计算机上使用 mitmproxy 来检查应用程序的流量。我能够将 http://c10.prod.playlists.ihrhls.com/4342/playlist.m3u8 识别为该电台的流源。当然,url 可能会随时间变化,所以 ymmv.
通过这样做,我找到了 iheart url... 转到所需的广播电台网站。 点击 listen/play。 右键单击页面然后查看页面源代码。 Find/search 为..."icy" "icy"的第一个实例应该在这里.. "shoutcast_stream":"http:// (various letters and numbers). playlists.ihrhls.com/(4 numbers) icy" 我将 http 地址复制并粘贴到 winamp 中,它起作用了。
> Find/search 为..."icy"
这不是可靠的方法,因为可能会使用其他服务器,例如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
找到 links 关闭 iHeartRadio:(我使用频道 93.3 作为示例)
- 打开 iHeart 电台并找到您的直播 *注意:暂时不要开始直播
- 使用 Wire Shark 或任何其他捕获工具并在 iHeart Radio 上播放流之前立即开始捕获
- 停止流然后立即停止捕获(这将我们捕获的数据包数量限制为我们想要的)
- 使用过滤器并输入 tcp contains "ihrh"
- 打开所有包含 link 的数据包。 *注意:忽略任何包含 "ihrh" 我们正在寻找 link 的文本
- 查找服务器 link(例如 c13.prod.playlists.ihrhls.com)*注意:确保它是 "c" 并且数字类似于 "c13" 而不是 "cdn" 或任何其他内容否则
- 进入 Internet Explorer 并在 iheart 电台上播放
- 查看 url 并注意代码(例如 https://www.iheart.com/live/channel-933-241/?autoplay=true&pname=fire&campid=local&callletters=khts-fm)
- 使用服务器link然后添加“/”然后是从上面的步骤中找到的代码
- 接下来,将单词“/playlist.m3u8”添加到link
- 完成所有步骤后,您将得到最终的 link,在我们的例子中:https://c13.prod.playlists.ihrhls.com/241/playlist.m3u8
它又变了再次,none 的 wireshark 解决方案,或在 chrome/firefox 的检查选项卡中搜索某些文本有帮助,但我想通了.. .
我将使用的示例是:我喜欢 Mix 90.1 Toluca https://www.iheart.com/live/mix-901-toluca-6566/
- 点击 Share 图标,它位于 'connect' 按钮右侧。
- 查找嵌入小部件部分。
- 然后从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
- 好的,很好。现在我们可以使用的 html 和 url 少了很多。现在复制 url 并将其粘贴到您的网络浏览器中(您现在可以关闭之前的广播网页)。 Rick 单击播放按钮,select 检查。
- 现在,使用 Ctrl+F(仅按
ctrl
和F
),查找stream
。您应该会得到多个结果,但它们都在同一文本行中,所以不用担心。 - 现在双击加载的 JSON 数据,应该以类似
{"initialPropos" : {.....
,现在复制所有文本并粘贴到文本编辑器中,这样您就可以搜索文本(例如vim
、notepad
、MS Word
) - 现在,使用粘贴的文本打开文本编辑器。现在寻找
streams
。第一个结果应以类似以下内容开头:,"streams":{"hls...
- 太棒了!现在你可以复制你喜欢的流,有些可能不可用,但在这个例子中,以下流类型可用:
{
"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"}
现在,您可以选择自己喜欢的流,并用您最喜欢的 audio/video 播放器打开它。例如。 (一定要把它放在双引号里,这样它就不会被你的 shell 或 smth 操纵)
mpv "http://playerservices.streamtheworld.com/api/livestream-redirect/XHENOFMAAC.m3u8"
结束!现在你应该可以开始了!如果我一点都不清楚,请告诉我。我创建堆栈溢出帐户的唯一原因是 post 这个并帮助其他人知道如何执行此操作,所以如果这不起作用请告诉我!!
干杯。