Sports Science Daily — AI Agent Skill
An automated intelligence engine that aggregates 55+ global sports science sources into a single daily report, with smart filtering, auto-translation, and multi-platform sync.
What It Does
- Fetches peer-reviewed papers from 23 PubMed journals (BJSM, Sports Medicine, JSCR, MSSE, etc.)
- Crawls RSS feeds from 14 expert blogs/podcasts (Huberman, Attia, Nuckols, Dr. Mike, NSCA, etc.)
- Monitors 18 industry sources (The Quantified Scientist, DC Rainmaker, Oura, Garmin, ScienceDaily, ACSM, etc.)
- Filters noise using a 4-layer keyword system (positive/research/strong/negative keywords + trusted source whitelist)
- Translates all content to Chinese (or any target language) via Google Translate API
- Sorts each section by date (newest first)
- Deduplicates against local history to prevent repeat content
- Syncs the final report as a Feishu Cloud Document with notification card, and optionally to Notion
Prerequisites
- Python 3.8+ with
feedparser and requests installed (pip3 install -r requirements.txt)
- Feishu App Credentials (for cloud document sync):
FEISHU_APP_ID: Feishu app ID
FEISHU_APP_SECRET: Feishu app secret
FEISHU_RECEIVE_ID: Target user/chat ID for message card
- (Optional) Notion Integration for Notion page sync:
NOTION_TOKEN and NOTION_PAGE_ID
Instructions
Navigate to the project directory:
Ensure you are in the sports-science-daily project root.
Run the update:
python3 main.py --days 2
Available options:
| Flag |
Default |
Description |
--days N |
7 |
Lookback period in days |
--no-history |
off |
Force re-fetch all items (ignore dedup) |
--no-bloggers |
off |
Skip blogger feeds, only industry + PubMed |
--lang LANG |
zh-CN |
Output language (en, es, ja, etc.) |
Output:
- Local Markdown file:
YYYY-MM-DD_运动科学日报.md
- Feishu Cloud Document (auto-created with shareable link)
- Feishu message card sent to configured recipient
- Updated
processed_history.json for deduplication
"No New Content" scenario:
If output shows "🎉 没有发现新内容", increase --days or use --no-history.
Project Architecture
main.py # CLI entry point
src/
├── config.py # All sources, journals, blocklists
├── crawler.py # RSS + PubMed API fetching
├── formatter.py # Markdown generation + keyword filtering
├── translator.py # Google Translate API
├── history.py # Deduplication management
└── exporters/
├── feishu.py # Feishu cloud doc sync + message card
└── notion.py # Notion page sync
Security & Privacy
- External APIs: PubMed (eutils.ncbi.nlm.nih.gov), Google Translate, Feishu OpenAPI, Notion API, various RSS feeds
- Local files: Reads/writes
processed_history.json and .md reports
- No PII exposure: Only fetches public research data and news feeds
1---2name: generate-daily-sports-update3description: Automated sports science intelligence engine — fetches 55+ sources (PubMed, expert blogs, wearable tech), filters noise, translates to Chinese, and syncs to Feishu/Notion.4---56# Sports Science Daily — AI Agent Skill78An automated intelligence engine that aggregates **55+ global sports science sources** into a single daily report, with smart filtering, auto-translation, and multi-platform sync.910## What It Does11121. **Fetches** peer-reviewed papers from **23 PubMed journals** (BJSM, Sports Medicine, JSCR, MSSE, etc.)132. **Crawls** RSS feeds from **14 expert blogs/podcasts** (Huberman, Attia, Nuckols, Dr. Mike, NSCA, etc.)143. **Monitors** **18 industry sources** (The Quantified Scientist, DC Rainmaker, Oura, Garmin, ScienceDaily, ACSM, etc.)154. **Filters** noise using a 4-layer keyword system (positive/research/strong/negative keywords + trusted source whitelist)165. **Translates** all content to Chinese (or any target language) via Google Translate API176. **Sorts** each section by date (newest first)187. **Deduplicates** against local history to prevent repeat content198. **Syncs** the final report as a Feishu Cloud Document with notification card, and optionally to Notion2021## Prerequisites2223- **Python 3.8+** with `feedparser` and `requests` installed (`pip3 install -r requirements.txt`)24- **Feishu App Credentials** (for cloud document sync):25 - `FEISHU_APP_ID`: Feishu app ID26 - `FEISHU_APP_SECRET`: Feishu app secret27 - `FEISHU_RECEIVE_ID`: Target user/chat ID for message card28- **(Optional) Notion Integration** for Notion page sync:29 - `NOTION_TOKEN` and `NOTION_PAGE_ID`3031## Instructions32331. **Navigate to the project directory**:34 Ensure you are in the `sports-science-daily` project root.35362. **Run the update**:37 ```bash38 python3 main.py --days 239 ```40413. **Available options**:4243 | Flag | Default | Description |44 |------|---------|-------------|45 | `--days N` | 7 | Lookback period in days |46 | `--no-history` | off | Force re-fetch all items (ignore dedup) |47 | `--no-bloggers` | off | Skip blogger feeds, only industry + PubMed |48 | `--lang LANG` | zh-CN | Output language (en, es, ja, etc.) |49504. **Output**:51 - Local Markdown file: `YYYY-MM-DD_运动科学日报.md`52 - Feishu Cloud Document (auto-created with shareable link)53 - Feishu message card sent to configured recipient54 - Updated `processed_history.json` for deduplication55565. **"No New Content" scenario**:57 If output shows "🎉 没有发现新内容", increase `--days` or use `--no-history`.5859## Project Architecture6061```62main.py # CLI entry point63src/64├── config.py # All sources, journals, blocklists65├── crawler.py # RSS + PubMed API fetching66├── formatter.py # Markdown generation + keyword filtering67├── translator.py # Google Translate API68├── history.py # Deduplication management69└── exporters/70 ├── feishu.py # Feishu cloud doc sync + message card71 └── notion.py # Notion page sync72```7374## Security & Privacy7576- **External APIs**: PubMed (eutils.ncbi.nlm.nih.gov), Google Translate, Feishu OpenAPI, Notion API, various RSS feeds77- **Local files**: Reads/writes `processed_history.json` and `.md` reports78- **No PII exposure**: Only fetches public research data and news feeds