{"id":50405690,"url":"https://github.com/nodesire7/60s","last_synced_at":"2026-05-31T01:30:33.974Z","repository":{"id":359474452,"uuid":"1246236525","full_name":"nodesire7/60s","owner":"nodesire7","description":"60s Daily News - AI-powered global news in 60 seconds, auto TTS \u0026 WebP, daily build","archived":false,"fork":false,"pushed_at":"2026-05-29T22:29:26.000Z","size":10139,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T00:13:45.839Z","etag":null,"topics":["ai","daily","github-actions","github-pages","news","python","rss","tts"],"latest_commit_sha":null,"homepage":"https://nodesire7.github.io/60s/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nodesire7.png","metadata":{"files":{"readme":"README.md","changelog":"news/rss_parser.py","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-22T02:19:21.000Z","updated_at":"2026-05-29T22:29:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nodesire7/60s","commit_stats":null,"previous_names":["nodesire7/60s"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nodesire7/60s","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodesire7%2F60s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodesire7%2F60s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodesire7%2F60s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodesire7%2F60s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodesire7","download_url":"https://codeload.github.com/nodesire7/60s/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodesire7%2F60s/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33716338,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ai","daily","github-actions","github-pages","news","python","rss","tts"],"created_at":"2026-05-31T01:30:33.117Z","updated_at":"2026-05-31T01:30:33.969Z","avatar_url":"https://github.com/nodesire7.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 每天60秒读懂世界\n\n\u003e 每天60秒读懂世界 — AI精选全球最新15条热点新闻，自动生成TTS语音播报与精美分享卡片\n\n[![Daily Build](https://github.com/nodesire7/60s/actions/workflows/daily-build.yml/badge.svg)](https://github.com/nodesire7/60s/actions/workflows/daily-build.yml)\n[![GitHub Pages](https://img.shields.io/badge/Pages-Online-brightgreen)](https://nodesire7.github.io/60s/)\n[![License](https://img.shields.io/badge/License-MIT-blue)](LICENSE)\n\n**[🌐 在线页面](https://nodesire7.github.io/60s/)** | **[🎧 今日音频](https://nodesire7.github.io/60s/60s.mp3)** | **[📊 构建历史](https://github.com/nodesire7/60s/actions)**\n\n## 功能特性\n\n- **AI精选新闻** — 每日自动抓取最新15条全球热点，含微语金句\n- **TTS语音播报** — edge-tts合成中文语音，可直接播放收听\n- **精美分享卡片** — WebP截图生成，650px宽度适配手机分享\n- **按周配色** — 12种主题颜色每周轮换，视觉不单调\n- **GitHub Pages** — 自动部署静态页面，支持音频播放\n- **定时构建** — 凌晨5点生成，8点复查，保证每日更新\n\n## 页面截图\n\n| 日期卡片 | 新闻列表 | 音频播放 |\n|:---:|:---:|:---:|\n| 按周配色 + 农历显示 | 15条精炼新闻 | 一键播放60s.mp3 |\n\n## 技术栈\n\n| 模块 | 技术 |\n|------|------|\n| 新闻抓取 | Python + Requests + BeautifulSoup |\n| RSS生成 | feedgen |\n| TTS语音 | edge-tts (VITS API备用) |\n| 截图生成 | Selenium + Chrome Headless + Pillow |\n| 前端页面 | HTML5 + CSS3 + Vanilla JS |\n| 自动部署 | GitHub Actions + GitHub Pages |\n| 广告 | Google AdSense Auto Ads |\n\n## 项目结构\n\n```\n├── sixty_seconds_daily.py   # 主编排：API → RSS → TTS → WebP\n├── rss_to_tts.py            # RSS XML → 语音合成\n├── scrapers*.py             # 多种爬虫实现\n├── generate_webp.py         # 独立截图工具\n├── 60s.html / index.html    # 页面模板\n├── .github/workflows/       # CI/CD 定时构建\n├── zhihu_daily_news.xml     # 每日RSS数据\n└── 60s.mp3 / 60s.webp       # 每日输出产物\n```\n\n## 本地使用\n\n```bash\npip install -r requirements.txt\n\n# 完整流程\npython sixty_seconds_daily.py\n\n# 仅生成TTS\npython rss_to_tts.py --output 60s\n\n# 仅生成截图（需要浏览器）\npython generate_webp.py\n```\n\n## 定时构建\n\nGitHub Actions 每日自动执行：\n\n| 时间 | 操作 |\n|------|------|\n| 凌晨 5:00 (Beijing) | 完整构建：API获取 → RSS → TTS → WebP |\n| 早上 8:00 (Beijing) | 复查：若未更新则重试 |\n\n## 许可\n\n文本由AI生成，仅供参考。代码开源。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodesire7%2F60s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodesire7%2F60s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodesire7%2F60s/lists"}