| Crates.io | transparent-classroom-photos-grabber-rs |
| lib.rs | transparent-classroom-photos-grabber-rs |
| version | 0.2.0 |
| created_at | 2025-05-22 17:21:48.058739+00 |
| updated_at | 2025-05-22 17:24:15.358033+00 |
| description | A Rust implementation to download photos from Transparent Classroom |
| homepage | https://github.com/harperreed/transparent-classroom-photos-grabber-rs |
| repository | https://github.com/harperreed/transparent-classroom-photos-grabber-rs |
| max_upload_size | |
| id | 1685418 |
| size | 722,758 |
A Rust implementation to download photos from Transparent Classroom
Transparent Classroom Photos Grabber is a command-line tool that lets you easily download and organize photos from your child's Transparent Classroom account. It automatically handles authentication, crawls through all available posts, and downloads photos with proper metadata including location and timestamps.
Built in Rust for speed and reliability, this tool ensures you never miss a classroom moment while maintaining a well-organized photo collection.
# Clone the repository
git clone https://github.com/harperreed/transparent-classroom-photos-grabber-rs.git
cd transparent-classroom-photos-grabber-rs
# Build the project
cargo build --release
You need to set the following environment variables:
export TC_EMAIL="your.email@example.com"
export TC_PASSWORD="your_password"
export SCHOOL=12345 # Your school ID
export CHILD=67890 # Your child ID
export SCHOOL_LAT=41.9032 # School latitude
export SCHOOL_LNG=-87.6663 # School longitude
export SCHOOL_KEYWORDS="school, montessori, chicago" # Keywords for metadata
Alternatively, create a .env file in the project directory with these values (see .env.example).
# Download photos to default ./photos directory
cargo run --release
# Or specify a custom output directory
cargo run --release -- /path/to/output/directory
Usage: transparent-classroom-photos-grabber [OUTPUT_DIR]
If OUTPUT_DIR is not provided, photos will be saved to './photos'
The project is structured around these core components:
Key libraries used:
reqwest: HTTP client for API requestsscraper: HTML parsing for extracting photo informationchrono: Date and time handlingserde: Serialization/deserialization for JSON dataindicatif: Progress bars for CLI experiencedotenv: Environment variable managementFor development and testing:
# Run tests
cargo test
# Run with debug logging
RUST_LOG=debug cargo run
# Format code
cargo fmt
# Check for issues
cargo clippy
This project is licensed under the MIT License - see the LICENSE file for details.