{"id":48959382,"url":"https://github.com/timelapsetech/videocalc-db","last_synced_at":"2026-04-18T01:09:32.985Z","repository":{"id":304900963,"uuid":"1020458239","full_name":"timelapsetech/videocalc-db","owner":"timelapsetech","description":"A website to help calculate video file sizes for various codecs and formats","archived":false,"fork":false,"pushed_at":"2025-07-31T13:55:52.000Z","size":3195,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-31T17:06:52.328Z","etag":null,"topics":["codec","transcode","video"],"latest_commit_sha":null,"homepage":"https://videocalc.org/","language":"TypeScript","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/timelapsetech.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-15T22:52:29.000Z","updated_at":"2025-07-31T13:02:10.000Z","dependencies_parsed_at":"2025-07-17T06:39:56.414Z","dependency_job_id":"dd899900-f167-45d5-a554-ff3b456b00be","html_url":"https://github.com/timelapsetech/videocalc-db","commit_stats":null,"previous_names":["timelapsetech/videocalc-db"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/timelapsetech/videocalc-db","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelapsetech%2Fvideocalc-db","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelapsetech%2Fvideocalc-db/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelapsetech%2Fvideocalc-db/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelapsetech%2Fvideocalc-db/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timelapsetech","download_url":"https://codeload.github.com/timelapsetech/videocalc-db/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timelapsetech%2Fvideocalc-db/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31952254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"ssl_error","status_checked_at":"2026-04-18T00:39:20.671Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["codec","transcode","video"],"created_at":"2026-04-18T01:09:32.181Z","updated_at":"2026-04-18T01:09:32.933Z","avatar_url":"https://github.com/timelapsetech.png","language":"TypeScript","readme":"# Video File Size Calculator\n\nA professional-grade video file size calculator for the media industry, built with React and TypeScript.\n\n## Features\n\n- **Professional Codec Database**: Comprehensive support for industry-standard codecs including ProRes, DNxHD, RAW formats, and broadcast standards\n- **Firebase Integration**: Real-time codec database stored in Firebase Firestore with admin management\n- **Real-time Calculations**: Automatic file size calculations as you adjust parameters - no calculate button needed\n- **Frame Rate Accuracy**: Precise calculations supporting all professional frame rates from 23.98 to 240 fps\n- **Workflow Presets**: Quick-start configurations for common workflows like YouTube delivery, Netflix specs, and broadcast standards\n- **Shareable Links**: Generate shareable URLs for specific calculations to collaborate with team members\n- **Admin Panel**: Comprehensive management system for codec database and default presets with full CRUD operations\n- **Usage Analytics**: Track popular configurations and usage patterns (shared across all users, fully anonymous, never linked to user identity)\n- **Statistics Dashboard**: Comprehensive data visualizations showing codec usage trends, resolution preferences, and bitrate distributions with enhanced Community Usage Analytics section\n- **Anonymous Tracking**: Privacy-focused statistics collection with no personally identifiable information stored. All statistics tracking is fully anonymous, only occurs with user consent, and can be opted out of at any time in your cookie preferences.\n- **Mobile Responsive**: Optimized for all device sizes with touch-friendly interface\n\n## Environment Variables\n\n### Environment Variables\n\nOnly these environment variables are needed:\n\n**For Netlify Deployment:**\n```\nVITE_GOOGLE_CLIENT_ID=your-google-oauth-client-id-here\nVITE_ADMIN_EMAILS=admin@example.com,another-admin@example.com\nVITE_GA_MEASUREMENT_ID=G-XXXXXXXXXX (optional)\nVITE_STATS_APP_SIGNATURE=your-unique-app-signature-here (required for statistics)\n```\n\n**For Local Development:**\n```\nVITE_GOOGLE_CLIENT_ID=your-google-oauth-client-id-here\nVITE_ADMIN_EMAILS=admin@example.com,another-admin@example.com\nVITE_GA_MEASUREMENT_ID=G-XXXXXXXXXX (optional)\nVITE_STATS_APP_SIGNATURE=your-unique-app-signature-here (required for statistics)\n```\n\n### For Local Development\n\n1. Copy `.env.example` to `.env`\n2. Fill in your Google OAuth credentials and admin emails\n\n```bash\ncp .env.example .env\n```\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n### Testing Statistics Service\n\nThe application includes a comprehensive testing utility for the statistics service functionality. This is particularly useful for developers working on the stats feature or troubleshooting issues.\n\n#### Browser Console Testing\n\nWhen running the development server, you can test the statistics service directly from the browser console:\n\n```javascript\n// Test all statistics functionality\nawait testStatsService.runAllTests();\n\n// Test individual components\nawait testStatsService.testSessionManager();\nawait testStatsService.testFirebaseConnection();\nawait testStatsService.testStatsTracking();\nawait testStatsService.testStatsRetrieval();\n```\n\n#### Available Test Functions\n\n- **`testSessionManager()`**: Verifies anonymous session ID generation and rate limiting\n- **`testFirebaseConnection()`**: Tests connectivity to Firestore database\n- **`testStatsTracking()`**: Validates calculation data tracking functionality\n- **`testStatsRetrieval()`**: Tests data aggregation and retrieval methods\n- **`runAllTests()`**: Executes all tests and provides a comprehensive summary\n\n#### Test Output\n\nThe testing utility provides detailed console output including:\n- Session information and rate limiting status\n- Firebase connection status\n- Statistics tracking success/failure\n- Data retrieval results with sample data\n- Comprehensive test results summary\n\nThis testing utility is automatically available in development mode and helps ensure the statistics feature is working correctly across different environments.\n\n## Admin Access\n\nAdmin access is restricted to authorized Google accounts specified in the `VITE_ADMIN_EMAILS` environment variable. Admins can:\n\n- Manage the codec database\n- Configure default presets\n- View usage analytics\n- Export/import data\n- Configure Google Analytics\n\n## Statistics Feature\n\nThe application includes comprehensive anonymous usage tracking and visualization:\n\n### Data Models\n- **CalculationData**: Tracks individual codec calculations with resolution, frame rate, and bitrate\n- **CodecStatDocument**: Firestore document structure for persistent statistics storage\n- **Aggregated Statistics**: Interfaces for popular codecs, resolution distribution, temporal trends, and bitrate ranges\n- **Chart Components**: Consistent API for data visualizations with dark theme support\n\n### Privacy \u0026 Security\n- **Anonymous Tracking**: No personally identifiable information is collected or stored\n- **Session-based**: Uses cryptographically secure session IDs for rate limiting\n- **GDPR Compliant**: Respects user consent preferences and provides opt-out mechanisms\n- **Secure Writes**: Application signature validation prevents external data manipulation\n\n### Visualizations\n- Popular codec configurations (bar charts)\n- Resolution usage distribution (pie charts)\n- Usage trends over time (line graphs)\n- Bitrate range distributions (doughnut charts)\n\n## Tech Stack\n\n- **Frontend**: React 18, TypeScript, Tailwind CSS\n- **Icons**: Lucide React\n- **Routing**: React Router\n- **Build Tool**: Vite\n- **Deployment**: Github Pages\n- **Database**: Firebase Firestore\n- **Charts**: Chart.js/Recharts (for statistics visualization)\n- **Analytics**: Google Analytics (configurable)\n\n## License\n\nThis project is supported by [mediasupplychain.org](https://mediasupplychain.org) and is free for all professionals in the media industry.\n\n## Version\n\nCurrent release: **0.9.1** (July 2025)\n\nThis is the first public-facing release of the Video File Size Calculator, featuring anonymous usage statistics tracking, full GDPR compliance, and clear privacy controls for all users.\n\n![Release](https://img.shields.io/badge/release-0.9.1-blue)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelapsetech%2Fvideocalc-db","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimelapsetech%2Fvideocalc-db","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimelapsetech%2Fvideocalc-db/lists"}