vidio-cli 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/CHANGELOG.md +8 -0
  2. vidio_cli-0.1.2/PKG-INFO +205 -0
  3. vidio_cli-0.1.2/README.md +176 -0
  4. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/pyproject.toml +2 -1
  5. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/uv.lock +3 -1
  6. vidio_cli-0.1.0/PKG-INFO +0 -238
  7. vidio_cli-0.1.0/README.md +0 -210
  8. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/.gitattributes +0 -0
  9. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/.github/workflows/ci.yml +0 -0
  10. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/.github/workflows/publish.yml +0 -0
  11. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/.gitignore +0 -0
  12. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/AGENTS.md +0 -0
  13. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/LICENSE +0 -0
  14. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/__init__.py +0 -0
  15. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/cli.py +0 -0
  16. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/__init__.py +0 -0
  17. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/concat.py +0 -0
  18. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/crop.py +0 -0
  19. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/grid.py +0 -0
  20. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/info.py +0 -0
  21. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/list.py +0 -0
  22. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/resize.py +0 -0
  23. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/to_gif.py +0 -0
  24. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/commands/trim.py +0 -0
  25. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/config.py +0 -0
  26. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/src/vidio_cli/ffmpeg_utils.py +0 -0
  27. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/assets/sample.mp4 +0 -0
  28. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/conftest.py +0 -0
  29. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_cli.py +0 -0
  30. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_concat.py +0 -0
  31. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_crop.py +0 -0
  32. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_grid.py +0 -0
  33. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_info.py +0 -0
  34. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_list.py +0 -0
  35. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_resize.py +0 -0
  36. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_to_gif.py +0 -0
  37. {vidio_cli-0.1.0 → vidio_cli-0.1.2}/tests/test_trim.py +0 -0
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 0.1.2 - 2026-06-15
6
+
7
+ - Fixed packaged installs by declaring `click` as a direct runtime dependency.
8
+
9
+ ## 0.1.1 - 2026-02-21
10
+
11
+ - Updated README with PyPI release workflow and trusted publishing setup.
12
+
5
13
  ## 0.1.0 - 2026-02-06
6
14
 
7
15
  First public release of `vidio-cli`.
@@ -0,0 +1,205 @@
1
+ Metadata-Version: 2.4
2
+ Name: vidio-cli
3
+ Version: 0.1.2
4
+ Summary: A simple and easy-to-use ffmpeg wrapper for common video operations
5
+ Project-URL: Homepage, https://github.com/matanb/vidio-cli
6
+ Project-URL: Repository, https://github.com/matanb/vidio-cli
7
+ Project-URL: Issues, https://github.com/matanb/vidio-cli/issues
8
+ Author-email: Matan Ben-Yosef <matan.ben.yosef@gmail.com>
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: cli,ffmpeg,gif,media,video
12
+ Classifier: Development Status :: 3 - Alpha
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Intended Audience :: End Users/Desktop
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Topic :: Multimedia :: Video
23
+ Classifier: Topic :: Utilities
24
+ Requires-Python: >=3.10
25
+ Requires-Dist: click>=8.0.0
26
+ Requires-Dist: rich>=13.5.0
27
+ Requires-Dist: typer>=0.9.0
28
+ Description-Content-Type: text/markdown
29
+
30
+ # vidio
31
+
32
+ **Stop Googling ffmpeg flags.** Just tell `vidio` what you want.
33
+
34
+ ```bash
35
+ vidio trim long-meeting.mp4 highlight.mp4 --start 1:30 --duration 45
36
+ vidio resize raw-footage.mp4 web-ready.mp4 --width 1280
37
+ vidio to-gif funny-moment.mp4 reaction.gif --fps 15 --quality high
38
+ ```
39
+
40
+ `vidio` is a CLI tool that wraps ffmpeg with sane defaults so you can trim, resize, crop, concatenate, and convert videos without memorizing arcane flags every single time.
41
+
42
+ ---
43
+
44
+ ## Install
45
+
46
+ Requires Python 3.10+ and [ffmpeg](https://ffmpeg.org/) in your PATH.
47
+
48
+ ```bash
49
+ # Recommended — install as a standalone tool with uv
50
+ uv tool install vidio-cli
51
+
52
+ # Or run it directly without installing
53
+ uvx vidio-cli trim input.mp4 output.mp4 --start 10 --end 30
54
+
55
+ # Or if you prefer pip
56
+ pip install vidio-cli
57
+ ```
58
+
59
+ Once installed, the `vidio` command is available globally.
60
+
61
+ ---
62
+
63
+ ## What's in the box
64
+
65
+ | Command | What it does |
66
+ |---------|-------------|
67
+ | `vidio ls` | Find video files in a directory |
68
+ | `vidio info` | Inspect metadata, codecs, resolution |
69
+ | `vidio trim` | Cut a clip by time range |
70
+ | `vidio resize` | Scale to target dimensions or percentage |
71
+ | `vidio crop` | Crop to aspect ratios like 16:9, 9:16, square |
72
+ | `vidio concat` | Place videos side-by-side or stacked |
73
+ | `vidio grid` | Build multi-video grid layouts |
74
+ | `vidio to-gif` | Convert clips to GIF with palette optimization |
75
+
76
+ That's it. No bloat, no kitchen-sink features. Just the things you actually do with video files on a regular basis.
77
+
78
+ ---
79
+
80
+ ## Usage
81
+
82
+ Every command has `--help`:
83
+
84
+ ```bash
85
+ vidio --help
86
+ vidio trim --help
87
+ ```
88
+
89
+ ### Trim
90
+
91
+ ```bash
92
+ # Cut from 30s to 1:30
93
+ vidio trim input.mp4 clip.mp4 --start 30 --end 1:30
94
+
95
+ # Take 45 seconds starting at 1:30
96
+ vidio trim input.mp4 clip.mp4 --start 1:30 --duration 45
97
+
98
+ # Chop off everything after 2:15
99
+ vidio trim input.mp4 clip.mp4 --end 2:15
100
+ ```
101
+
102
+ ### Resize
103
+
104
+ ```bash
105
+ # Scale to a specific width (height calculated automatically)
106
+ vidio resize input.mp4 output.mp4 --width 1280
107
+
108
+ # Scale to 50%
109
+ vidio resize input.mp4 output.mp4 --scale 0.5
110
+
111
+ # Force exact dimensions (may distort)
112
+ vidio resize input.mp4 output.mp4 -w 1920 -h 1080 --force-aspect
113
+ ```
114
+
115
+ ### Crop
116
+
117
+ ```bash
118
+ # Square crop, centered (great for Instagram)
119
+ vidio crop input.mp4 output.mp4 --preset center-square
120
+
121
+ # Vertical video for Reels/TikTok
122
+ vidio crop input.mp4 output.mp4 --preset 9:16
123
+
124
+ # Widescreen
125
+ vidio crop input.mp4 output.mp4 --preset 16:9
126
+
127
+ # Manual crop with offset
128
+ vidio crop input.mp4 output.mp4 -w 1280 -h 720 --x 100 --y 50
129
+ ```
130
+
131
+ ### Concat
132
+
133
+ ```bash
134
+ # Side-by-side
135
+ vidio concat left.mp4 right.mp4 combined.mp4
136
+
137
+ # Stacked vertically
138
+ vidio concat top.mp4 bottom.mp4 combined.mp4 --vertical
139
+ ```
140
+
141
+ ### Grid
142
+
143
+ ```bash
144
+ # Auto-arranged grid
145
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4
146
+
147
+ # Explicit 2x2 with padding
148
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --rows 2 --cols 2 --padding 10
149
+
150
+ # Custom cell size
151
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --width 640 --height 360
152
+ ```
153
+
154
+ ### Convert to GIF
155
+
156
+ ```bash
157
+ # Good defaults out of the box
158
+ vidio to-gif clip.mp4 output.gif
159
+
160
+ # Optimized for small file size
161
+ vidio to-gif clip.mp4 output.gif --scale 0.3 --fps 8 --quality low
162
+
163
+ # Specific time range
164
+ vidio to-gif clip.mp4 output.gif --start 10 --duration 5
165
+ ```
166
+
167
+ ### List & Info
168
+
169
+ ```bash
170
+ # Quick ls-style listing
171
+ vidio ls
172
+
173
+ # Detailed view with duration, resolution, codec
174
+ vidio ls --list
175
+
176
+ # Recursive search
177
+ vidio ls --recursive
178
+
179
+ # JSON output (handy for scripting)
180
+ vidio ls --json
181
+
182
+ # Full metadata for a single file
183
+ vidio info video.mp4
184
+ vidio info video.mp4 --json
185
+ ```
186
+
187
+ ---
188
+
189
+ ## Development
190
+
191
+ ```bash
192
+ git clone https://github.com/matanb/vidio-cli.git
193
+ cd vidio-cli
194
+ uv sync --group dev
195
+
196
+ # Run tests
197
+ uv run pytest -q
198
+
199
+ # Lint
200
+ uv run ruff check .
201
+ ```
202
+
203
+ ## License
204
+
205
+ MIT
@@ -0,0 +1,176 @@
1
+ # vidio
2
+
3
+ **Stop Googling ffmpeg flags.** Just tell `vidio` what you want.
4
+
5
+ ```bash
6
+ vidio trim long-meeting.mp4 highlight.mp4 --start 1:30 --duration 45
7
+ vidio resize raw-footage.mp4 web-ready.mp4 --width 1280
8
+ vidio to-gif funny-moment.mp4 reaction.gif --fps 15 --quality high
9
+ ```
10
+
11
+ `vidio` is a CLI tool that wraps ffmpeg with sane defaults so you can trim, resize, crop, concatenate, and convert videos without memorizing arcane flags every single time.
12
+
13
+ ---
14
+
15
+ ## Install
16
+
17
+ Requires Python 3.10+ and [ffmpeg](https://ffmpeg.org/) in your PATH.
18
+
19
+ ```bash
20
+ # Recommended — install as a standalone tool with uv
21
+ uv tool install vidio-cli
22
+
23
+ # Or run it directly without installing
24
+ uvx vidio-cli trim input.mp4 output.mp4 --start 10 --end 30
25
+
26
+ # Or if you prefer pip
27
+ pip install vidio-cli
28
+ ```
29
+
30
+ Once installed, the `vidio` command is available globally.
31
+
32
+ ---
33
+
34
+ ## What's in the box
35
+
36
+ | Command | What it does |
37
+ |---------|-------------|
38
+ | `vidio ls` | Find video files in a directory |
39
+ | `vidio info` | Inspect metadata, codecs, resolution |
40
+ | `vidio trim` | Cut a clip by time range |
41
+ | `vidio resize` | Scale to target dimensions or percentage |
42
+ | `vidio crop` | Crop to aspect ratios like 16:9, 9:16, square |
43
+ | `vidio concat` | Place videos side-by-side or stacked |
44
+ | `vidio grid` | Build multi-video grid layouts |
45
+ | `vidio to-gif` | Convert clips to GIF with palette optimization |
46
+
47
+ That's it. No bloat, no kitchen-sink features. Just the things you actually do with video files on a regular basis.
48
+
49
+ ---
50
+
51
+ ## Usage
52
+
53
+ Every command has `--help`:
54
+
55
+ ```bash
56
+ vidio --help
57
+ vidio trim --help
58
+ ```
59
+
60
+ ### Trim
61
+
62
+ ```bash
63
+ # Cut from 30s to 1:30
64
+ vidio trim input.mp4 clip.mp4 --start 30 --end 1:30
65
+
66
+ # Take 45 seconds starting at 1:30
67
+ vidio trim input.mp4 clip.mp4 --start 1:30 --duration 45
68
+
69
+ # Chop off everything after 2:15
70
+ vidio trim input.mp4 clip.mp4 --end 2:15
71
+ ```
72
+
73
+ ### Resize
74
+
75
+ ```bash
76
+ # Scale to a specific width (height calculated automatically)
77
+ vidio resize input.mp4 output.mp4 --width 1280
78
+
79
+ # Scale to 50%
80
+ vidio resize input.mp4 output.mp4 --scale 0.5
81
+
82
+ # Force exact dimensions (may distort)
83
+ vidio resize input.mp4 output.mp4 -w 1920 -h 1080 --force-aspect
84
+ ```
85
+
86
+ ### Crop
87
+
88
+ ```bash
89
+ # Square crop, centered (great for Instagram)
90
+ vidio crop input.mp4 output.mp4 --preset center-square
91
+
92
+ # Vertical video for Reels/TikTok
93
+ vidio crop input.mp4 output.mp4 --preset 9:16
94
+
95
+ # Widescreen
96
+ vidio crop input.mp4 output.mp4 --preset 16:9
97
+
98
+ # Manual crop with offset
99
+ vidio crop input.mp4 output.mp4 -w 1280 -h 720 --x 100 --y 50
100
+ ```
101
+
102
+ ### Concat
103
+
104
+ ```bash
105
+ # Side-by-side
106
+ vidio concat left.mp4 right.mp4 combined.mp4
107
+
108
+ # Stacked vertically
109
+ vidio concat top.mp4 bottom.mp4 combined.mp4 --vertical
110
+ ```
111
+
112
+ ### Grid
113
+
114
+ ```bash
115
+ # Auto-arranged grid
116
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4
117
+
118
+ # Explicit 2x2 with padding
119
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --rows 2 --cols 2 --padding 10
120
+
121
+ # Custom cell size
122
+ vidio grid a.mp4 b.mp4 c.mp4 d.mp4 mosaic.mp4 --width 640 --height 360
123
+ ```
124
+
125
+ ### Convert to GIF
126
+
127
+ ```bash
128
+ # Good defaults out of the box
129
+ vidio to-gif clip.mp4 output.gif
130
+
131
+ # Optimized for small file size
132
+ vidio to-gif clip.mp4 output.gif --scale 0.3 --fps 8 --quality low
133
+
134
+ # Specific time range
135
+ vidio to-gif clip.mp4 output.gif --start 10 --duration 5
136
+ ```
137
+
138
+ ### List & Info
139
+
140
+ ```bash
141
+ # Quick ls-style listing
142
+ vidio ls
143
+
144
+ # Detailed view with duration, resolution, codec
145
+ vidio ls --list
146
+
147
+ # Recursive search
148
+ vidio ls --recursive
149
+
150
+ # JSON output (handy for scripting)
151
+ vidio ls --json
152
+
153
+ # Full metadata for a single file
154
+ vidio info video.mp4
155
+ vidio info video.mp4 --json
156
+ ```
157
+
158
+ ---
159
+
160
+ ## Development
161
+
162
+ ```bash
163
+ git clone https://github.com/matanb/vidio-cli.git
164
+ cd vidio-cli
165
+ uv sync --group dev
166
+
167
+ # Run tests
168
+ uv run pytest -q
169
+
170
+ # Lint
171
+ uv run ruff check .
172
+ ```
173
+
174
+ ## License
175
+
176
+ MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vidio-cli"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "A simple and easy-to-use ffmpeg wrapper for common video operations"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -24,6 +24,7 @@ classifiers = [
24
24
  "Topic :: Utilities",
25
25
  ]
26
26
  dependencies = [
27
+ "click>=8.0.0",
27
28
  "typer>=0.9.0",
28
29
  "rich>=13.5.0",
29
30
  ]
@@ -336,9 +336,10 @@ wheels = [
336
336
 
337
337
  [[package]]
338
338
  name = "vidio-cli"
339
- version = "0.1.0"
339
+ version = "0.1.2"
340
340
  source = { editable = "." }
341
341
  dependencies = [
342
+ { name = "click" },
342
343
  { name = "rich" },
343
344
  { name = "typer" },
344
345
  ]
@@ -352,6 +353,7 @@ dev = [
352
353
 
353
354
  [package.metadata]
354
355
  requires-dist = [
356
+ { name = "click", specifier = ">=8.0.0" },
355
357
  { name = "rich", specifier = ">=13.5.0" },
356
358
  { name = "typer", specifier = ">=0.9.0" },
357
359
  ]
vidio_cli-0.1.0/PKG-INFO DELETED
@@ -1,238 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: vidio-cli
3
- Version: 0.1.0
4
- Summary: A simple and easy-to-use ffmpeg wrapper for common video operations
5
- Project-URL: Homepage, https://github.com/matanb/vidio-cli
6
- Project-URL: Repository, https://github.com/matanb/vidio-cli
7
- Project-URL: Issues, https://github.com/matanb/vidio-cli/issues
8
- Author-email: Matan Ben-Yosef <matan.ben.yosef@gmail.com>
9
- License-Expression: MIT
10
- License-File: LICENSE
11
- Keywords: cli,ffmpeg,gif,media,video
12
- Classifier: Development Status :: 3 - Alpha
13
- Classifier: Environment :: Console
14
- Classifier: Intended Audience :: Developers
15
- Classifier: Intended Audience :: End Users/Desktop
16
- Classifier: License :: OSI Approved :: MIT License
17
- Classifier: Operating System :: OS Independent
18
- Classifier: Programming Language :: Python :: 3
19
- Classifier: Programming Language :: Python :: 3.10
20
- Classifier: Programming Language :: Python :: 3.11
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Topic :: Multimedia :: Video
23
- Classifier: Topic :: Utilities
24
- Requires-Python: >=3.10
25
- Requires-Dist: rich>=13.5.0
26
- Requires-Dist: typer>=0.9.0
27
- Description-Content-Type: text/markdown
28
-
29
- # vidio-cli
30
-
31
- A simple and easy-to-use ffmpeg wrapper for common video operations.
32
-
33
- ## Features
34
-
35
- - **Stupidly Easy:** Simple CLI commands for common video operations.
36
- - **Powerful Defaults:** Sensible defaults make it work great out of the box.
37
- - **Focused v1 Scope:** Core commands people use repeatedly, without feature bloat.
38
-
39
- ## Requirements
40
-
41
- - Python 3.10+
42
- - ffmpeg (must be installed and in your PATH)
43
-
44
- ## v1 Command Scope
45
-
46
- `vidio-cli` 0.1.0 intentionally focuses on practical, high-frequency tasks:
47
-
48
- - `list` / `ls`: find video files quickly
49
- - `info`: inspect metadata and streams
50
- - `trim`: cut clips by time range
51
- - `resize`: scale for delivery targets
52
- - `crop`: convert to target aspect ratios
53
- - `concat`: place videos side-by-side or stacked
54
- - `grid`: build multi-video collages
55
- - `to-gif`: convert clips to GIF with good defaults
56
-
57
- Commands that are less consistently useful (for example, niche one-off transforms) are deferred to later releases.
58
-
59
- ## Installation
60
-
61
- ```bash
62
- # Using pip
63
- pip install vidio-cli
64
-
65
- # Using uv
66
- uv pip install vidio-cli
67
- ```
68
-
69
- ## Usage
70
-
71
- ```bash
72
- # Get help
73
- vidio --help
74
-
75
- # Get help for a specific command
76
- vidio concat --help
77
- ```
78
-
79
- ### Concatenate Videos
80
-
81
- ```bash
82
- # Concatenate videos horizontally
83
- vidio concat video1.mp4 video2.mp4 output.mp4
84
-
85
- # Concatenate videos vertically
86
- vidio concat video1.mp4 video2.mp4 output.mp4 --vertical
87
- ```
88
-
89
- ### List Video Files
90
-
91
- ```bash
92
- # List videos in current directory (ls-style output)
93
- vidio list
94
- # or use the shorter alias
95
- vidio ls
96
-
97
- # List with detailed information (duration, resolution, codec)
98
- vidio ls --list
99
-
100
- # Search recursively in subdirectories
101
- vidio ls --recursive
102
-
103
- # Use table format instead of ls-style
104
- vidio ls --table
105
-
106
- # Get JSON output for scripting
107
- vidio ls --json
108
- ```
109
-
110
- ### Video Information
111
-
112
- ```bash
113
- # Display detailed metadata about a video file
114
- vidio info video.mp4
115
-
116
- # Get machine-readable JSON output
117
- vidio info video.mp4 --json
118
-
119
- # Calculate exact frame count (slower but accurate)
120
- vidio info video.mp4 --exact-frames
121
- ```
122
-
123
- ### Create Video Grids
124
-
125
- ```bash
126
- # Arrange videos in a 2x2 grid (auto-calculated)
127
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4
128
-
129
- # Specify grid dimensions
130
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --rows 2 --cols 2
131
-
132
- # Control cell size and add padding
133
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --width 640 --height 360 --padding 10
134
-
135
- # Change background color
136
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --background white
137
- ```
138
-
139
- ### Trim Videos
140
-
141
- ```bash
142
- # Trim from 30 seconds to 90 seconds
143
- vidio trim input.mp4 output.mp4 --start 30 --end 90
144
-
145
- # Trim from 1:30 for 45 seconds duration
146
- vidio trim input.mp4 output.mp4 --start 1:30 --duration 45
147
-
148
- # Trim from beginning to 2:15
149
- vidio trim input.mp4 output.mp4 --end 2:15
150
-
151
- # Trim using different time formats
152
- vidio trim input.mp4 output.mp4 --start 0:01:30 --end 0:02:45
153
- ```
154
-
155
- ### Resize Videos
156
-
157
- ```bash
158
- # Resize to specific dimensions (maintains aspect ratio)
159
- vidio resize input.mp4 output.mp4 --width 1920 --height 1080
160
-
161
- # Scale by percentage
162
- vidio resize input.mp4 output.mp4 --scale 0.5 # 50% of original size
163
-
164
- # Resize width only (height auto-calculated)
165
- vidio resize input.mp4 output.mp4 --width 1280
166
-
167
- # Resize height only (width auto-calculated)
168
- vidio resize input.mp4 output.mp4 --height 720
169
-
170
- # Force exact dimensions (may distort)
171
- vidio resize input.mp4 output.mp4 -w 1920 -h 1080 --force-aspect
172
- ```
173
-
174
- ### Convert to GIF
175
-
176
- ```bash
177
- # Basic conversion with optimized palette
178
- vidio to-gif video.mp4 output.gif
179
-
180
- # High quality with custom frame rate
181
- vidio to-gif video.mp4 output.gif --fps 15 --quality high
182
-
183
- # Small file size for web
184
- vidio to-gif video.mp4 output.gif --scale 0.3 --fps 8 --quality low
185
-
186
- # Convert specific time range
187
- vidio to-gif video.mp4 output.gif --start 10 --duration 5
188
-
189
- # Custom width with different dithering
190
- vidio to-gif video.mp4 output.gif --width 800 --dither bayer
191
-
192
- # Fast conversion (skip optimization)
193
- vidio to-gif video.mp4 output.gif --no-optimize
194
- ```
195
-
196
- ### Crop Videos
197
-
198
- ```bash
199
- # Crop to center square (perfect for Instagram)
200
- vidio crop input.mp4 output.mp4 --preset center-square
201
-
202
- # Crop to 16:9 aspect ratio
203
- vidio crop input.mp4 output.mp4 --preset 16:9
204
-
205
- # Crop to 9:16 aspect ratio (vertical/portrait)
206
- vidio crop input.mp4 output.mp4 --preset 9:16
207
-
208
- # Crop to 4:3 aspect ratio
209
- vidio crop input.mp4 output.mp4 --preset 4:3
210
-
211
- # Custom crop region (centered)
212
- vidio crop input.mp4 output.mp4 --width 1280 --height 720
213
-
214
- # Custom crop with specific position
215
- vidio crop input.mp4 output.mp4 -w 1280 -h 720 --x 100 --y 50
216
- ```
217
-
218
-
219
- ## Development
220
-
221
- ```bash
222
- # Clone the repo
223
- git clone https://github.com/matanb/vidio-cli.git
224
- cd vidio-cli
225
-
226
- # Install dependencies
227
- uv sync --group dev
228
-
229
- # Run tests
230
- uv run pytest -q
231
-
232
- # Run lint
233
- uv run ruff check .
234
- ```
235
-
236
- ## License
237
-
238
- MIT
vidio_cli-0.1.0/README.md DELETED
@@ -1,210 +0,0 @@
1
- # vidio-cli
2
-
3
- A simple and easy-to-use ffmpeg wrapper for common video operations.
4
-
5
- ## Features
6
-
7
- - **Stupidly Easy:** Simple CLI commands for common video operations.
8
- - **Powerful Defaults:** Sensible defaults make it work great out of the box.
9
- - **Focused v1 Scope:** Core commands people use repeatedly, without feature bloat.
10
-
11
- ## Requirements
12
-
13
- - Python 3.10+
14
- - ffmpeg (must be installed and in your PATH)
15
-
16
- ## v1 Command Scope
17
-
18
- `vidio-cli` 0.1.0 intentionally focuses on practical, high-frequency tasks:
19
-
20
- - `list` / `ls`: find video files quickly
21
- - `info`: inspect metadata and streams
22
- - `trim`: cut clips by time range
23
- - `resize`: scale for delivery targets
24
- - `crop`: convert to target aspect ratios
25
- - `concat`: place videos side-by-side or stacked
26
- - `grid`: build multi-video collages
27
- - `to-gif`: convert clips to GIF with good defaults
28
-
29
- Commands that are less consistently useful (for example, niche one-off transforms) are deferred to later releases.
30
-
31
- ## Installation
32
-
33
- ```bash
34
- # Using pip
35
- pip install vidio-cli
36
-
37
- # Using uv
38
- uv pip install vidio-cli
39
- ```
40
-
41
- ## Usage
42
-
43
- ```bash
44
- # Get help
45
- vidio --help
46
-
47
- # Get help for a specific command
48
- vidio concat --help
49
- ```
50
-
51
- ### Concatenate Videos
52
-
53
- ```bash
54
- # Concatenate videos horizontally
55
- vidio concat video1.mp4 video2.mp4 output.mp4
56
-
57
- # Concatenate videos vertically
58
- vidio concat video1.mp4 video2.mp4 output.mp4 --vertical
59
- ```
60
-
61
- ### List Video Files
62
-
63
- ```bash
64
- # List videos in current directory (ls-style output)
65
- vidio list
66
- # or use the shorter alias
67
- vidio ls
68
-
69
- # List with detailed information (duration, resolution, codec)
70
- vidio ls --list
71
-
72
- # Search recursively in subdirectories
73
- vidio ls --recursive
74
-
75
- # Use table format instead of ls-style
76
- vidio ls --table
77
-
78
- # Get JSON output for scripting
79
- vidio ls --json
80
- ```
81
-
82
- ### Video Information
83
-
84
- ```bash
85
- # Display detailed metadata about a video file
86
- vidio info video.mp4
87
-
88
- # Get machine-readable JSON output
89
- vidio info video.mp4 --json
90
-
91
- # Calculate exact frame count (slower but accurate)
92
- vidio info video.mp4 --exact-frames
93
- ```
94
-
95
- ### Create Video Grids
96
-
97
- ```bash
98
- # Arrange videos in a 2x2 grid (auto-calculated)
99
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4
100
-
101
- # Specify grid dimensions
102
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --rows 2 --cols 2
103
-
104
- # Control cell size and add padding
105
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --width 640 --height 360 --padding 10
106
-
107
- # Change background color
108
- vidio grid video1.mp4 video2.mp4 video3.mp4 video4.mp4 output.mp4 --background white
109
- ```
110
-
111
- ### Trim Videos
112
-
113
- ```bash
114
- # Trim from 30 seconds to 90 seconds
115
- vidio trim input.mp4 output.mp4 --start 30 --end 90
116
-
117
- # Trim from 1:30 for 45 seconds duration
118
- vidio trim input.mp4 output.mp4 --start 1:30 --duration 45
119
-
120
- # Trim from beginning to 2:15
121
- vidio trim input.mp4 output.mp4 --end 2:15
122
-
123
- # Trim using different time formats
124
- vidio trim input.mp4 output.mp4 --start 0:01:30 --end 0:02:45
125
- ```
126
-
127
- ### Resize Videos
128
-
129
- ```bash
130
- # Resize to specific dimensions (maintains aspect ratio)
131
- vidio resize input.mp4 output.mp4 --width 1920 --height 1080
132
-
133
- # Scale by percentage
134
- vidio resize input.mp4 output.mp4 --scale 0.5 # 50% of original size
135
-
136
- # Resize width only (height auto-calculated)
137
- vidio resize input.mp4 output.mp4 --width 1280
138
-
139
- # Resize height only (width auto-calculated)
140
- vidio resize input.mp4 output.mp4 --height 720
141
-
142
- # Force exact dimensions (may distort)
143
- vidio resize input.mp4 output.mp4 -w 1920 -h 1080 --force-aspect
144
- ```
145
-
146
- ### Convert to GIF
147
-
148
- ```bash
149
- # Basic conversion with optimized palette
150
- vidio to-gif video.mp4 output.gif
151
-
152
- # High quality with custom frame rate
153
- vidio to-gif video.mp4 output.gif --fps 15 --quality high
154
-
155
- # Small file size for web
156
- vidio to-gif video.mp4 output.gif --scale 0.3 --fps 8 --quality low
157
-
158
- # Convert specific time range
159
- vidio to-gif video.mp4 output.gif --start 10 --duration 5
160
-
161
- # Custom width with different dithering
162
- vidio to-gif video.mp4 output.gif --width 800 --dither bayer
163
-
164
- # Fast conversion (skip optimization)
165
- vidio to-gif video.mp4 output.gif --no-optimize
166
- ```
167
-
168
- ### Crop Videos
169
-
170
- ```bash
171
- # Crop to center square (perfect for Instagram)
172
- vidio crop input.mp4 output.mp4 --preset center-square
173
-
174
- # Crop to 16:9 aspect ratio
175
- vidio crop input.mp4 output.mp4 --preset 16:9
176
-
177
- # Crop to 9:16 aspect ratio (vertical/portrait)
178
- vidio crop input.mp4 output.mp4 --preset 9:16
179
-
180
- # Crop to 4:3 aspect ratio
181
- vidio crop input.mp4 output.mp4 --preset 4:3
182
-
183
- # Custom crop region (centered)
184
- vidio crop input.mp4 output.mp4 --width 1280 --height 720
185
-
186
- # Custom crop with specific position
187
- vidio crop input.mp4 output.mp4 -w 1280 -h 720 --x 100 --y 50
188
- ```
189
-
190
-
191
- ## Development
192
-
193
- ```bash
194
- # Clone the repo
195
- git clone https://github.com/matanb/vidio-cli.git
196
- cd vidio-cli
197
-
198
- # Install dependencies
199
- uv sync --group dev
200
-
201
- # Run tests
202
- uv run pytest -q
203
-
204
- # Run lint
205
- uv run ruff check .
206
- ```
207
-
208
- ## License
209
-
210
- MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes