A Python tool for crawling and organizing anime broadcast information, supporting retrieval of anime information by year and month, and saving in Markdown format. Includes automated update workflows for daily synchronization of the latest anime data.
- 📅 Dual-mode operation: supports both interactive command line and automated script modes
- ⚡ Smart updates: automatically synchronizes the latest anime data daily (8:00 AM Beijing time)
- 📈 Incremental updates: automatically merges new and old data with intelligent deduplication
- 🕰️ Time range: supports year ranges (e.g., 2010-2024) and month ranges (e.g., 4-7)
- 📦 Data export: generates structured Markdown documents with complete metadata
- 🔁 Failure retry: automatically handles network exceptions with 3 retry attempts
- 🤖 Automatic archiving: creates versioned Pull Requests through GitHub Actions
- 🛡️ Security control: configurable concurrent request limit (default: 3 concurrent requests)
-
Clone the project locally
git clone https://github.com/yourusername/AnimeTimeline.git cd AnimeTimeline
-
Create and activate virtual environment (recommended)
python -m venv .venv source .venv/bin/activate # Linux/macOS # or .venv\Scripts\activate # Windows
-
Install dependencies
pip install -r requirements.txt
python pull.py interactive
- Enter year range as prompted (e.g., 2010-2024)
- Enter month range (optional, only for single year)
- Data will be saved to Bangumi_Anime.md
python pull.py auto --year 2024 --month 3
Parameter | Description | Example |
---|---|---|
--year | Target year (required) | 2024 |
--month | Target month (optional) | 3 |
--concurrent | Concurrency (default 3) | 5 |
# Scheduled tasks:
- Daily automatic updates for current month data
- Monthly supplementary updates for previous month on the 1st day
- Automatic generation of versioned Pull Requests
# Manual triggers:
- Support for manual updates through GitHub interface
- 📂 Data file: Bangumi_Anime.md - Contains the complete anime timeline data
- 🗂️ Version control: Historical versions managed through Git branches
- 📊 Data structure:
| Release Date | Cover | Chinese Title | Japanese Title | Episodes | Rating | Voters |
| --- | --- | --- | --- | --- | --- | --- |
| 2024-03 |  | [Title](DetailsPage) | Original Title | 12 | 8.9 | 1523 |
AnimeTimeline/
├── .github/ # Automation configuration
│ └── workflows/
│ └── update-anime.yml # Daily update workflow
├── pull.py # Main program (supports dual mode)
├── requirements.txt # Dependency configuration
├── Bangumi_Anime.md # Generated data file
├── SECURITY.md # Security policy
└── README.md # This documentation
- Default concurrency is set to 3, to adjust set environment variable:
export CONCURRENT_REQUESTS=5
- Avoid high-frequency requests, interval time ≥ 1 second
- Markdown files use UTF-8 encoding
- Automatic handling of illegal filename characters
- Regular commits of data changes recommended
- Network errors automatically retried 3 times
- Base year used automatically when date parsing fails
- Cover URL protocol headers automatically completed
- Fork this repository
- Create a feature branch
git checkout -b feature/NewFeature
- Commit code changes
git commit -m 'feat: Add awesome feature'
- Push branch
git push origin feature/NewFeature
- Create Pull Request
- Participate in data validation through Pull Request reviews
- Report data anomalies in Issues
- Discuss data format improvements in Discussions
This project is licensed under the Apache 2.0 License - see the LICENSE file for details
If you discover any security vulnerabilities, please review our security policy document for reporting procedures. We will respond promptly.