Metadata-Version: 2.4
Name: dollop-cast
Version: 0.1.1
Summary: A powerful, headless, web-first DLNA media control center and local player.
Project-URL: Homepage, https://github.com/kyle-meng/Dollop-Cast
License-Expression: CC-BY-NC-SA-4.0
License-File: LICENSE
Requires-Python: >=3.8
Requires-Dist: flask-cors>=3.0.10
Requires-Dist: flask>=2.0.0
Requires-Dist: requests>=2.25.0
Requires-Dist: waitress>=2.1.2
Description-Content-Type: text/markdown

<div align="center">
  <h1>📺 Dollop Cast</h1>
  <p><strong>一个轻量级、无头(Headless)的自动续播局域网流媒体控制中心</strong></p>
  
  [![Python](https://img.shields.io/badge/Python-3.8+-blue.svg)](https://www.python.org/)
  [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg)](LICENSE)
  [![GitHub Repo](https://img.shields.io/badge/GitHub-Repository-black.svg?logo=github)](https://github.com/kyle-meng/Dollop-Cast)
</div>

<hr/>

## 📸 界面展示

|<img src="https://raw.githubusercontent.com/kyle-meng/Dollop-Cast/main/img/使用模式界面.png" width="400" />|<img src="https://raw.githubusercontent.com/kyle-meng/Dollop-Cast/main/img/设置模式-设备选择-系统设置.png" width="400" />|
|:---:|:---:|
|**使用模式：纯 Web 操控与追剧进度记忆**|**设置模式：设备扫描与连播全局设置**|
|<img src="https://raw.githubusercontent.com/kyle-meng/Dollop-Cast/main/img/设置模式-媒体目录.png" width="400" />|<img src="https://raw.githubusercontent.com/kyle-meng/Dollop-Cast/main/img/设置模式-添加快捷设置.png" width="400" />|
|**沙盒媒体资源网：直读本地及 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+](https://www.python.org/)。建议使用虚拟环境（venv）。

您可以通过 PyPI 直接安装该项目：

```bash
pip install dollop-cast
```

*此命令将自动下载所有依赖并注册 `dollop-cast` 全局执行命令。*

---

## 🚀 快速上手

### 1. 启动中心后端

安装完成后，在终端中随时随地输入短命令即可唤起中心服务器：

```bash
dollop-cast
```

你将看到类似如下输出：
```text
=======================================
📺 Dollop Cast 影音控制中心已启动
🔗 管理地址: http://192.168.1.85:5000
=======================================
```

### 2. 访问 Web 控制台
在同一局域网下的手机或电脑浏览器中打开 `http://<你的服务器IP>:5000`。
- **模式切换**：点击右上角⚙️图标进入设置，扫描 DLNA 电视设备。
- **媒体根目录设定**：配置你在本机存有视频的根目录，随后系统即可生成可视化的前端文件浏览器，一键推流播放！
- **跳跃设定**：设置你理想的自动越过片头/片尾秒数门槛。

### 3. 浏览器插件联动 (可选)
使用本项目的配套 Chromium/Edge 扩展，可直接提取并在电视上播放任意含优酷、B站等防盗链流媒体的外部网站视频：
1. 在浏览器开启“开发者模式”扩展功能 (`chrome://extensions`)；
2. 选择“加载已解压的扩展程序”，指引并加载本项目下的 `browser_extension/` 文件夹；
3. 打开视频页面，点击插件图标即可一键投流至 Dollop Cast 后端！

---

## 📁 核心目录结构

```text
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/       # 🚀 浏览器端流媒体嗅探与一键推流插件
```

---

<div align="center">
  <i>让跨屏观影如丝般顺滑 🎉</i><br>
  <sub>版权所有 © 2026 Dollop Cast</sub>
</div>
