{"id":13602977,"url":"https://github.com/hellodword/wechat-feeds","last_synced_at":"2025-04-11T13:32:10.419Z","repository":{"id":40237793,"uuid":"296223466","full_name":"hellodword/wechat-feeds","owner":"hellodword","description":"[已停止服务] 给微信公众号生成 RSS 订阅源","archived":true,"fork":false,"pushed_at":"2021-06-26T06:31:00.000Z","size":35927,"stargazers_count":994,"open_issues_count":1,"forks_count":570,"subscribers_count":17,"default_branch":"main","last_synced_at":"2024-08-01T18:33:50.147Z","etag":null,"topics":["rss","wechat"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hellodword.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-17T04:58:06.000Z","updated_at":"2024-07-29T07:51:55.000Z","dependencies_parsed_at":"2022-06-27T03:40:44.966Z","dependency_job_id":null,"html_url":"https://github.com/hellodword/wechat-feeds","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodword%2Fwechat-feeds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodword%2Fwechat-feeds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodword%2Fwechat-feeds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellodword%2Fwechat-feeds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellodword","download_url":"https://codeload.github.com/hellodword/wechat-feeds/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223470365,"owners_count":17150540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rss","wechat"],"created_at":"2024-08-01T18:01:45.324Z","updated_at":"2025-04-11T13:32:10.406Z","avatar_url":"https://github.com/hellodword.png","language":null,"readme":"# WeChat-Feeds\n\n\n---\n\u003cdiv align=center\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/issues/3882\"\u003e\n      \u003cfont size=8\u003e\u003cb\u003e停止服务\u003c/b\u003e\u003c/font\u003e\n   \u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=center\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/issues/3882\"\u003e\n      \u003cfont size=8\u003e\u003cb\u003e停止服务\u003c/b\u003e\u003c/font\u003e\n   \u003c/a\u003e\n\u003c/div\u003e\n\u003cdiv align=center\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/issues/3882\"\u003e\n      \u003cfont size=8\u003e\u003cb\u003e停止服务\u003c/b\u003e\u003c/font\u003e\n   \u003c/a\u003e\n\u003c/div\u003e\n    \n\n---\n\n\u003cdiv align=center\u003e\u003cimg src=\"img/wechat.png\" height=\"160\" width=\"160\" /\u003e\u003c/div\u003e\n\n\n\u003cp align=\"center\"\u003e\n   \u003ca href=\"https://gitter.im/wechat-feeds/chat?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\" alt=\"Gitter\"\u003e\n      \u003cimg alt=\"Gitter\" src=\"https://badges.gitter.im/wechat-feeds/chat.svg\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"http://wechat.privacyhide.com/\" alt=\"Website\"\u003e\n      \u003cimg alt=\"Website\" src=\"https://img.shields.io/website?down_message=offline\u0026up_message=online\u0026url=http%3A%2F%2Fwechat.privacyhide.com%2F\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/graphs/contributors\" alt=\"Contributors\"\u003e\n      \u003cimg alt=\"Contributors\" src=\"https://img.shields.io/github/contributors/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/pulse\" alt=\"Activity\"\u003e\n      \u003cimg alt=\"Activity\" src=\"https://img.shields.io/github/commit-activity/m/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/network/members\" alt=\"GitHub forks\"\u003e\n      \u003cimg alt=\"GitHub forks\" src=\"https://img.shields.io/github/forks/hellodword/wechat-feeds?style=social\" /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/stargazers\" alt=\"GitHub stars\"\u003e\n      \u003cimg alt=\"GitHub stars\" src=\"https://img.shields.io/github/stars/hellodword/wechat-feeds?style=social\" /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/hellodword?tab=followers\" alt=\"GitHub followers\"\u003e\n      \u003cimg alt=\"GitHub followers\" src=\"https://img.shields.io/github/followers/hellodword?style=social\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/issues\" alt=\"GitHub issues\"\u003e\n      \u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues-raw/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/issues?q=is%3Aissue+is%3Aclosed\" alt=\"GitHub closed issues\"\u003e\n      \u003cimg alt=\"GitHub closed issues\" src=\"https://img.shields.io/github/issues-closed-raw/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/pulls\" alt=\"GitHub pr\"\u003e\n      \u003cimg alt=\"GitHub pr\" src=\"https://img.shields.io/github/issues-pr-raw/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003ca href=\"https://github.com/hellodword/wechat-feeds/pulls?q=is%3Apr+is%3Aclosed\" alt=\"GitHub closed pr\"\u003e\n      \u003cimg alt=\"GitHub closed pr\" src=\"https://img.shields.io/github/issues-pr-closed-raw/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n   \u003cbr\u003e\n   \u003ca href=\"https://github.com/settings/repositories\" alt=\"GitHub repo size\"\u003e\n      \u003cimg alt=\"GitHub repo size\" src=\"https://img.shields.io/github/repo-size/hellodword/wechat-feeds\" /\u003e\n   \u003c/a\u003e\n\u003c/p\u003e\n\n\n* [WeChat-Feeds](#wechat-feeds)\n   * [声明](#声明)\n   * [隐私风险](#隐私风险)\n   * [更新状态](#更新状态)\n   * [如何使用](#如何使用)\n   * [如何添加/修改公众号](#如何添加修改公众号)\n   * [FAQ](#faq)\n      * [如何获取 bizid?](#如何获取-bizid)\n      * [服务是否稳定?](#服务是否稳定)\n      * [feeds 更新频率如何?](#feeds-更新频率如何)\n      * [数量是否有上限?](#数量是否有上限)\n      * [是如何爬取的?](#是如何爬取的)\n      * [csv 转义方式](#csv-转义方式)\n      * [文章更新时间为什么对不上?](#文章更新时间为什么对不上)\n      * [是否会开源?](#是否会开源)\n      * [是否算滥用?](#是否算滥用)\n   * [TODO](#todo)\n   * [交流](#交流)\n   * [更新状态](#更新状态)\n\n---\n\n\u003e 给微信公众号生成 RSS 订阅源  \n\n\u003e 列表页 [https://wechat.privacyhide.com/](https://wechat.privacyhide.com/)  \n\n\n众所周知, 微信公众号比较封闭, 爬取也有一定门槛, 对于 RSS 重度用户来说很不友好, 加上如今订阅号的推送也是乱序时间轴的, 作为在推荐算法的重重包围下做挣扎的一员, 希望在此借助 Github 为同好提供有限的订阅服务.\n\n---\n## 声明\n\n收录的公众号均来自网友提交或者采集自公开榜单, 不代表任何立场; 所有内容均为手动抄录, 未进行任何逆向工程.\n\n---\n\n## 隐私风险\n\n~~feeds 托管在 github 上, 所以我无法获取订阅这些 feeds 的用户的任何信息~~\n\n2020/10/5: 在列表页新增了 [GA](https://github.com/hellodword/wechat-feeds/blob/82c14ebd869fe11618142d9a04b487b53988dd3e/index.html#L22-L30), 只是为了统计一下列表页的使用情况, 如有介意, 可以使用浏览器插件屏蔽或者用 [list.csv](https://github.com/hellodword/wechat-feeds/blob/main/list.csv) 手动搜索拼接链接代替列表页.\n\n2021/03/07: [#895](https://github.com/hellodword/wechat-feeds/issues/895) 图标的实现会请求一台服务器, 代码见 [favicon](https://github.com/hellodword/wechat-feeds/tree/favicon), 是有能力获取订阅者的 IP 地址的. 我承诺我没有记录数据, 但我觉得就算我被信任, 这种仅仅建立在对个体的信任上的方式不健康, **有隐私风险**, 大家有什么好的办法可以 issue 与我交流\n\n---\n\n## 更新状态\n\n\u003e 如果需要某项实时通知, 可以点击对应页面的 Subscribe\n\n- [更新状态](https://github.com/hellodword/wechat-feeds/issues/608#issuecomment-new)\n- [异常状态](https://github.com/hellodword/wechat-feeds/issues/2471#issuecomment-new)\n- [迁移/屏蔽/注销检测](https://github.com/hellodword/wechat-feeds/issues/2387#issuecomment-new)\n\n--- \n## 如何使用\n\n- 在 [列表页](https://wechat.privacyhide.com/) 中搜索你想要订阅的公众号, 点击复制链接\n\n---\n## 如何添加/修改公众号\n\n\u003e 本指南只针对不是很熟悉 github 的朋友, 方便大家直接在网页上提交 pr, 老手可忽略~\n\n1. 首先要有一个 github 账户: [注册](https://github.com/join?source=login) | [登录](https://github.com/login)\n\n2. 在浏览器中打开 [list.csv](https://github.com/hellodword/wechat-feeds/blob/main/list.csv), 先搜索有没有你需要的公众号, 确定没有则点击箭头指示的编辑按钮, 开始编辑\n\n![edit-01](img/how-to-pr/edit-01.png)\n\n3. 拉到底部, 按照格式在文档的末尾 (箭头 1) 添加你想要添加的公众号, 根据下图的箭头指示添加完成后, 点击 **`Propose changes`**(箭头 3), 注意箭头 2 处按照如下格式填写: \n   - 以 **`新增:`** 开头, 注意冒号是 **半角字符**;\n   - 用半角空格 ` ` 分隔公众号, 结尾不要空格, **注意 `新增:` 后面也有一个空格**, 例如 **`新增: 火绒安全实验室`**, **`新增: 火绒安全实验室 人民日报`**;\n   - 多个公众号可以用概述, 同样用半角空格 ` ` 分隔, 结尾不要空格, 例如 **`新增: 火绒安全实验室 人民日报 等`**, **`新增: 36个游戏资讯公众号`**.\n\n![edit-02](img/how-to-pr/edit-02.png)\n\n4. 网页跳转后来到如下页面则说明修改成功了, 开始提交 pr\n\n![pr-01](img/how-to-pr/pr-01.png)\n![pr-02](img/how-to-pr/pr-02.png)\n\n\n5. **请务必在提交 pr 后保持可以接收到邮件提醒, GitHub 会通过邮件告诉你 pr 是否有问题, 有问题的 pr 请重新提交并及时关闭无效的 pr (下方的 Close), 不要提完 pr 就当作成功了, 目前自助没有什么问题, 请尽量自助解决.**\n\n![email](img/how-to-pr/email.png)\n\n6. **注意事项**:\n   1. **请确保每次 pr 只修改提交一次**.\n   2. **在自己的 pr 没被处理前, 建议不要立刻提新的 pr, 推荐多个公众号 (64 个以内) 放在一次 pr 里, 或者关闭前一个 pr 重新提交**.\n   3. 请确认自己的输入法, 分隔的标点符号为半角符号, 而不是全角符号, 区别请自行搜索.\n   4. 直接在网页上拉到行尾添加, 以免破坏文件格式.\n   5. 获取 `bizid`, 参见 [如何获取 bizid](#如何获取-bizid)\n   6. `name` 和 `bizid` 为必需, `description` 可留空, `description` 内如有半角双引号、换行、逗号时, 需要转义, 参见 [csv 转义方式](#csv-转义方式)\n\n---\n\n## FAQ\n\n### 如何获取 bizid?\n\n#### 自动获取\n\n1. 选择一篇文章复制链接\n\n![](img/bizid-01.png)\n\n2. 在 [这里](https://github.com/hellodword/wechat-feeds/issues/new) 新开一个 issue, 标题随便填写, 内容填上链接, github actions 会自动抓取和回复数据, 只需要等待一会然后复制就可以了. 参考 [#1536](https://github.com/hellodword/wechat-feeds/issues/1536). 只监听新开 issue 的事件, edit 无效. 如果失败, 请 [手动获取](#手动获取)\n\n#### 手动获取\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e展开查看\u003c/b\u003e\u003c/summary\u003e\n\n1. 选择一篇文章复制链接, 注意如果公众号已被永久屏蔽, 就不用再添加了, 会不定期清理已屏蔽的公众号; 如果公众号已迁移, 用迁移后的 bizid\n\n![](img/migrate.png)\n\n2. 在浏览器中打开链接, 右键查看网页源代码, 搜索 `var biz`, 可以搜到 `var biz = \"\"||\"MzI1NTQxODA4NA==\";`, 那么 `MzI1NTQxODA4NA==` 也就是需要的 bizid\n\n\u003c/details\u003e\n\n### 服务是否稳定?\n\n完全不敢保证, 抱歉 (项目的特殊性决定了一切说绝对稳定的都是过度自信)\n\n### feeds 更新频率如何?\n\n大致时间点:\n\n07,11,13,16,20,23\n\n如果有更好的时间点设计欢迎 [告诉我](#交流), 因为凌晨这段时间推送的更新很少, 抓取有点浪费\n\n\n### 数量是否有上限?\n\n鉴于账号限制, 暂时只打算提供 20000 个公众号的服务, 每个 feed 至多只保留20篇\n\n### 是如何爬取的?\n\n真实: 全部是我一条一条定时手动抄录的, 一个小时最多抄录两万个公众号的内容.\n\n### csv 转义方式\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e展开查看\u003c/b\u003e\u003c/summary\u003e\n\n**首先确保你的输入法切换到半角符号状态**\n\n\n1. 如果内容中有**半角**双引号, 需要在每个**半角**双引号前面再加一个**半角**双引号来转义, 然后将内容用一对**半角**双引号包起来:\n\n   假设需要转义的内容为:\n\n   ```\n   它说:\"你好\"\n   ```\n\n   则改为:\n\n   ```\n   \"它说:\"\"你好\"\"\"\n   ```\n\n2. 如果内容中有**半角**逗号, 将内容用一对**半角**双引号包起来:\n\n   假设需要转义的内容为:\n\n   ```\n   你好,世界\n   ```\n\n   则改为:\n\n   ```\n   \"你好,世界\"\n   ```\n\n3. 如果内容中有换行, 要将整个内容都用一对**半角**双引号包起来:\n\n   \u003e 不建议包含换行\n\n   假设需要转义的内容为:\n\n   ```\n   它说:\"你好世界\"\n   它说:\"知道了\"\n   ```\n\n   则改为:\n\n   ```\n   \"它说:\"\"你好世界\"\"\n   它说:\"\"知道了\"\"\"\n   ```\n   \n\u003c/details\u003e\n\n\n---\n\n### 文章更新时间为什么对不上?\n\n\u003e 参见 [issue 390](https://github.com/hellodword/wechat-feeds/issues/390#issuecomment-743722383) \n\n\u003e 我看了下这个公众号, 它每天推送时间都是上午8:30, 所以我猜测它是定时发布的, 而 feeds 中显示的时间就是微信服务器收到这篇文章的时间, .\n\n\u003e 比如 [这一篇](https://mp.weixin.qq.com/s/Beh1Lgmvtb29HIq2_v9Gpg) , 8:30 对应的 1607733000 在它的网页源码中可以看到, 所以其实这和抓取全文可能是同一个范畴的问题\n\n---\n\n### 是否会开源?\n\n\u003e 可公开的部分见各个分支的源码, 有编程能力的可以反代并且自建图标服务器消除隐私风险和 MIME 的问题, 除此之外暂无开源计划, 况且我真是手动抄录的 \n\n---\n\n### 是否算滥用?\n\n\u003e 是否算滥用 github 这个问题, 我查阅了很久 [ToS](https://docs.github.com/en/github/site-policy/github-terms-of-service), 我认为对于此项目来说是不算的, 欢迎与我讨论此点.\n\n---\n## TODO\n\n- [x] 根据 list.csv 生成列表页, 通过 pages 展示 (感谢 [Treblex](https://github.com/Treblex) 的 [Treblex/wechat-feeds-page](https://github.com/Treblex/wechat-feeds-page), 感谢 [shulandmimi](https://github.com/shulandmimi))\n- [x] 给 pr 和 commit 添加自动 checks\n- [x] 给 issue 添加 actions, 来自动获取 bizid 等\n- [x] 兼容迁移公众号/自动移除已屏蔽公众号\n- [x] 列表页性能提升, 一次性加载性能压力太大\n- [ ] 考虑添加更多可供列表页搜索/过滤的属性, 例如微信号、 TAG 等\n- [ ] 考虑 feeds 分支使用 force push, 以避免触及[仓库容量预警上限](https://docs.github.com/cn/github/managing-large-files/what-is-my-disk-quota#file-and-repository-size-limitations)\n\n---\n\n## 交流\n\n\u003e 首推 [issues](https://github.com/hellodword/wechat-feeds/issues)\n\n\u003e 有什么需要频繁交流的问题和建议可以在 [![聊天室](https://badges.gitter.im/wechat-feeds/chat.svg)](https://gitter.im/wechat-feeds/chat?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge) 交流, 当然在这之前建议先阅读本文档.\n\n\n","funding_links":[],"categories":["Others","Others (1002)"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellodword%2Fwechat-feeds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellodword%2Fwechat-feeds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellodword%2Fwechat-feeds/lists"}