Python 3 从网络广播流中获取歌曲名称

2023-12-30

如何从网络广播流中获取歌曲名称?

Python:从url获取shoutcast/网络广播电台的名称 https://stackoverflow.com/questions/3110494/python-get-name-of-shoutcast-internet-radio-station-from-url我看了这里,但只有广播电台的名称。但是如何获取正在播放的歌曲的名称呢?这是我想获取歌曲名称的流链接。http://pool.cdn.lagardere.cz/fm-evropa2-128 http://pool.cdn.lagardere.cz/fm-evropa2-128

我该怎么做呢?你能帮我吗?


要获取流标题,您需要请求元数据。看shoutcast/icecast 协议说明 http://www.smackfu.com/stuff/programming/shoutcast.html:

#!/usr/bin/env python
from __future__ import print_function
import re
import struct
import sys
try:
    import urllib2
except ImportError:  # Python 3
    import urllib.request as urllib2

url = 'http://pool.cdn.lagardere.cz/fm-evropa2-128'  # radio stream
encoding = 'latin1' # default: iso-8859-1 for mp3 and utf-8 for ogg streams
request = urllib2.Request(url, headers={'Icy-MetaData': 1})  # request metadata
response = urllib2.urlopen(request)
print(response.headers, file=sys.stderr)
metaint = int(response.headers['icy-metaint'])
for _ in range(10): # # title may be empty initially, try several times
    response.read(metaint)  # skip to metadata
    metadata_length = struct.unpack('B', response.read(1))[0] * 16  # length byte
    metadata = response.read(metadata_length).rstrip(b'\0')
    print(metadata, file=sys.stderr)
    # extract title from the metadata
    m = re.search(br"StreamTitle='([^']*)';", metadata)
    if m:
        title = m.group(1)
        if title:
            break
else: 
    sys.exit('no title found')
print(title.decode(encoding, errors='replace'))

在这种情况下,流标题为空。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 从网络广播流中获取歌曲名称 的相关文章

  • 静态文件配置不正确

    我已经在 Heroku 上部署了简单的博客应用程序 它运行在Django 1 8 4 我在静态文件方面遇到了一些问题 当打开我的应用程序时 我看到Application Error页面 所以我尝试调试它并发现当我提交到 Heroku 时它无
  • 无法在 mysql 表中的值中使用破折号(-)[重复]

    这个问题在这里已经有答案了 我一直在尝试从 python 将数据插入 MYSQL 表 我的sql表中的字段是id token start time end time和no of trans 我想存储使用生成的令牌uuid4在令牌栏中 但由于
  • Django 如何从 ManyToManyField 序列化并列出全部

    我正在使用 Django 1 9 1 开发移动应用程序后端 我实现了关注者模型 现在我想列出用户的所有关注者 但目前我不得不这样做 我还使用 Django Rest 框架 这是我的 UserProfile 模型 class UserProf
  • 将 matplotlib png 转换为 base64 以在 html 模板中查看

    背景 你好 我正在尝试制作一个简单的网络应用程序 按照教程计算阻尼振动方程 并将结果的 png 返回到 html 页面 然后将其转换为 Base64 字符串 Problem 该应用程序运行正常 只是在计算结果时返回损坏的图像图标 可能是因为
  • 可移植的非关系数据库

    我想尝试 尝试非关系数据库 最好的解决方案是 便携式 这意味着它不需要安装 理想情况下 只需将目录复制粘贴到某个地方即可使其工作 我不介意第一次使用时是否需要编辑一些配置文件或运行配置工具 可从 python 访问 适用于 Windows
  • 在 keras 中使用自定义张量流操作

    我在张量流中有一个脚本 其中包含自定义张量流操作 我想将代码移植到 keras 但我不确定如何在 keras 代码中调用自定义操作 我想在 keras 中使用tensorflow 所以到目前为止我发现的教程描述了与我想要的相反的内容 htt
  • Python 字典 - 在 2 个字符的字符串中查找第二个字符,该字符产生最小值

    我想提交密钥的第一部分并返回该密钥的剩余部分 以最小化值 并从第一部分开始 例如 d ab 100 ac 200 ad 500 如果我要进去 a I would like to return b min d s s for s in d i
  • Selenium Webdriver - Python - leboncoin - pb 选择带重音的按钮

    我正在尝试在以下网站上自动填写表格 https www leboncoin fr https www leboncoin fr 我用 Selenium IDE 录制了一个脚本 我有一个通过单击 Se 连接器 按钮并填写我的密码和用户名来自动
  • 在函数调用之间保存数据的Pythonic方式是什么?

    对我来说 上下文是我需要在调用修改该值的函数之间保留的单个 int 的信息 我可以使用全局 但我知道这是不鼓励的 现在 我使用了包含 int 的列表形式的默认参数 并利用了可变性 以便在调用之间保留对值的更改 如下所示 def increm
  • 属性错误:类型对象“图像”没有属性“打开”

    Exception in Tkinter callback Traceback most recent call last File C Python34 lib tkinter init py line 1482 in call retu
  • 如何使用 python 操作系统更改驱动器?

    我正在尝试更改当前目录C to Y 我试过 import os os chdir Y 但我不断收到错误消息 提示无法找到驱动器 本质上我正在寻找相当于 cd d cmd 中的命令 你确定吗Y 确实是有效的驱动器号吗 Try os chdir
  • InvalidArgumentException:消息:无效参数:“using”必须是字符串

    我对 python 很陌生 试图创建可重用的代码 当我尝试通过传递 Login 类下使用的所有参数来调用 test main py 中的 Login 类和函数 login user 时 我收到错误 InvalidArgumentExcept
  • 提交表格并上传带有请求的文件

    我正在努力提交特定的表格蟒蛇请求 http www python requests org 我想使用它的网站上的其他表单工作正常 我可以提交登录表单等 这只是我遇到问题的文件上传 显然 提交表单效果很好 因为我从网站收到一条消息 说 请返回
  • Python 垃圾收集有时在 Jupyter Notebook 中不起作用

    我的一些 Jupyter 笔记本经常出现 RAM 不足的情况 而且我似乎无法释放不再需要的内存 这是一个例子 import gc thing Thing result thing do something thing None gc col
  • 如何将 pytest 装置与 django TestCase 一起使用

    我如何在TestCase方法 类似问题的几个答案似乎暗示我的例子应该有效 import pytest from django test import TestCase from myapp models import Category py
  • 使用 Flask-SQLAlchemy 进行多对多多数据库连接

    我正在尝试使这个多对多联接与 Flask SQLAlchemy 和两个 MySQL 数据库一起工作 并且它非常接近 只是它为联接表使用了错误的数据库 这是基础知识 我有main db and vendor db 表格设置为main db u
  • psutil:测量特定进程的CPU使用率

    我正在尝试测量进程树的 cpu 使用率 目前获取进程 没有子进程 的 cpu usage 就可以了 但我得到了奇怪的结果 import psutil p psutil Process PID p cpu percent 还给我float g
  • 在读/写二进制数据结构时访问位域

    我正在为二进制格式编写一个解析器 这种二进制格式涉及不同的表 这些表同样采用二进制格式 通常包含不同的字段大小 其中 50 100 个之间 大多数这些结构都有位域 并且在 C 语言中表示时看起来像这样 struct myHeader uns
  • Selenium Python 使用代理运行浏览器[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个非常简单的脚本 该脚本从 txt 文件获取代理 不需要身份验证 并用它打开浏览器 然后沿着代理列表循环此操作一定次数 我确实知道如何打开 txt 文件并使用它 我的主要问题是让代理正常工作 我见
  • python中匹配3个或更多相同的字符

    我正在尝试使用正则表达式在字符串中查找三个或更多相同的字符 例如 你好 不匹配 噢 会的 我尝试过做类似的事情 re compile 1 3 a zA Z re compile w 1 5 但似乎都不起作用 w 1 2 是您正在寻找的正则表

随机推荐

  • phpMyAdmin - 错误:关系功能被禁用

    当我想使用 phpMyAdmin 4 3 8 在设计器模式下创建两个表之间的关系时 它给我一个错误 错误 关系功能已禁用 当我尝试使用 4 1 4 时 它工作得很好 我似乎找不到应该在哪里更改设置才能在设计器模式下创建关系 任何想法 提前致
  • Paperclip S3 下载远程图像

    如何下载远程图像 http协议 url位于image remote url属性中 并通过Paperclip将其保存为S3的附件 class Product lt ActiveRecord Base require open uri attr
  • 在固定时间后中断线程,是否必须抛出InterruptedException?

    我想在固定时间后中断线程 其他人问了同样的问题 投票最高的答案 https stackoverflow com a 2275596 1310503 https stackoverflow com a 2275596 1310503 给出了下
  • 在 MacOSX (Macbook Pros) 上以编程方式读取 CPU 温度(+其他传感器数据)

    我想以编程方式从我的 MacBook Pro 2009 型号 读取 CPU 温度和任何其他有趣的传感器数据 我该怎么做 我注意到一个上一篇文章 https stackoverflow com questions 2216888 how to
  • 在 Spring 中格式化/缩进 JaxB 编组器

    我正在尝试对 Spring 中的 Jaxb2Marshaller 类的输出 XML 进行 PrettyPrint 缩进 格式化 即使我输入的属性如 Web 上其他地方所见 该文件仍然全部在一行上 这是我的 bean 声明
  • C++:我想在所有 CPP 文件之间使用这个配置类,如何初始化它?

    class Config public static int OUTPUT TO FILE static int NEED TO TRAIN static int NO FILE TRAIN static int NEED TO TEST
  • Java 创建临时文件

    名称的最大长度是多少TempFile在java中和MaximumFilesize取决于 在我们提到要创建的临时目录或其他基于java的机器上 何时致电deleteOnExit 方法 但是这个方法有什么用 因为它会在 JVM 关闭时被调用 但
  • Glide - 下载 GIF 并调整其大小到文件中

    我需要下载一个 GIF 并将其保存到外部存储 以便我可以通过彩信发送它 消息的大小限制为 300kb 并且大多数 GIF 太大 因此我需要调整它们的大小 我在项目的其余部分中使用 Glide Glide 有一个漂亮的功能 理论上应该下载调整
  • twitter bootstrap form-group 的 AngularJS 指令

    我最近一直在玩 Angular 到目前为止一切都很好 但我在指令方面遇到了困难 我正在尝试创建一个指令 为标准引导表单组生成 html 标记及其相应的验证消息 所以基本上我正在尝试转换它
  • Couchdb - 是否可以停用reduce_overflow_error错误

    我正在开发一个映射 归约 它在重新归约的情况下并不能准确地返回我所期望的结果 我想调试它 但我至少也想看看里面有什么 所以我输出了很多东西 Couch 返回了一个reduce overflow error每次我运行视图时 是否可以停用此行为
  • 正确使用 NSGetExecutablePath

    我尝试在运行时获取应用程序的路径 我找到了一些来自 C 的旧源代码 并将其相应地转换为函数参数类型定义 var path Int8 count 1024 repeatedValue 0 var bufsize UInt32 1024 if
  • 如何在多个字段上使用 SearchHeadline 和 SearchVector

    我需要一个搜索多个字段并返回一个突出显示匹配单词的 标题 我的理解是 SearchVector 是跨多个字段搜索的合适选择 但我见过的所有 SearchHeadline 示例都只使用一个字段 将 SearchHeadline 与多个字段结合
  • Spring Cloud Gateway 和 TokenRelay 过滤器

    我正在尝试将 JHipster 从使用 Zuul 迁移到 Spring Cloud Gateway JHipster 使用 Eureka 来查找路由 我相信我已经正确配置了 Spring Cloud Gateway 来查找路由并将访问令牌传
  • 调整 UIPrintInteractionController 的 UIImage 大小

    我目前正在研究通过 Airprint 打印视图内容的可能性 对于此功能 我从视图创建一个 UIImage 并将其发送到 UIPrintInteractionController 问题在于图像的大小被调整为纸张的完整分辨率 而不是原始大小 大
  • 使用 Ionic Zip 库将文件夹添加到 Zip 根目录

    我想要做的是使用 Ionic Zip 库 c 将文件夹和文件列表全部添加到我的 Zip 文件的根目录中 这是我到目前为止所拥有的 string k B My Documents Workspace private void button1
  • 运行Android应用程序会产生java.lang.NoClassDefFoundError:retrofit.RestAdapter$Builder

    我正在 Android 上使用 Flickr API 制作一个照片库应用程序 使用 Eclipse 和 4 4 SDK 该项目已成功编译 但应用程序在再次运行 4 4 的 Nexus 7 2012 上启动后立即崩溃 我的构建路径中包含以下
  • 实体框架查询中 string.Trim() 的行为

    我正在尝试将名称列表复制到 SQL Server 表中 我为其设置了实体框架项目 名称列表有重复的值 并且有几个值末尾有空格 我希望只插入表中尚未存在的名称 并删除它们末尾的空格 看起来相当简单 对吧 我的解决方案是这样的 if conte
  • 使用谷歌地图 API v3 相交多边形和折线

    我有一个动态创建的多边形和折线 现在我需要检查它们是否彼此相交 我该如何实现这一目标 谷歌搜索没有提供任何令人满意的结果 谢谢 丹尼尔 您需要迭代第一个多边形 折线的每个线段 并检查它是否与第二个多边形 折线的每个线段相交 如果一个相交 则
  • 交换环境 URL 到底是如何工作的?

    我最近使用交换环境 URL 来升级我的 Elastic Beanstalk 应用程序 使用两个环境 我在映射到 beanstalk URL 的不同 URL 上有一个 CNAME 记录 然后我尝试推送到生产环境 现在位于测试 URL 然后再次
  • Python 3 从网络广播流中获取歌曲名称

    如何从网络广播流中获取歌曲名称 Python 从url获取shoutcast 网络广播电台的名称 https stackoverflow com questions 3110494 python get name of shoutcast