Skip to main content

A podcast server that includes YouTube and BiliBili

Project description

Podflow

logo

建立Podcast服务器,用于下载YouTube和哔哩哔哩的音视频并导入到Podcast中。

需要新建配置文件, 或通过首次运行后自动生成

YouTube的cookies需要使用chrome插件导出Netscape格式并保存到channel_data文件夹中

图形界面请访问 /index

PS:可能存在大量未知bug,改进中并尝试加入抖音……

安装方法

需要Python 3.8以上环境,并安装ffmpeg (安装方法: https://ffmpeg.org/)。

Podflow可以使用以下命令进行安装

pip install Podflow

在iOS上可以使用Shortcuts运行Podflow, 需要用到a-Shell(或a-Shell mini)和捷径脚本

命令行参数说明

参数 选项 类型 默认值 描述
-n --times int +∞ 次数
-d --delay int 1500 延迟(单位: 秒)
-c --config string "config.json" 配置文件的路径
--shortcuts string [] 仅适用于捷径APP
--index boolean 仅适用于捷径APP
--httpfs boolean 仅启用服务器功能, 不更新频道
--upload boolean 仅上传服务器功能, 仅用于局域网备份(适用iOS)

使用示例

你可以使用以下命令行格式来运行程序:

Podflow -n 24 -d 3600

主配置

参数 类型 默认值 描述
channelid_youtube dict {...} 可以按YouTube频道配置编写, 也可以按{"youtube": "UCBR8-60-B28hp2BmDPdntcQ"}编写, 其他参数会按默认值自动补全
channelid_bilibili dict {...} 可以按哔哩哔哩频道配置编写, 也可以按{"哔哩哔哩弹幕网": "8047632"}编写, 其他参数会按默认值自动补全
preparation_per_count int 100 获取媒体信息每组数量
completion_count int 100 媒体缺失时最大补全数量
retry_count int 5 媒体下载重试次数
url string "http://127.0.0.1" HTTP共享地址
port int 8000 HTTP共享端口
port_in_url boolean true HTTP共享地址是否包含端口
httpfs boolean false HTTP共享日志
title string "Podflow" 博客的名称
filename string "Podflow" 主XML的文件名称
link string "https://github.com/gruel-zxz/podflow" 博客主页
description string "在iOS平台上借助workflow和a-shell搭建专属的播客服务器。" 博客信息
icon string "https://raw.githubusercontent.com/gruel-zxz/podflow/main/Podflow.png" 博客图标
category string "TV & Film" 博客类型
token string "" token认证, 如为null或""将不启用token
delete_incompletement boolean false 是否删除下载中断媒体(下载前处理流程)
remove_media boolean true 是否删除无用的媒体文件

YouTube频道配置

参数 类型 默认值 描述
id string "UCBR8-60-B28hp2BmDPdntcQ" 频道ID
title string "YouTube" 频道名称
update_size int 15 每次获取频道媒体数量
quality string "480" 媒体分辨率(仅在media为视频时有效)
last_size int 50 媒体保留数量
media string "m4a" 下载媒体类型
DisplayRSSaddress boolean false 是否在Print中显示子博客地址
InmainRSS boolean true 是否在主博客中
QRcode boolean false 是否显示子博客地址二维码(仅在DisplayRSSaddress为True时有效)
BackwardUpdate boolean false 是否向后更新
BackwardUpdate_size int 3 向后更新数量(仅在BackwardUpdate为True时有效)
want_retry_count int 8 媒体获取失败后多少次后重试
NoShorts boolean false 是否不下载Shorts媒体
title_change list [] 标题文本修改规则

哔哩哔哩频道配置

参数 类型 默认值 描述
id string "8047632" 频道ID
title string "哔哩哔哩弹幕网" 频道名称
update_size int 25 每次获取频道媒体数量
quality string "480" 媒体分辨率(仅在media为视频时有效)
last_size int 100 媒体保留数量
media string "m4a" 下载媒体类型
DisplayRSSaddress boolean false 是否在Print中显示子博客地址
InmainRSS boolean true 是否在主博客中
QRcode boolean false 是否显示子博客地址二维码(仅在DisplayRSSaddress为True时有效)
BackwardUpdate boolean false 是否向后更新
BackwardUpdate_size int 3 向后更新数量(仅在BackwardUpdate为True时有效)
want_retry_count int 8 媒体获取失败后多少次后重试
AllPartGet boolean false 是否提前获取分P或互动视频
title_change dict {} 标题文本修改规则

配置文件参考

{
    "preparation_per_count": 100,
    "completion_count": 100,
    "retry_count": 5,
    "url": "http://127.0.0.1",
    "port": 8000,
    "port_in_url": true,
    "httpfs": false,
    "title": "Podflow",
    "filename": "Podflow",
    "link": "https://github.com/gruel-zxz/podflow",
    "description": "在iOS平台上借助workflow和a-shell搭建专属的播客服务器。",
    "icon": "https://raw.githubusercontent.com/gruel-zxz/podflow/main/Podflow.png",
    "category": "TV & Film",
    "token": "",
    "delete_incompletement": false,
    "remove_media": true,
    "channelid_youtube": {
        "youtube": {
            "update_size": 15,
            "id": "UCBR8-60-B28hp2BmDPdntcQ",
            "title": "YouTube",
            "quality": "480",
            "last_size": 50,
            "media": "m4a",
            "DisplayRSSaddress": false,
            "InmainRSS": true,
            "QRcode": false,
            "BackwardUpdate": false,
            "BackwardUpdate_size": 3,
            "want_retry_count": 8,
            "title_change": [
                {
                    "mode": "add-left",
                    "match": "",
                    "url": "https://www.youtube.com/playlist?list=...",
                    "text": ""
                },
                {
                    "mode": "add-right",
                    "match": "",
                    "url": "",
                    "text": ""
                }
            ],
            "NoShorts": false
        }
    },
    "channelid_bilibili": {
        "哔哩哔哩弹幕网": {
            "update_size": 25,
            "id": "8047632",
            "title": "哔哩哔哩弹幕网",
            "quality": "480",
            "last_size": 100,
            "media": "m4a",
            "DisplayRSSaddress": false,
            "InmainRSS": true,
            "QRcode": false,
            "BackwardUpdate": false,
            "BackwardUpdate_size": 3,
            "want_retry_count": 8,
            "title_change": {
                "mode": "replace",
                "match": "",
                "text": ""
            },
            "AllPartGet": false
        }
    }
}

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podflow-20260106.tar.gz (123.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

podflow-20260106-py3-none-any.whl (159.0 kB view details)

Uploaded Python 3

File details

Details for the file podflow-20260106.tar.gz.

File metadata

  • Download URL: podflow-20260106.tar.gz
  • Upload date:
  • Size: 123.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for podflow-20260106.tar.gz
Algorithm Hash digest
SHA256 104dd8660d29a9171249ff2061c7e7f427cfb124d07eb52c948574aeea25f055
MD5 8aaa8b3c6dc326d5ea5c1e31a0992672
BLAKE2b-256 5446dfce258770eb42a5f132f0e572aad3ad4cfde3fc6ce983da659e9aa3404e

See more details on using hashes here.

File details

Details for the file podflow-20260106-py3-none-any.whl.

File metadata

  • Download URL: podflow-20260106-py3-none-any.whl
  • Upload date:
  • Size: 159.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.18

File hashes

Hashes for podflow-20260106-py3-none-any.whl
Algorithm Hash digest
SHA256 8f8cd3ff12e3e26127e661c064172c04cea2c514b8c28cf795b6fbdd917e08e3
MD5 e0f91d4e66b76b4c348983deb314ecbb
BLAKE2b-256 6ba948c99becf30f3f6439f14d278f355d881d8b927bd1ae2c5a1f9a91c77783

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page