Seanime:自建动漫和漫画媒体服务器

正文顶部截图

Seanime 是一个开源的媒体服务器项目,目前在 GitHub 上获得了 3,756 个 Star。它提供了 Web 界面和桌面客户端,用于管理本地动漫库、在线串流动漫以及阅读漫画。

这是一个由个人开发者维护的项目,后端使用 Go 编写,前端采用 React 搭建,桌面客户端基于 Electron。

README区域截图

Seanime 支持 Windows、Linux 和 macOS 三个平台。Web 界面可以在任意浏览器中访问,桌面客户端 Seanime Denshi 则内置了独立的视频播放器,支持 SSA/ASS 字幕渲染、Anime4K 画质增强和自动翻译等功能。

在内容来源方面,Seanime 通过 AniList 集成来管理用户的观看列表和漫画收藏。用户可以浏览 AniList 上的动漫和漫画信息,同步自己的观看进度。对于不在 AniList 上的内容,Seanime 也支持通过自定义来源添加。

本地库管理是 Seanime 的一个核心功能。它能快速扫描本地文件,对文件命名和目录结构没有严格要求。很多媒体服务器对文件命名有特定规范,Seanime 在这方面比较宽松,扫描识别的准确率也比较高。

Seanime 内置了种子搜索功能,通过扩展来实现对多个种子站点的搜索。下载方面支持 Qbittorrent、Transmission、Torbox 和 Real-Debrid 等客户端。更实用的是,它支持种子串流,也就是说不需要等整个文件下载完成,可以直接将种子内容串流到播放器中观看。支持的串流后端包括 BitTorrent 协议、Torbox 和 Real-Debrid。

除了本地文件和种子下载,Seanime 还支持在线串流。通过安装相应的扩展,用户可以直接在应用内观看在线源的动漫内容,不需要额外下载。

自动下载器是另一个实用功能。Seanime 可以自动追踪用户关注的动漫更新,当新一集发布时自动下载。用户可以设置过滤规则,包括优先级评分、延迟时间等参数,来控制自动下载的行为。

Seanime 有一个应用内的扩展市场,用户可以在其中浏览和安装各种扩展。这些扩展覆盖了在线串流源、漫画源和种子提供者等类别。扩展机制让 Seanime 的功能可以持续扩展,开发者和社区都可以贡献新的扩展。

漫画阅读器提供了统一的界面,既能读取本地漫画文件,也能通过扩展从在线源获取漫画内容。阅读器的界面设计考虑了连续翻页的体验。

对于流媒体播放,Seanime 提供了转码和直接播放两种模式。转码模式可以在播放时实时转换视频编码,适配不同设备的解码能力。直接播放模式则跳过转码过程,直接将原始文件推送到设备上播放。用户可以通过浏览器在任意设备上访问自己的媒体库。

桌面客户端支持与 MPV、VLC 和 MPC-HC 等外部播放器无缝集成。移动端方面,Seanime 可以通过 intent 或 deep link 将文件和串流地址发送到手机上的播放器应用,比如 Outplayer 和 VLC。

Seanime 还提供了播放列表功能,用户可以创建自定义播放列表,方便连续观看多集内容。界面支持自定义主题颜色、背景图片和布局选项。Discord Rich Presence 功能可以自动在 Discord 上显示用户当前正在观看的内容。

在没有网络连接的情况下,Seanime 也支持离线模式,用户可以访问已下载到本地的动漫和漫画库。日程功能可以追踪即将发布的新番和错过的剧集。

Seanime 的服务器端使用 Go 语言开发,Go 的并发特性和编译后的高性能适合处理媒体流和文件扫描这类 IO 密集型任务。前端使用 React 框架,配合 Rsbuild 和 Tanstack Router 来构建单页应用。桌面客户端使用 Electron 打包,这样 Web 前端代码可以复用到桌面应用中,降低了开发和维护成本。

安装 Seanime 需要参考官方文档中的安装指南。项目提供预编译的二进制文件,也有 Docker 镜像可供使用。从源码构建的话,需要安装 Node.js 和 Go 环境。

Seanime 作为个人项目,功能范围有一定取舍。开发者明确表示不会内置对 MyAnimeList、Trakt、SIMKL 等其他追踪平台的支持,也不会添加对更多内置播放器的支持和本地化翻译。这些限制让项目可以专注于 AniList 生态和核心功能的打磨。

和本地化翻译。这些限制让项目可以专注于 AniList 生态和核心功能的打磨。

更多推荐