A podcast server that includes YouTube and BiliBili
Project description
Podflow
建立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-20250705.1.tar.gz
(117.3 kB
view details)
Built Distribution
podflow-20250705.1-py3-none-any.whl
(150.6 kB
view details)
File details
Details for the file podflow-20250705.1.tar.gz
.
File metadata
- Download URL: podflow-20250705.1.tar.gz
- Upload date:
- Size: 117.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
96c1d4bcefe6b4e013b01f53aaf05a6ebe465027472aca2060616c1b450bec22
|
|
MD5 |
ee0ac92cfeca52ac6f21c3dac4b4f548
|
|
BLAKE2b-256 |
405ec487abed3978d370a6c4dad75101fc595243b38132b5a15a9b34981c1a6b
|
File details
Details for the file podflow-20250705.1-py3-none-any.whl
.
File metadata
- Download URL: podflow-20250705.1-py3-none-any.whl
- Upload date:
- Size: 150.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
8ec3eaebc3dc4ece24090a035f5137ae25cf1e8bfc60b5f2bf65ef00fd488b6c
|
|
MD5 |
8dce28ea2899b676457c79441b9183f7
|
|
BLAKE2b-256 |
fa7fbcf7621abe9b113eea13a77bb26f86ba33f481e27f886d4ae55b4a00bae1
|