XilinJia/Podcini.A · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈
Podcini.A
一款开源可扩展的媒体乐器,调谐于普契尼
,点缀以帕斯蒂奇尼
,并赋予松露香气
,邀请您和谐的心跳。
约会地点:
截至 2026 年 5 月 29 日,本项目是 Podcini.X 的一个分支,继承了 Podcini.X 的所有功能。
一个重要的里程碑是本项目能够处理由外部应用提供的源。
可用的此类应用有: UT.urn, PeerPop 和 CloudSound
主要特性
- 不仅处理播客,还处理本地媒体以及由外部源提供商提供的任何远程媒体。
- 支持多个自然且循环的播放队列,可与任何订阅源关联。
- 支持音量层级,每个层级可包含子音量和订阅源。
- 提供合成订阅源,并允许媒体单独归档。
- 远程媒体(未订阅)可被保留或播放。
- 允许在线搜索由外部源提供的远程媒体。
- 支持为每个媒体设置标签、待办事项、笔记/评论、5 级评分和 12 级播放状态。
- 提供针对媒体和订阅源的复杂排序、过滤和搜索功能。
- 支持睡眠和自动播放定时器。
- 处理由单个订阅源的策略和限制设置控制的自动下载或自动入队。
- 支持重复媒体的间隔重复:在订阅源中指定的预设间隔处自动下载或自动入队。
- 缓存流式音频以实现无缝的本地回退和重播。
- 能够同时播放 2 个媒体(使用耳机时每只耳朵一个),并具有独立控制。
- 支持对任何媒体进行音频片段录制和位置标记,以便更好地复习。
- 允许链接/关联多个媒体,以便更好地分组。
- 能够在取消订阅时保留重要媒体。
- 突出显示跨设备发送/接收订阅源和订阅目录,无需服务器。
- 为 RSS 内容提供 Readability 和文本转语音功能。
- 支持自动备份、自定义媒体文件夹以及从其他应用导入数据库
注意:
若要在 Android Auto 的汽车 HUD 上显示 Podcini,请阅读 AnroidAuto.md 获取说明。
如果需要投射到外部扬声器或屏幕,应安装 "play" apk,而非 "free" apk,这正是两者之间的区别。
Podcini.A 请求无限制后台活动权限,以实现播放列表的无中断后台播放。 更多详情请参阅 此问题
如果打算通过服务器同步,NextCloud 服务器已经过测试,但请注意仅包含非常有限的属性(由该标准定义)。
警告:您的 Android 设备很快将成为一个封闭平台
用法及主要功能说明
要使用外部服务器应用,您需要先安装这些应用。然后在 Podcini.A -> 设置->网络和存储中,启用 "使用外部应用"。
点击展开
快速入门
- 在全新安装的 Podcini 中,执行以下任一操作即可开始体验 Podcini 的强大功能:
- 从手机左边缘向右滑动以打开抽屉
- 点击“添加订阅源”,在新视图中输入任意关键词以搜索所需的订阅源,参见下文“在线订阅源”部分
- 或者,从抽屉 -> 设置 -> 导入/导出,点击“导入 AntennaPod DB”或“导入 Podcast Addict DB”以导入您从其他应用导出的 DB。
- 或者,从抽屉 -> 设置 -> 导入/导出,点击 OPML 导入以导入包含一组订阅源的 opml 文件
- 或者,打开手机上的任意应用,如果源受外部源提供者支持,选择一个频道/播放列表或单个媒体,并将其共享到 Podcini。
注意,如果您在 Podcini 中已有订阅,从其他应用导入 OPML 文件或 DB 不会清除您在 Podcini 中的现有数据,除非导入的 DB 包含您在 Podcini 中已有的共同订阅源,在这种情况下,导入的数据将覆盖 Podcini 中现有订阅中的那些数据。
订阅源
- 订阅源可以在线订阅,也可以从包含媒体文件的本地目录加载
- 每个订阅源都可以关联一个队列,允许将下载的媒体添加到队列中
- 除了已订阅的订阅源外,还可以创建合成订阅源,其工作方式与已订阅的订阅源相同,但具有额外功能:
- 媒体可以复制/移动到任何合成订阅源
- 来自在线订阅源的媒体可以存入任何合成订阅源,而无需订阅该在线订阅源
- 从外部来源共享的媒体将添加到合成订阅源中
- FeedDetails 屏幕有两个视图:FeedInfo 和 FeedEpisodes,可以通过点击封面图片进行切换
- FeedDetails 屏幕包含 FeedInfo 和 FeedEpisodes 视图
- FeedInfo 视图提供了一个链接,用于直接搜索与作者相关的订阅源
- 在 FeedInfo 视图中,用户可以在“我的评价”下为该订阅源输入个人评论/笔记
- 可以为任何订阅源设置 Trash、Bad、OK、Good、Super 评级
- 在 FeedEpisodes 视图的操作栏上,如果存在关联队列,则可以直接访问该队列
- 可以为任何订阅源设置 Trash、Bad、OK、Good、Super 评级
- 在 FeedEpisodes 视图的操作栏上,可以直接访问队列
- 在 FeedEpisodes 视图中长按筛选按钮,可以在不更改筛选设置的情况下启用/禁用筛选
- 可以在 FeedInfo 和 FeedEpisodes 视图中访问播客设置
- “优先流媒体而非下载”现在是单个订阅源的设置
- 添加了音频类型设置(Speech、Music、Movie),以改进音频处理
- 新增设置,仅对视频源播放音频,
- 该设置的额外好处是,外部媒体仅流式传输音频内容,从而节省带宽。
- 这与在每个媒体上切换到“仅音频”不同,后者也会流式传输视频
- 没有可播放媒体的 RSS 源可以订阅并阅读/收听(通过 TTS)
- 访问 TTS 有两种方式:从 EpisodeHome 视图的操作栏,以及 FeedEspiosdes 视图的列表中
- 前者立即对可用文本播放 TTS,无论媒体是否有可播放媒体,且应用除了播放/暂停外无法控制播放
- 后者仅在媒体为纯 RSS 时可用,不播放任何内容,而是构建一个音频文件(类似下载)作为普通媒体播放,并可在 Podcini 中控制速度/快退/快进
卷
- 卷是一个容器,可以包含任意数量的订阅源和任意数量的子卷
- 它可用于组织相似的订阅源
- 在导入本地订阅源时,可以从本地目录树加载
媒体
- 在各种媒体视图中新增共享笔记菜单选项
- 每个剧集都有新的评分系统:垃圾、差、一般、好、超赞
- 有新的播放状态系统:未指定、构建中、新、未播放、稍后、即将、队列、进行中、重播、永久、跳过、已播放、略过、忽略
- 其中未播放、稍后、即将、队列、重播、永久、跳过、已播放、略过、忽略可由用户设置
- 当剧集开始播放时,其状态设置为进行中
- 当剧集被手动设置为队列时,根据订阅源关联的队列设置添加到队列中
- 当剧集被添加到队列时,其状态设置为队列;当从队列中移除时,状态(如果低于跳过)设置为跳过
- 当剧集设置为重播或稍后时,可以指定到期时间
- 在剧集信息视图中,可以输入个人项目:
- 剧集“我的意见”下的评论/笔记
- 带有备注和计时器到期时间的待办事项
- 标签
- 新的媒体主视图,具有两种显示模式:网页或阅读器
- 在媒体中,除了“描述”外,还有一个新的“文字稿”字段,用于保存从媒体网站获取的文本(如果有)
订阅源列表
- 默认情况下,库页面采用列表布局,对于已订阅的源,可以选择网格布局
- 全新的排序对话框和机制,用于基于标题、日期、时间和数量,并可与其他条件组合的库排序
- 针对源和媒体内容的全新过滤方式,具有扩展的条件。
- 某些多因素条件选项默认隐藏,点击条件以显示选项。
- 在源列表中,点击源的封面图片将打开 FeedInfo/FeedEpisodes
- 针对播客和剧集列表的新颖且高效的点击和长按操作方式:
- 点击标题区域打开播客/剧集
- 长按标题区域自动进入选择模式
- 选择上方或下方所有项的选项与全选一起显示在操作栏中
- 针对所选项目(单个或多个)提示操作选项
- 在剧集列表中,点击剧集图片将显示 FeedInfo 视图
- 向下滑动触发源更新
- 在库视图中,所有源都会更新
- 在 FeedEpisodes 视图中,仅更新单个源
- 本地搜索源或剧集可以分别针对标题、作者(仅限源)、描述(包括剧集中的转录文本)和评论(我的观点)进行指定
剧集列表
- 剧集列表显示在多个界面中:队列(包括回收站)、Facets、FeedEpisodes、OnlineFeed 等。
- 在大多数此类列表中,可以通过按剧集上的操作按钮来播放/流式传输剧集
- 当从队列以外的界面播放/流式传输剧集时,会向虚拟队列添加一个剧集子列表,以便更好地跟踪
- 操作按钮通常会自动生成,但允许在 feed 设置中进行自定义。
- 对于播放或流式传输,支持三种操作:normal(一个播放完时播放下一个)、One(仅播放一个剧集)或 Repeat(重复播放一个剧集)
- 长按任何剧集列表上的操作按钮会显示更多选项
- 一种全新的基于标题、日期、时间和数量的排序对话框和机制,可与其他条件组合使用
- 一种全新的针对播客和剧集的过滤方式,具有扩展的条件。
- 某些多因素条件选项默认隐藏,点击条件以显示选项。
- FeedEpisodes 具有通过更改 feed 的 "Use wide layout" 设置来在列表中显示更大图片的选项
- 媒体视图提供对各种过滤器的便捷访问:
- AllEpisodes、History 和 Download
- New、Planned(用于 Soon 和 Later)、Repeats(用于 Again 和 Forever)、Liked(用于 Good 和 Super)
- 媒体列表显示在媒体视图、FeedEpisodes 和 OnlineEpisodes 中
- 媒体列表显示在 Facets、FeedEpisodes 和 OnlineEpisodes 视图中
- 在信息流和媒体列表中,新增高效点击和长按操作方式:
- 点击标题区域打开信息流/媒体
- 长按标题区域自动进入选择模式
- 操作栏中显示全选上方或下方选项,与全选并列
- 针对所选项目(单个或多个)提示操作选项
- 在媒体列表中,点击媒体图像会弹出 FeedInfo 视图
- 媒体列表支持滑动操作
- 列表的左右滑动操作现在具有指示器,并可就地配置
- 滑动操作可用于执行多选菜单中的任何操作,并包含组合滑动操作
- 可通过滑动操作设置在未来指定时间播放剧集
- 向下滑动触发信息流更新
- 在订阅视图中,所有信息流均被更新
- 在 FeedEpisodes 视图中,仅更新单个信息流
- 在媒体列表视图中,如果媒体没有媒体文件,则显示 TTS 按钮,用于获取转录文本(如果不存在)并随后从转录文本生成音频文件。TTS 音频文件可像本地媒体一样播放(支持速度设置、暂停和快退/快进)
- 长按任何媒体列表右侧的操作按钮会弹出更多选项
- 删除和更新信息流操作即时执行
- 信息流或媒体的本地搜索可分别针对标题、作者(仅限信息流)、描述(媒体中包含转录文本)和评论(我的观点)进行指定
队列
- 可使用多个队列:默认提供 5 个队列,用户可重命名或添加至多 10 个队列
- 应用启动时,最近更新的队列将被设为活动队列
- 任何媒体均可轻松添加/移动至活动队列或任何指定队列
- 任何队列均可与任何 feed 关联,以提供自定义的播放体验
- 每个队列都是循环的:如果队列中的最后一项播放完毕,队列中的第一项(如果存在)将被播放
- 每个队列都有一个回收站(可从 Queues 视图的顶栏访问),其中包含从队列中移除的过往媒体,便于进一步审查和处理
- 与 feed 关联的队列可设置为 None,在这种情况下:
- feed 中的媒体不会自动添加到任何队列,而是 FeedEpisodes 视图自身形成一个自然队列
- 在 FeedEpisodes 视图中播放媒体时,下一个要播放的媒体按以下方式确定:
- 如果当前播放的媒体已被(手动)添加到活动队列,则为队列中的下一项
- 否则,如果设置了“优先流媒体”,则为基于当前筛选和排序顺序的自然队列中下一个未播放(或 Again 和 Forever)的媒体
- 否则,为下一个已下载的未播放(或 Again 和 Forever)媒体
- Queues 视图的顶栏上有一个按钮,用于显示关联的 feeds
- 否则,从队列以外的列表播放的媒体为一次性播放,除非该媒体位于活动队列中,在这种情况下,将播放队列中的下一个媒体
玩家
- 在所有页面上显示更便捷的玩家控制
- 玩家 UI(按钮行)可水平滑动:向左滑动将播放器隐藏到抽屉中(点击抽屉底部的预览图片以恢复),向右滑动调出睡眠定时器对话框
- 玩家 UI 中的封面图片
- 点击打开剧集的详细信息以及用户设置的项
- 长按打开 Feed 详情
- 播放速度设置已整理,三种速度可单独或组合设置:当前音频、播客和全局
- 更新播放进度有两种机制(可在设置中配置):每 5 秒一次,或自适应地按媒体时长的 2% 间隔进行
- 在播放器详细视图中添加了音量自适应控制,用于设置当前媒体,其优先级高于 Feed 设置中的设置
- 速度表显示当前播放速度,
- 点击时,显示一个可设置各种属性的对话框 长按时,显示音量自适应设置
- 点击“记录”按钮开始/结束录音,长按记录时间戳标记,两者均可从播放详细视图中访问
- 在设置的“播放”下添加了“快进速度”和“快退速度”偏好设置,默认值为 0.0,对话框允许设置 0.0 到 10.0 之间的数值
- “回退”按钮点击时按可自定义的秒数回退,长按时重新开始当前媒体
- 前进按钮在轻按时按可自定义的秒数进行快进
- 长按时,如果用户将“快速跳过速度”自定义为大于 0.1 的值
- 以设定的速度播放,
- 再次长按恢复正常的播放速度
- 播放器上的“跳过”按钮
- 长按跳转到下一个媒体
- 默认情况下,轻按无操作
- 如果用户将“快速前进速度”自定义为大于 0.1 的值,其行为如下:
- 播放期间轻按,使用设定的速度播放当前音频
- 再次轻按,恢复原始播放速度
- 非播放期间轻按无效果
- 长按时,如果用户将“快速跳过速度”自定义为大于 0.1 的值
- 在设置的“播放”下新增偏好设置“回退速度”,默认值为 0.0,对话框允许设置一个浮点数(限制在 0.0 到 1.5 之间)
- 如果用户将“回退速度”自定义为大于 0.1 的值,在播放期间长按播放按钮进入回退模式并以设定的回退速度播放,轻按退出回退模式
- 流媒体大致等同于已下载的媒体
- 存在流媒体缓存,因此,对流媒体的快退/快进通常直接从缓存中操作
- 在播放器详细视图中启用媒体描述
- 启用片头跳过和片尾跳过
- 播放完成时标记为已播放
- 流媒体被添加到队列中,并在重启后恢复
- 视频播放有三种模式:全屏、窗口和仅音频,它们可以在视频播放器中无缝切换
- 当应用不可见或在应用内切换到其他视图时,视频播放器会自动切换为音频模式。
- 当视频模式设置为仅音频时,在视频媒体的音频播放器上点击图像会打开常规播放器的详细视图
- 媒体播放至总时长的 95% 即被视为完全播放
在线源
- 任何在线搜索(通过“添加源”)都会显示与搜索关键词相关的在线源列表
- 网页地址可作为搜索词
- 在在线源列表中长按某个源会提示直接订阅该源。
- 点击某个源会打开在线源视图,以查看该源的信息或媒体,并可选择订阅该源
- 在线源信息的显示方式与任何本地源类似,并提供订阅或查看媒体的选项
- 在线源媒体可自由播放(流式传输),无需订阅
- 在线源媒体可选择性地保留到合成源中,而无需订阅该源
外部来源
- 频道(如适用)可在播客搜索视图中搜索,也可从其他应用共享到 Podcini
- 频道可作为常规订阅源进行订阅
- 订阅频道时,可选择标签以形成独立的订阅源
- 播放列表和播客音乐可共享到 Podcini,然后可以像频道一样进行订阅
- 已订阅的频道、播放列表/播客可以像常规订阅源一样更新
- 单个媒体也可从其他应用共享,并添加到所选的合成订阅源中
- 所有媒体均可播放(仅流媒体),支持全屏或窗口模式下的视频,或后台纯音频模式
- 订阅源偏好设置中的音频和视频质量设置(如适用):全局、低、中、高
- 这些设置在特定情况下优先于全局设置
- 当设置为全局时,视频为最低质量,音频为最高质量(除非为计量网络设置了 prefLowQualityMedia)
- 如果订阅设置为“仅音频”,则在播放时,该订阅中的每个媒体仅获取音频流
即时(或 Wi-Fi)同步
- 能够在同一 Wi-Fi 网络上的设备之间进行同步,无需服务器(实验性功能)
- 它同步存在于两台设备中的媒体(请确保先刷新)且已播放(无论是否完成)的播放状态(位置和已播放)
- 目前,每次同步都是全量同步,不针对订阅和媒体文件进行同步
自动化
- 自动刷新(源更新)可以设置为以小时为单位的间隔。除非单独设置,否则开始时间为“现在”
- 请注意,这些时间不保证精确。Android 系统有控制它们的兴趣。
- 自动下载算法基于各个源的设置。
- 当在全局设置中启用自动下载时,默认情况下,队列中所有未下载的媒体都是下载候选项
- 是否包含哪些队列在自动下载中可以在设置中配置
- 自动下载在源刷新后运行,无论是计划任务还是手动触发
- 任何源中的媒体自动下载需要在源设置中单独启用。
- 每个源都有自己已下载媒体数量的限制(媒体缓存),此限制与应用程序的全局限制共同生效。
- 每个源可以有自己的下载策略
- 仅新内容:仅在刷新时,新条目是下载候选项。
- 如果没有替换,如果旧的已下载条目(满足允许的缓存)尚未播放,则不会下载新条目。
- 如果有替换,新条目将替换旧的已下载条目
- 最新:下载最新的条目(不一定是新的)
- 最旧:下载最旧的条目
- 标记为即将发布:仅下载标记为即将发布的条目(按发布日期降序排列)
- 当前筛选和排序:要下载的条目取决于在 FeedDetailed 界面中设置的当前筛选和排序标准
- 仅新内容:仅在刷新时,新条目是下载候选项。
- 当在全局设置中启用自动下载时,默认情况下,队列中所有未下载的媒体都是下载候选项
- 当前的筛选和排序条件会被复制,因此一旦设置,后续更改不会影响自动下载行为
- 标记为 Soon 的项可以单独启用,一旦启用,将优先于常规策略
- 自动下载运行后,订阅源中状态为 New 的媒体将更改为 Unplayed。
- 在自动下载订阅源设置中,可以设置包含和排除过滤器(如需要)
- 现在包含和排除过滤器有独立的对话框,可以独立指定过滤标记
- 在排除对话框中,有可选复选框“排除时长短于”和“将排除的媒体标记为已播放”
- 自动入队算法基于各个订阅源中的设置。
- 自动入队在订阅源刷新后运行,无论是计划任务还是手动触发
- 任何订阅源中的剧集自动入队都需要在订阅源设置中单独启用。
- 每个订阅源都有自己的入队剧集数量限制(Episode cache),此限制与应用程序的全局限制共同生效。
- 每个订阅源可以有自己的入队策略
- Only new:仅刷新时的新项是入队候选项。
- 如果没有 Replace,如果旧的已入队项(满足允许的缓存)尚未播放,则不会入队新项。
- 如果有 Replace,新项将替换旧的已入队项
- Newest:入队最新的项(不一定是新的)
- Oldest:入队最旧的项
- Only new:仅刷新时的新项是入队候选项。
- 当前筛选和排序:待入队的条目取决于在 FeedDetails 界面中设置的当前筛选和排序条件
* 当前的筛选和排序条件会被复制,因此一旦设置,后续更改不会影响自动入队行为
- 标记为 Soon 的条目可以单独启用,且一旦启用,其优先级高于常规策略
- 自动入队运行后,订阅源中状态为 New 的剧集将更改为 Unplayed。
- 在自动入队订阅源设置中,可以设置包含和排除筛选器(如需要)
- 现在包含和排除筛选器有独立的对话框,可以独立指定筛选标记
- 在排除对话框中,有可选复选框“排除时长短于”和“将排除的剧集标记为已播放”
- 睡眠定时器有一个新选项“到媒体结束”
统计
- 统计功能会汇总在指定时间段内以及今天已播放的媒体
- 关于播放时间有 2 个数值:时长和花费时间
- 花费时间即播放媒体所花费的时间,因此播放速度、快退和快进可能会产生影响
- 时长在 2 种设置下显示不同:“包含标记为已播放”或“不包含”
- 在前者情况下,它是曾经开始播放过的媒体的完整时长
- 在后者情况下,它是媒体中达到的最大位置
安全性和可靠性
- 已禁用
usesCleartextTraffic,以使所有内容传输更加私密和安全 - 存在三组日志:已下载的媒体、共享到 Podcini 的内容,以及从 Podcini 移除的内容(无论是信息流还是合成信息流中的单个媒体)
- 在导入/导出设置中,新增了一个组合导入/导出
- 它处理偏好设置、数据库和媒体文件,可组合或选择性处理
- 所有内容均保存到您所选目录下的 "Podcini-Backups-(date)" 目录中
- 在导入时,媒体文件必须在数据库导入完成后进行(当选择导入数据库时,该选项被禁用)
- 偏好设置、数据库和媒体文件的单独导入/导出功能已被移除
- 如果需要导入之前导出的偏好设置、数据库或媒体文件,
- 手动创建一个名为 "Podcini-Backups" 的目录
- 将之前的 .realm 文件复制到上述目录中
- 将之前的目录 "Podcini-Prefs" 和/或 "Podcini-MediaFiles" 复制到上述目录中
- 无需复制全部三个,只需复制您需要的部分
- 然后执行组合导入
- 在设置->导入/导出中有一个选项可以开启自动备份
- 如果开启,需要指定间隔(以小时为单位)、文件夹以及保留的副本数量
- 然后偏好设置和数据库将被备份到名为 "Podcini-AudoBackups-(date)" 的子文件夹中
- 备份时间是在上次备份时间经过间隔小时后,Podcini 下次恢复时进行
- 要恢复,请使用组合恢复
- 已下载媒体的文件夹可自定义
- 自定义文件夹的使用可更改或重置
- SD 卡中的文件夹也应可用(请有人测试一下)
- 更改后,已下载的媒体文件将从旧文件夹移至新文件夹
- 导出和核对功能在自定义文件夹中也应正常工作
- 播放历史/进度可单独作为 Json 文件导出/导入(在从使用不同 DB 的 Podcini 5 迁移时曾需要此功能。现在似乎导出/导入 DB 并未带来多少好处)。
- 新增核对功能(从媒体视图中的“下载”访问),以确保已下载的媒体文件与 DB 中的规格同步
- 可从“库”视图中选择性导出订阅源
- 有一个设置项用于禁用/启用 OPML 文件到 Google 的自动备份
- 重新安装 Podcini 后,之前备份到 Google 的 OPML 文件不会自动导入,而是基于用户确认。
有关更改的更多详细信息,请参阅 Changelog
截图
设置


库
![]()

信息流


订阅源设置

媒体列表、队列和快速访问


媒体和播放器详情

双播放器
Youtube 分享和媒体

使用自定义

在线获取信息源

Android Auto

链接
许可证
Podcini 与其 fork 来源的项目一样,采用 GNU 通用公共许可证 (GPL-3.0) 授权。 您可以在 LICENSE 文件中找到许可证文本。
版权
项目中的新文件和内容由 Xilin Jia 及相关贡献者于 2024 年版权所有。
来自 fork 项目的原始内容保留原始开发者的版权。

