<h1 align="center">
<img src="https://user-images.githubusercontent.com/3451528/222875688-e8d60da9-0439-4996-936d-c75ffd47cb58.png" id="logo" width="170"></a>
</h1>
[![PyPI](https://img.shields.io/pypi/v/videoxt)](https://pypi.org/project/videoxt) [![Downloads](https://static.pepy.tech/badge/videoxt)](https://pepy.tech/project/videoxt) ![tests](https://github.com/gurrutia/videoxt/actions/workflows/tox.yml/badge.svg)
**VideoXT** is a simple library and CLI tool for extracting audio, individual frames, short clips and GIFs from videos.
See the [documentation](https://gurrutia.github.io/videoxt) for more details.
- [Installation](#installation)
- [Usage](#usage)
- [Contributing](#contributing)
- [Used By](#used-by)
---
## Installation
Available on [pypi](https://pypi.org/project/videoxt/).
```sh
pip install videoxt
```
---
## Usage
From the command-line:
```sh
# extract audio from a video file (default: 'mp3')
$ videoxt audio MyVideo.mp4
{"video": {"filepath": "C:/Users/gurrutia/MyVideo.mp4", ...}, "start_time": 0, ...}
# extracting audio...
{"success": true, ...}
$ ls
MyVideo.mp4 MyVideo.mp3
```
As a library:
```python
$ python
>>> # extract all frames from a video file (default: 'jpg')
>>> import videoxt
>>> filepath = 'C:/Users/gurrutia/MyVideo.mp4' # or <class 'pathlib.Path'>
>>> result = videoxt.extract_frames(filepath) # or videoxt.extract('frames', filepath)
>>> result.destpath
pathlib.Path('C:/Users/gurrutia/MyVideo.mp4_frames')
>>> result.elapsed_time
3.14159265358979323
>>> len(list(result.destpath.glob('*.jpg'))) # default: 'jpg'
100 # number of frames extracted
>>> result.json()
{'success': True, ...}
```
---
## Contributing
For guidance on setting up a development environment and to make a contribution, see the [contributing guidelines](https://github.com/gurrutia/videoxt/blob/abdc3fe99a9244e668c270544bc83b44f7b828f3/CONTRIBUTING.md).
---
## Used By
- **Best Buy Teen Tech Center** at **Grand St. Settlement**, allowing filmmaking instructors to gather film stills that aid in constructing lesson plans for their youth workshops. [Download a workshop example here](https://github.com/gurrutia/videoxt/files/10887456/GSS_Filmmaking_Fall_2022_Transfiguration_Schools_W1.pdf).
Raw data
{
"_id": null,
"home_page": "https://github.com/gurrutia/videoxt",
"name": "videoxt",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "",
"keywords": "video,frame,image,gif,audio,extract,convert,ffmpeg,moviepy,opencv",
"author": "Gerardo Urrutia",
"author_email": "durru7@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/6f/ac/42eff656c4d329386bf24b72f7b7add8638d6f1c7109f3a6be987ca0591d/videoxt-1.1.6.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <img src=\"https://user-images.githubusercontent.com/3451528/222875688-e8d60da9-0439-4996-936d-c75ffd47cb58.png\" id=\"logo\" width=\"170\"></a>\n</h1>\n\n[![PyPI](https://img.shields.io/pypi/v/videoxt)](https://pypi.org/project/videoxt) [![Downloads](https://static.pepy.tech/badge/videoxt)](https://pepy.tech/project/videoxt) ![tests](https://github.com/gurrutia/videoxt/actions/workflows/tox.yml/badge.svg)\n\n**VideoXT** is a simple library and CLI tool for extracting audio, individual frames, short clips and GIFs from videos.\n\nSee the [documentation](https://gurrutia.github.io/videoxt) for more details.\n\n- [Installation](#installation)\n- [Usage](#usage)\n- [Contributing](#contributing)\n- [Used By](#used-by)\n\n---\n\n## Installation\n\nAvailable on [pypi](https://pypi.org/project/videoxt/).\n\n```sh\npip install videoxt\n```\n\n---\n\n## Usage\n\nFrom the command-line:\n\n```sh\n# extract audio from a video file (default: 'mp3')\n$ videoxt audio MyVideo.mp4\n{\"video\": {\"filepath\": \"C:/Users/gurrutia/MyVideo.mp4\", ...}, \"start_time\": 0, ...}\n# extracting audio...\n{\"success\": true, ...}\n$ ls\nMyVideo.mp4 MyVideo.mp3\n```\n\nAs a library:\n\n```python\n$ python\n>>> # extract all frames from a video file (default: 'jpg')\n>>> import videoxt\n>>> filepath = 'C:/Users/gurrutia/MyVideo.mp4' # or <class 'pathlib.Path'>\n>>> result = videoxt.extract_frames(filepath) # or videoxt.extract('frames', filepath)\n>>> result.destpath\npathlib.Path('C:/Users/gurrutia/MyVideo.mp4_frames')\n>>> result.elapsed_time\n3.14159265358979323\n>>> len(list(result.destpath.glob('*.jpg'))) # default: 'jpg'\n100 # number of frames extracted\n>>> result.json()\n{'success': True, ...}\n```\n\n---\n\n## Contributing\n\nFor guidance on setting up a development environment and to make a contribution, see the [contributing guidelines](https://github.com/gurrutia/videoxt/blob/abdc3fe99a9244e668c270544bc83b44f7b828f3/CONTRIBUTING.md).\n\n---\n\n## Used By\n\n- **Best Buy Teen Tech Center** at **Grand St. Settlement**, allowing filmmaking instructors to gather film stills that aid in constructing lesson plans for their youth workshops. [Download a workshop example here](https://github.com/gurrutia/videoxt/files/10887456/GSS_Filmmaking_Fall_2022_Transfiguration_Schools_W1.pdf).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Extract audio, individual frames, short clips and GIFs from videos.",
"version": "1.1.6",
"project_urls": {
"Homepage": "https://github.com/gurrutia/videoxt"
},
"split_keywords": [
"video",
"frame",
"image",
"gif",
"audio",
"extract",
"convert",
"ffmpeg",
"moviepy",
"opencv"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "addfd4456652a677f55750a2d84c99eaf83cfe075774760ceb41c2271b4aa53b",
"md5": "6924448a046395bb421d98f4c13b6838",
"sha256": "eb683d34d340d2b120d443051b9f727ad207ca23cc67d19179918f255afdb789"
},
"downloads": -1,
"filename": "videoxt-1.1.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "6924448a046395bb421d98f4c13b6838",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 48959,
"upload_time": "2023-11-17T23:43:20",
"upload_time_iso_8601": "2023-11-17T23:43:20.669687Z",
"url": "https://files.pythonhosted.org/packages/ad/df/d4456652a677f55750a2d84c99eaf83cfe075774760ceb41c2271b4aa53b/videoxt-1.1.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6fac42eff656c4d329386bf24b72f7b7add8638d6f1c7109f3a6be987ca0591d",
"md5": "5e896a1b05c1cbe7b122cb9fd3d8b59e",
"sha256": "5a63b8388987401b680a6d6d01b282f2e57e6830293ce845abf8151bfa39318a"
},
"downloads": -1,
"filename": "videoxt-1.1.6.tar.gz",
"has_sig": false,
"md5_digest": "5e896a1b05c1cbe7b122cb9fd3d8b59e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 42866,
"upload_time": "2023-11-17T23:43:22",
"upload_time_iso_8601": "2023-11-17T23:43:22.245479Z",
"url": "https://files.pythonhosted.org/packages/6f/ac/42eff656c4d329386bf24b72f7b7add8638d6f1c7109f3a6be987ca0591d/videoxt-1.1.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-17 23:43:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gurrutia",
"github_project": "videoxt",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "videoxt"
}