Neokikoeru - 面向 DLsite 音声作品的自托管流媒体服务器

软件名称

Neokikoeru

应用平台

  • Windows
  • macOS
  • Linux

推荐类型

【开发者自荐】

应用简介

Neokikoeru 是一个面向 DLsite 音声作品的自托管流媒体服务器,它使用 Go 和 Vue.js 开发,能够为你提供出色的音声视听体验。

功能介绍

高性能

使用 Go 和 Vue.js 开发,页面快速响应,超低资源占用,确保系统高效运行。

简单易用

原生跨平台,绿色单文件执行,界面设计简洁直观,只需几步即可轻松上手。

极速刮削

自动从 DLsite 同步作品元数据,支持多线程快速刮削,支持二次编辑。

多种存储

支持本地、网盘和 WebDAV 挂载,一站式管理你所有来源的音声作品。

强大搜索

支持多关键字、多标签检索,支持渐进式搜索和高级筛选,支持文件搜。

字幕关联

支持 LRC/VTT/SRT/ASS 格式字幕的滚动显示,支持字幕偏移,支持锁屏字幕。

播放历史

自动同步你的每一次收听记录,你可以随时随地恢复到之前的时间点继续播放。

文件保险箱

对作品文件加密以保护你的隐私,Neokikoeru 会在你阅览/播放时自动解密。

应用截图

官方网站

后记

先前的发现:Kikoeru——Go开发的跨平台同人音声媒体整理和播放软件 ,这是2年前写的 v0.x 版本,当时功能还比较简陋。v1.x 版本发生了重大的变更,名称更换成 Neokikoeru ,意为“新的 Kikoeru”。Neokikoeru 近期发布了 v1.x 以来我们最满意的里程碑版本,原来的帖子没法编辑更新了,所以新开个帖子分享一下。

这个应该不是Vibe Coding的成果,毕竟,很少见到AI Agent用MUI的

不过,非DLsite的资源的支持是不是就几近于无了?我的音乐里,Doujin的音乐比较多,一直是手动mp3tag解决的

你说的Doujin是类似DLsite的网站吗?网址是什么?

“Doujin”是音乐类型,也就是“同人”音乐

一般就是……东方同人,舰娘同人,ACG同人一类的

毕竟,博丽神主的音乐是真的好

软件支持 DLsite 贩售的同人音乐。如果来源是其他网站,请问作品具备唯一的识别码(类似 DLsite 的 RJ 号)?以什么形式提供的呢?

小建议,加一个独立的代理设置,而不是依赖系统变量。

独立代理设置是基于什么考量?HTTP_PROXYHTTPS_PROXY 是通用的代理系统环境变量,软件默认使用这个。

额,我不确定我是不是完全理解了,这个服务的逻辑是

  • 提取专辑的一些关键词,比方说专辑名,或者如果没有Metadata的话,就是文件夹名,音频文件名,到DLsite上进行搜索
  • 如果匹配到了,那么就使用对应的Metadata
  • 当然,如果没有自动匹配,应该也有手动处理的方法

也就是说,会场买的CD,如果对应作品没有在DLsite上发售,就不能保证刮削的效果。嗯,这也没问题,毕竟谁家的数据库也不是100%保证涵盖所有的作品。

在 DLsite 贩售的作品都有一个识别码,比如 https://www.dlsite.com/home/work/=/product_id/RJ395908.html 对应的识别码是 RJ395908 ,它具有唯一性。

Neokikoeru 要求将作品以文件夹的形式先分类好,资源文件(比如音频)全部放在该文件夹下,且文件夹名称必须包含作品的识别码。软件在扫描刮削时会提取该识别码,然后从 DLsite 爬取该作品的元数据入库,这样你就能通过Web UI访问并播放了。

简单来说,Neokikoeru 是类似 Infuse / VidHub / 网易爆米花这样的软件,只不过它们都是针对影视作品的,而 Neokikoeru 则面向 DLsite 上贩售的同人作品。

回到你的问题,即使对应作品没有在 DLsite 上发售,只要它能够满足以上提到的要求(具备唯一识别码,并且有相应网站提供元数据),那么理论上也能实现刮削的。

从使用者的角度,强迫给文件夹的名称使用DLsite的ID不是很方便

  • 这个ID是给程序使用的,对于用户来说,很难把ID跟作品对应上,如果想要对文件作修改,除了一个一个手动点开,也只有通过搜索来完成了
  • 而且,必须要手动命名。这意味着对专辑进行归档的时候,必须要一个一个搜索,然后重命名

有没有可能支持多种方法?比方说从Metadata里获取专辑名字,然后用这个名字来搜索。这样会方便很多

但是,准确性和稳定性不好把握。比如说

  • 一个文件夹里放了不止一个专辑的文件,这时候会有混乱
  • 同样的名字,或许对应不止一个专辑
  • 如果没有Metadata,文件夹名字又是乱起的,就没有办法了
  • 如果文件夹的名字跟Metadata的专辑名不一致,又不知道该怎么处理

似乎你对DLsite上贩售的作品不太了解,ID就是和作品一一对应的,它具有唯一性。你下载下来的文件就是以 ID.zip 命名的,所以你可以很轻松就得到以作品ID命名的文件夹。

确实对DLsite没什么了解

因为我的音乐专辑,都是以“[社团] 专辑名”的规范命名的,然后根据年份放到不同的文件夹里,所以…….

一直都是手动mp3tag来处理。前一阵子用`TagLibSharp`写了个批量工具,帮我完成一些股东操作,也算是省了点事

1 个赞

独立的代理设置,如果是Docker容器使用,可以在容器内配置环境变量。
如果是物理机使用,可以自己写一个启动脚本,启动程序前,临时设置环境变量,这样不会影响到系统全局设置。

感觉你们聊的似乎不在一个频道上 :joy:

这个工具就只是面向DLsite的,上面的同人音乐不多,通常以asmr为主(大多数的作品名称会一大串,没法很好区分)

所以以名称为分类的需求没那么高,我现在也是直接用文件夹管理同人音乐的

1 个赞

你说的这个是很容易实现的,以 Windows 系统为例,你可以创建一个批处理脚本 serve.bat

@echo off
set HTTP_PROXY=http://127.0.0.1:7897
set HTTPS_PROXY=http://127.0.0.1:7897
.\neokikoeru.exe serve
pause

然后通过该脚本运行即可。

Docker 就更加简单了,通过 -e 参数(docker run) 或者 environment 节点(docker compose)设置环境变量即可。

以上方式都不会影响系统全局设置。

1 个赞

但是会污染环境,其他不需要的程序也会走代理。
不过楼下的说的对,配置docker容器的环境变量也行

你完全不用担心这个问题,HTTP_PROXYHTTPS_PROXY 这两个环境变量是通用的,而且即便你设置了,实际请求使用代理还是直连是由代理软件的分流规则控制的。

(帖子已被作者删除)

新增一个演示站点:https://try-neokikoeru.voicehub.top

bat 脚本中的set设置的是临时变量吧,不会影响全局环境。使用setx才会永久保存

比如 脚本batcmd窗口

Z:\>set HTTP_PROXY=http://127.0.0.1:10808

Z:\>echo %HTTP_PROXY%
http://127.0.0.1:10808

你再重新运行一个新的cmd窗口执行 echo %HTTP_PROXY%,只会输出空

Z:\>echo %HTTP_PROXY%
%HTTP_PROXY%

linux环境下也是同理的