{"id":31647525,"url":"https://github.com/tdanks2000/vtools","last_synced_at":"2026-05-16T11:32:04.066Z","repository":{"id":313355867,"uuid":"1025139672","full_name":"TDanks2000/vtools","owner":"TDanks2000","description":"A command-line tool to delete videos shorter than a specified duration from a folder.","archived":false,"fork":false,"pushed_at":"2025-07-23T19:36:44.000Z","size":11,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T07:31:59.567Z","etag":null,"topics":["batch-processing","cleaner","cli","cross-platform","ffmpeg","ffprobe","tools","video","video-tools"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/TDanks2000.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-23T19:35:33.000Z","updated_at":"2025-09-01T08:57:33.000Z","dependencies_parsed_at":"2025-11-18T00:02:00.922Z","dependency_job_id":null,"html_url":"https://github.com/TDanks2000/vtools","commit_stats":null,"previous_names":["tdanks2000/vtools"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TDanks2000/vtools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDanks2000%2Fvtools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDanks2000%2Fvtools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDanks2000%2Fvtools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDanks2000%2Fvtools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TDanks2000","download_url":"https://codeload.github.com/TDanks2000/vtools/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TDanks2000%2Fvtools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["batch-processing","cleaner","cli","cross-platform","ffmpeg","ffprobe","tools","video","video-tools"],"created_at":"2025-10-07T06:19:44.048Z","updated_at":"2026-05-16T11:32:04.048Z","avatar_url":"https://github.com/TDanks2000.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VTools - Video Cleanup CLI\n\nA command-line tool to delete videos shorter than a specified duration from a folder.\n\n## Features\n\n- Delete videos that are shorter than a specified minimum duration\n- Support for various video formats (mp4, avi, mkv, mov, wmv, flv, webm, m4v, 3gp, mpg, mpeg)\n- Flexible duration input using natural language (e.g., \"30 minutes\", \"1 hour\", \"90s\")\n- Dry-run mode to preview what would be deleted\n- Progress tracking and detailed output\n\n## Prerequisites\n\n✅ **No external dependencies required!** FFmpeg is now bundled with the package using `ffmpeg-static`.\n\n## Installation\n\n1. Clone or download this repository\n2. Install dependencies:\n   ```bash\n   bun install\n   ```\n\n## Usage\n\n### Basic Command\n\n```bash\nbun run start clean \u003cfolder\u003e \u003cduration\u003e [options]\n```\n\n### Examples\n\n```bash\n# Delete videos shorter than 30 minutes\nbun run start clean ./videos \"30 minutes\"\n\n# Delete videos shorter than 1 hour\nbun run start clean C:\\Videos \"1 hour\"\n\n# Delete videos shorter than 90 seconds\nbun run start clean ./downloads \"90s\"\n\n# Preview what would be deleted (dry run)\nbun run start clean ./videos \"5 minutes\" --dry-run\n```\n\n### Duration Formats\n\nThe tool accepts various duration formats thanks to the `ms` library:\n\n- `\"30 minutes\"` or `\"30m\"`\n- `\"1 hour\"` or `\"1h\"`\n- `\"90 seconds\"` or `\"90s\"`\n- `\"2.5 hours\"`\n- `\"45min\"`\n\n### Options\n\n- `--dry-run`: Preview what would be deleted without actually deleting files\n\n### Global Installation (Optional)\n\nTo use the tool globally:\n\n```bash\nbun link\nvtools clean \u003cfolder\u003e \u003cduration\u003e [options]\n```\n\n## How It Works\n\n1. Scans the specified folder for video files\n2. Uses FFprobe to determine the duration of each video\n3. Compares the duration against the specified minimum\n4. Deletes videos that are shorter than the minimum duration\n5. Provides detailed progress and summary information\n\n## Safety Features\n\n- **Dry-run mode**: Test the command safely before actual deletion\n- **File validation**: Only processes recognized video file extensions\n- **Error handling**: Skips files that can't be processed instead of crashing\n- **Detailed logging**: Shows exactly what's happening with each file\n\n## Supported Video Formats\n\n- MP4 (.mp4)\n- AVI (.avi)\n- MKV (.mkv)\n- MOV (.mov)\n- WMV (.wmv)\n- FLV (.flv)\n- WebM (.webm)\n- M4V (.m4v)\n- 3GP (.3gp)\n- MPG/MPEG (.mpg, .mpeg)\n\n## Example Output\n\n```\n🎬 Video Cleanup Tool\nFolder: C:\\Videos\nFound 5 video file(s) to check...\nMinimum duration: 30 minutes\n\nChecking (1/5): short_clip.mp4\n  Duration: 2 minutes\n  ✅ Deleted (shorter than minimum)\n\nChecking (2/5): movie.mkv\n  Duration: 1 hour 45 minutes\n  ✅ Keeping (meets minimum duration)\n\n--- Summary ---\nFiles checked: 5\nFiles deleted: 2\n```\n\n## Troubleshooting\n\n### Permission errors\n\nEnsure you have write permissions to the folder containing the videos.\n\n### \"Could not determine duration\" warnings\n\nThis usually means the file is corrupted or not a valid video file. The tool will skip these files.\n\n## Development\n\n```bash\n# Run in development mode with auto-reload\nbun run dev\n\n# Build for production\nbun run build\n```\n\n## License\n\nMIT License - feel free to use and modify as needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdanks2000%2Fvtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftdanks2000%2Fvtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftdanks2000%2Fvtools/lists"}