A powerful, headless, web-first DLNA media control center and local player.
Project description
📸 界面展示
| 使用模式:纯 Web 操控与追剧进度记忆 | 设置模式:设备扫描与连播全局设置 |
| 沙盒媒体资源网:直读本地及 WebDAV 挂载库 | 捷径控制中心:跨源流媒体即点即播 |
📖 简介
Dollop Cast 是一个现代化的私有影音流媒体投屏控制中心。它专为希望在多端无缝衔接观影记录的用户设计。不论是直接在网页端自建的本地播放器中观看,还是将流媒体/本地媒体推送到支持 DLNA/UPnP 的大屏智能电视上,Dollop Cast 都会智能记录播放历史并自动推进播放进度。
它采用标准化的 Python Package 后端架构结合纯 Web 渐进式前端面板(无需安装任何 GUI 客户端),可完美部署在 NAS、Raspberry Pi 或云端服务器中作为常驻自启服务。
✨ 核心特性
- 🕸️ Headless 纯 Web 管理面板:告别累赘的系统托盘。所有设置、播放记录、快捷收藏、甚至本地文件的选择都能在手机或另一台电脑浏览器中打开精美的 Web 控制台完成。
- 📺 双端无缝同步播放:面板左下角提供“设备投放”和“本地网页自播”一件切换!在网页上看了半集,切换到 DLNA 模式点击推送到大屏电视,播放进度无缝衔接。
- 🤖 连播与智能“跳过片头和片尾”:
- 动态跳过配置:直接在 Web 的高级设置内输入“跳过片头秒数”和“跳过片尾秒数”。
- 文件夹推流时,只要播放到了接近片尾的时间点,Dollop Cast 会立即为你无视等待、直接计算并推送下一集。
- 新点开的视频将自动从你设置的“跳过片头秒数(如 20s)”定位切入点开始播放。
- 🛡️ 内建流媒体代理:内置流媒体代理机制突破防盗链限制,针对复杂外部在线源也可稳定缓冲切割。
- 📦 现代化部署标准:项目采用标准的
pyproject.toml构建,配置与缓存分离到独立的data/目录。
💡 高阶玩法推荐:配合 OpenWrt 与 AList 您可以在 OpenWrt 等软路由或软服务设备上运行 Dollop Cast,配合 AList 将网盘资源(如阿里云盘、百度网盘、115网盘等)通过 WebDAV 挂载到了本地路径。然后在 Dollop Cast 的网页端将该挂载目录设为“媒体根目录”。这样无需下载,即可在 Web 面板上轻松浏览云盘资源,一键推送至大屏电视观影,实现超轻量级的聚合影视中心拓扑!
🛠️ 安装指南
确保您的系统已安装 Python 3.8+。建议使用虚拟环境(venv)。
您可以通过 PyPI 直接安装该项目:
pip install dollop-cast
此命令将自动下载所有依赖并注册 dollop-cast 全局执行命令。
🚀 快速上手
1. 启动中心后端
安装完成后,在终端中随时随地输入短命令即可唤起中心服务器:
dollop-cast
你将看到类似如下输出:
=======================================
📺 Dollop Cast 影音控制中心已启动
🔗 管理地址: http://192.168.1.85:5000
=======================================
2. 访问 Web 控制台
在同一局域网下的手机或电脑浏览器中打开 http://<你的服务器IP>:5000。
- 模式切换:点击右上角⚙️图标进入设置,扫描 DLNA 电视设备。
- 媒体根目录设定:配置你在本机存有视频的根目录,随后系统即可生成可视化的前端文件浏览器,一键推流播放!
- 跳跃设定:设置你理想的自动越过片头/片尾秒数门槛。
3. 浏览器插件联动 (可选)
使用本项目的配套 Chromium/Edge 扩展,可直接提取并在电视上播放任意含优酷、B站等防盗链流媒体的外部网站视频:
- 在浏览器开启“开发者模式”扩展功能 (
chrome://extensions); - 选择“加载已解压的扩展程序”,指引并加载本项目下的
browser_extension/文件夹; - 打开视频页面,点击插件图标即可一键投流至 Dollop Cast 后端!
📁 核心目录结构
Dollop-Cast/
├── pyproject.toml # 现代打包与依赖的核心配置文件(Hatchling)
├── README.md # 本文档
├── LICENSE # CC BY-NC-SA 4.0 开源授权协议
├── data/ # (运行时自动生成) 存放配置、快捷方式、历史播放进度
├── src/
│ └── dollop_cast/ # Python 包源码
│ ├── __init__.py
│ ├── main.py # HTTP 后端、DLNA 抓包控制与 Jinja2 HTML 界面分发
│ └── stream_proxy.py # 智能媒体代理层 (防盗链注入, 大文件 Range 支持)
└── browser_extension/ # 🚀 浏览器端流媒体嗅探与一键推流插件
版权所有 © 2026 Dollop Cast
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dollop_cast-0.1.1.tar.gz.
File metadata
- Download URL: dollop_cast-0.1.1.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eef89f6161e877a7d7b9309c3b05263b8f867708d5db25c2c44f50e6959aca4c
|
|
| MD5 |
b2ee4d34c7de7b7b32429c4bf84e07c6
|
|
| BLAKE2b-256 |
7534567b85ce02db45d2262e8f212755b116edd843dafb7d3c0b995a18ca88ce
|
Provenance
The following attestation bundles were made for dollop_cast-0.1.1.tar.gz:
Publisher:
python-publish.yml on kyle-meng/Dollop-Cast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dollop_cast-0.1.1.tar.gz -
Subject digest:
eef89f6161e877a7d7b9309c3b05263b8f867708d5db25c2c44f50e6959aca4c - Sigstore transparency entry: 1357202483
- Sigstore integration time:
-
Permalink:
kyle-meng/Dollop-Cast@ec78f1dd53310878a25f27054b7d17edbb99abf4 -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/kyle-meng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ec78f1dd53310878a25f27054b7d17edbb99abf4 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dollop_cast-0.1.1-py3-none-any.whl.
File metadata
- Download URL: dollop_cast-0.1.1-py3-none-any.whl
- Upload date:
- Size: 27.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0de249a801f5a8a39a81a0b54df9b03237d98a036a1b1ece2873dc8baf879e71
|
|
| MD5 |
149eee9852d11739d248730f3e966708
|
|
| BLAKE2b-256 |
73d82f2d0466b47402b87c8bca8bbc8112860a822feda7954a1f08c3322df53e
|
Provenance
The following attestation bundles were made for dollop_cast-0.1.1-py3-none-any.whl:
Publisher:
python-publish.yml on kyle-meng/Dollop-Cast
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dollop_cast-0.1.1-py3-none-any.whl -
Subject digest:
0de249a801f5a8a39a81a0b54df9b03237d98a036a1b1ece2873dc8baf879e71 - Sigstore transparency entry: 1357202510
- Sigstore integration time:
-
Permalink:
kyle-meng/Dollop-Cast@ec78f1dd53310878a25f27054b7d17edbb99abf4 -
Branch / Tag:
refs/tags/0.1.1 - Owner: https://github.com/kyle-meng
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@ec78f1dd53310878a25f27054b7d17edbb99abf4 -
Trigger Event:
release
-
Statement type: