如何让 Tinfoil 从 RomM 下载 Switch 游戏(自定义 Feed 配置)?
如何让 Tinfoil 从 RomM 下载 Switch 游戏自定义 Feed 配置【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm如果你的 RomM 实例里已经扫描进了 Nintendo Switch 平台的 ROM想让 Switch 上的 Tinfoil 客户端直接从 RomM 下载游戏文件就需要配置 RomM 内置的 Tinfoil 自定义 Feed 接口。RomM 后端提供了一个 Tinfoil custom index 格式的端点GET /api/feeds/tinfoil实现在 backend/endpoints/feeds.py它会返回当前库中 Switch 平台的游戏文件下载列表和 titledb 元数据。配置完成后Tinfoil 通过这一个地址即可浏览并下载你的 Switch 游戏库。前提条件一个正在运行的 RomM 实例仓库根目录提供了 docker-compose.yml、env.template 等部署与配置模板。库中已存在 Nintendo Switch 平台且该平台下有磁盘文件真实存在的游戏。Feed 只会列出「文件在磁盘上存在」的 ROM源码中通过HAS_FILE_ON_DISK_FILTERS过滤文件缺失的条目不会出现。Feed 中每个条目的下载 URL 指向 RomM 的 ROM 文件下载端点/api/roms/{id}/files/content/{file_name}这一点决定了下面必须修改的环境变量。配置环境变量Feed 端点本身不需要认证路由声明中 scope 列表为空但 Feed 返回的每个下载链接指向的文件下载端点默认要求ROMS_READ权限。Tinfoil 不会携带 RomM 的登录凭证因此必须关闭下载端点的认证否则 Tinfoil 能拉到列表、但下载文件时会收到 401。在 RomM 服务的环境变量配置中项目以 env.template 作为环境变量模板修改DISABLE_DOWNLOAD_ENDPOINT_AUTHtrue # Disable auth on the download endpoint for WebRcade/Tinfoil TINFOIL_WELCOME_MESSAGERomM Switch Library # 可选Tinfoil 客户端中显示的欢迎信息DISABLE_DOWNLOAD_ENDPOINT_AUTH默认false。docs/BACKEND_ARCHITECTURE.md 将其描述为 Allow unauthenticated downloadsenv.template 注释明确说明它用于 WebRcade/Tinfoil 场景。设为true后下载端点不再要求任何凭证——这是公开下载接口的行为注意它同时放开所有走该端点的文件下载。TINFOIL_WELCOME_MESSAGE可选默认值为RomM Switch Library会作为响应中的success字段显示在 Tinfoil 客户端中见 backend/config/init.py。修改环境变量后重启 RomM 服务使其生效。获取 Feed 地址并验证Tinfoil 使用的完整 Feed 地址为http://你的RomM服务地址/api/feeds/tinfoil?slugswitch其中你的RomM服务地址替换为你实际访问 RomM 的域名或主机:端口slug参数指定平台 slug默认就是switch可以省略。在能访问 RomM 的机器上执行curl http://你的RomM服务地址/api/feeds/tinfoil?slugswitch返回应为 HTTP 200 的 JSON结构由 TinfoilFeedSchema 定义。根据该模式响应形态如下示例结构具体条目数量与你的库一致{ files: [ { url: http://你的RomM服务地址/api/roms/1/files/content/Test%20Switch.nsp, size: 456 } ], directories: [], success: RomM Switch Library, titledb: {} }files每个条目包含url文件下载直链和size字节。success即TINFOIL_WELCOME_MESSAGE的值。titledb以 nsuId 为键的元数据字典条目字段包括id、name、description、region、publisher、releaseDate、size、version、rating、rank见 TinfoilFeedTitleDBSchema。文件名中带 TitleDB 格式或 ProductID 格式的 ROM 会由 IGDB 数据填充该字段解析不出 nsuId 的条目会被跳过。测试代码 backend/tests/endpoints/test_feeds.py 展示了验证方式请求/api/feeds/tinfoil?slugswitch期望得到 200且files中每条的size 0。在 Tinfoil 中使用该端点按 Tinfoil 的 custom index 格式实现feeds.py 中的 docstring 即标注了 tinfoil custom index feed endpoint。在 Tinfoil 的 custom index 配置中填入上面验证过的 Feed 地址Tinfoil 即可把 RomM 的游戏文件列表作为索引浏览并下载。Tinfoil 客户端内的具体菜单操作不在本仓库文档范围内以 Tinfoil 客户端自身的 custom index 设置界面为准。结果判断与限制files为空数组Feed 会列出扩展名仅限xci、nsp、nsz、xcz、nro的 ROM 文件feeds.py。其他扩展名的 Switch 文件如 zip 压缩包不会出现在列表里。响应中带error字段当库中查不到指定 slug 对应的平台时返回{files: [], directories: [], error: Nintendo Switch platform not found}此时应检查平台 slug 是否正确默认switch。列表可见但下载失败通常是DISABLE_DOWNLOAD_ENDPOINT_AUTH未设为true或未重启生效下载链接会因未认证返回 401。权限可见性如果请求携带了认证身份该用户被权限规则隐藏的 Switch 平台或 ROM 不会出现在 Feed 中未认证请求则没有隐藏范围。以 Tinfoil 匿名访问的形态使用时全部已扫描且在磁盘上的 Switch 游戏都会列出。完成以上配置后用 Tinfoil 打开 custom index 应能看到TINFOIL_WELCOME_MESSAGE的欢迎信息与游戏列表点击某个条目即通过files中对应的url从 RomM 拉取文件这就是整条链路的最终验证结果。【免费下载链接】rommA beautiful, powerful, self-hosted ROM manager and player.项目地址: https://gitcode.com/GitHub_Trending/rom/romm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Cursor深度测评:大半年使用经验,Plus会员到底值不值

Cursor深度测评:大半年使用经验,Plus会员到底值不值

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 18:57:26 阅读更多 →
图像加密新方案:压缩感知与DNA编码的Python实现

图像加密新方案:压缩感知与DNA编码的Python实现

1. 项目概述:当图像加密遇上压缩感知与DNA编码在信息安全领域,图像加密一直是个既基础又关键的课题。传统的AES、DES等加密算法虽然成熟,但面对图像这类具有高冗余度、大数据量的特殊载体时,往往显得笨重且效率不足。三年前我在开…

2026/11/1 18:57:27 阅读更多 →
C/C++的指针与函数(指针函数与函数指针辨析)

C/C++的指针与函数(指针函数与函数指针辨析)

文章目录指针函数语法指针函数的工程应用---malloc与new函数指针函数的地址函数的地址与函数的返回值函数指针的声明使用函数指针的调用函数函数指针数组使用typedef为函数指针取别名函数指针的工程应用---回调函数callback指针函数 指针函数就是指针的函数,是个函…

2026/11/1 18:57:32 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/6 15:21:35 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/7 12:08:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/6 22:01:11 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/6 22:01:11 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/7 12:08:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/6 22:01:09 阅读更多 →

日新闻

周新闻

月新闻