{"id":28957875,"url":"https://github.com/alexmayol/python-video-downloader","last_synced_at":"2025-06-23T22:07:56.765Z","repository":{"id":291335518,"uuid":"975139870","full_name":"AlexMayol/python-video-downloader","owner":"AlexMayol","description":"Easily download and compress videos from any public URL","archived":false,"fork":false,"pushed_at":"2025-05-03T23:15:48.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-04T00:23:28.213Z","etag":null,"topics":["performance","python","video"],"latest_commit_sha":null,"homepage":"","language":"Python","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/AlexMayol.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-04-29T21:07:35.000Z","updated_at":"2025-05-03T23:15:51.000Z","dependencies_parsed_at":"2025-05-04T00:23:30.990Z","dependency_job_id":"eecf9d5b-3a96-4573-91af-5b262c7e5ff0","html_url":"https://github.com/AlexMayol/python-video-downloader","commit_stats":null,"previous_names":["alexmayol/python-video-downloader"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlexMayol/python-video-downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexMayol%2Fpython-video-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexMayol%2Fpython-video-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexMayol%2Fpython-video-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexMayol%2Fpython-video-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexMayol","download_url":"https://codeload.github.com/AlexMayol/python-video-downloader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexMayol%2Fpython-video-downloader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261565385,"owners_count":23177755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["performance","python","video"],"created_at":"2025-06-23T22:07:55.343Z","updated_at":"2025-06-23T22:07:56.753Z","avatar_url":"https://github.com/AlexMayol.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Video Processor\n\nA tool for downloading and processing videos with configurable compression strategies.\n\n## Features\n\n- Download videos from URLs\n- Multiple compression strategies\n- Automatic thumbnail generation\n- Output to zip archive\n\n## Installation \u0026 Setup\n\n1. **Clone the repository:**\n\n```bash\ngit clone https://github.com/AlexMayol/python-video-downloader\ncd python-video-downloader\n```\n\n2. **Install dependencies and set up the environment:**\n\n```bash\nmake deps\n```\n\nThis will create a Python virtual environment, install all required dependencies from `requirements.txt`.\n\n## Usage\n\n### 1. Prepare your video list (videos.json)\n\nBefore running the project, create or edit a `videos.json` file in the project directory. This file should contain the list of videos you want to download and process, along with configuration options. For example:\n\n```json\n{\n  \"config\": {\n    \"max_width\": 300,\n    \"max_height\": 300,\n    \"compression_strategy\": \"balanced\"\n  },\n  \"videos\": [\n    {\n      \"name\": \"video1\",\n      \"url\": \"https://example.com/video1.mp4\"\n    },\n    {\n      \"name\": \"video2\",\n      \"url\": \"https://example.com/video2.mp4\"\n    }\n  ]\n}\n```\n\n- Each entry in the `videos` array should have a unique `name` and a direct `url` to the video file you want to download.\n- The `config` section allows you to set the maximum width/height and compression strategy for all videos.\n\n### 2. Run the Project\n\n```bash\nmake run\n```\n\nThis will activate the virtual environment and run the main video processing script (`video_processor.py`). The script will:\n\n- Download each video listed in `videos.json`.\n- Optimize and compress the videos according to your configuration.\n- Extract a thumbnail (poster) from each video.\n- Save all processed files in the `dist` directory and create a zip archive.\n\n### Clean Up\n\nTo remove the virtual environment and all generated files/directories:\n\n```bash\nmake clean\n```\n\n### Help\n\nTo see all available Makefile commands:\n\n```bash\nmake help\n```\n\n## Configuration\n\nCreate a `videos.json` file in the same directory as the executable with the following structure:\n\n```json\n{\n  \"config\": {\n    \"max_width\": 300,\n    \"max_height\": 300,\n    \"compression_strategy\": \"balanced\"\n  },\n  \"videos\": [\n    {\n      \"name\": \"video1\",\n      \"url\": \"https://example.com/video1.mp4\"\n    }\n  ]\n}\n```\n\n### Compression Strategies\n\n- `original`: No compression, keeps the original video file as-is\n- `relaxed`: Lossless compression with high quality (larger file size)\n- `balanced`: Balanced compression (default)\n- `aggressive`: Lossy compression for smaller file size\n\n## Output\n\nThe application creates:\n\n1. Processed videos in the `dist` directory\n2. Thumbnails for each video\n3. A zip archive containing all processed files\n\n## Development\n\n- To install or update dependencies, edit `requirements.txt` and run `make deps`.\n- To run the project, use `make run`.\n- To clean up, use `make clean`.\n\n## Requirements\n\n- Python 3.11+\n- GNU Make\n\n## Notes\n\n- The application creates temporary directories (`downloads`, `optimized`, `frames`) during processing\n- These directories are automatically cleaned up after processing\n- The final output is available in the `dist` directory\n- A zip archive is created containing all processed files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmayol%2Fpython-video-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexmayol%2Fpython-video-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexmayol%2Fpython-video-downloader/lists"}