社区 对比功能截图指南LivedioLivedio播客价格CarPlay 电台iPhone 电台Mac 电台iPad 电台Apple TV 电台Apple Watch 电台支持隐私透明度辅助功能提交电台电台媒体资料包在 App Store 下载

透明度

Macdio 是怎么做出来的。

Macdio 是一个人的项目。这里坦白地讲讲这个应用怎么工作、接触哪些数据,以及做它都投入了什么。

谁在做 Macdio

Macdio 是 Sait Firat NEMIS 一个人开发的项目。背后没有公司,没有团队,也没有投资人。只有一个人,在做一个他觉得 App Store 上缺少的电台应用。

六个平台上的 SwiftUI 代码、网站、App Store 页面和支持邮箱都由我负责。如果你写信到 support@devdio.pro,收信的就是我本人。

它是怎么做的

Macdio 百分之百是原生 Swift 和 SwiftUI。没有 Electron,没有 React Native,也没有网页视图。每一个界面都专门为它运行的平台编写:iPhone、iPad、Mac、Apple TV、Apple Watch 和 CarPlay。

和 2026 年的大多数开发者一样,我在工作中会用现代的 AI 辅助工具,用来探索边界情况、验证想法的原型,以及排查棘手的 bug。但核心架构、设计决策、性能调优和最终发布的代码,都来自认真的研究和亲手的反复打磨。我在意把细节做对,这意味着要理解技术栈的每一层,而不是接受工具生成的任何东西。

数据来源和 API

Macdio 自己不维护电台目录。电台列表来自公共社区数据库 Radio Browser,只有在 Radio Browser 没有响应时,才会使用 Macdio 自己的副本(dir.macdio.app)。正在播放的元数据和歌词来自公共 API。下面是这个应用会联系的服务:

Radio Browser

社区维护的网络电台数据库。提供电台元数据、流地址、国家信息和类型标签。几万个电台的目录就是从这里来的。

radio-browser.info ↗

iTunes Search API

Apple 的公共搜索 API,根据电台广播的曲目元数据获取专辑封面、发行年份和专辑名,用来丰富正在播放的信息。

iTunes Search API ↗

LRCLIB

开源、免费的歌词 API。为正在播放的歌曲提供同步(LRC 格式)歌词和纯文本歌词。不需要 API 密钥,没有追踪。

lrclib.net ↗

Podcast Index

开放、独立的播客索引,收录 470 万个播客。播客搜索、榜单和分类都靠它。剧集和订阅源随后直接从每个节目自己的服务器下载。

podcastindex.org ↗

Apple ShazamKit

Apple 的歌曲识别。Song ID 发送的是流的一段简短音频签名,从不发送录音,也从不使用麦克风,换回歌曲、歌手和封面。

ShazamKit ↗

push.macdio.app

Macdio 自己的新剧集通知服务器。只有在你开启通知时,它才会收到设备的通知地址和你关注的节目,除此之外什么都不收。

隐私政策

依赖

Macdio 的依赖极少。应用本身没有使用任何第三方 Swift 包,完全用 Apple 自己的框架打造(SwiftUI、SwiftData、AVFoundation、CloudKit、MediaPlayer)。

这个网站同样精简。它不加载网页字体,也没有 3D 库。文字使用你的 Apple 设备上已有的系统字体,所有动画都是普通的 CSS 和 JavaScript。用到的外部服务有:

名称用途类型
Umami 不用 Cookie 的访问计数,约 15% 的访问还会有会话录制和点击热力图,运行在开发者自己的服务器 stats.devdio.pro 上(仅限网站) 网站
Radio Browser 目录页面的电台数据,由你的浏览器直接查询(仅限网站) 网站
dir.macdio.app Macdio 自己的 Radio Browser 目录副本。目录页面只在 Radio Browser 没有响应时才会向它查询。它不保存 IP 地址。 网站
hub.devdio.pro Macdio 自己的社区论坛。标志上的“新”标记会向本站自己的服务器询问最新的三条更新说明;你的浏览器从不直接联系论坛,唯一保存的是你看过的最后一个帖子的 id,存在你浏览器的本地存储里。 网站
电台标志服务器 在目录页面上,每个电台的标志都从该电台自己的服务器加载,所以这些服务器能看到你的 IP 地址。请求不带来源信息(referrer),加载失败的标志会换成一个本地图标。没有任何内容通过本站代理。 网站

更新记录

Macdio 完整的版本历史和更新说明可以在 App Store 页面上查看。每次更新都写明了具体改了什么。