https://github.com/utility-libraries/undertext-py
library to load, edit and save different formats of subtitles
https://github.com/utility-libraries/undertext-py
Last synced: 5 months ago
JSON representation
library to load, edit and save different formats of subtitles
- Host: GitHub
- URL: https://github.com/utility-libraries/undertext-py
- Owner: utility-libraries
- License: mit
- Created: 2024-04-01T10:58:06.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-26T20:11:37.000Z (over 1 year ago)
- Last Synced: 2025-03-28T16:04:46.193Z (about 1 year ago)
- Language: Python
- Homepage: https://pypi.org/project/undertext/
- Size: 57.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# undertext
library to load, edit and save different formats of subtitles
[
](https://pypi.org/project/undertext/)
> [!NOTE]
> This Project is under development. Come back soon for updates
* [undertext](#undertext)
* [Installation](#installation)
* [File Formats](#file-formats)
* [Examples](#examples)
* [CLI](#cli)
## Installation
```shell
pip3 install undertext
```
## File Formats
| ext | name | read | write | Flags |
|--------|---------------------------|-------|-------|-------|
| `.ass` | Advanced SubStation Alpha | ❌ | ❌ | TT |
| `.sbv` | SubViewer | ✅ | ✅ | TT |
| `.srt` | SubRip | ✅ | ✅ | TT |
| `.ssa` | Sub Station Alpha | ❌ | ❌ | TT |
| `.sub` | MicroDVD | ✅ | ✅ | TF |
| `.vtt` | WebVTT | ✅ | ✅ | TT |
*Listed formats that are currently unsupported may be added at a later version
Flag Information:
```text
T. = Text Based
B. = Bitmap Based
.T = Time-Based
.F = Frame-Based
```
## Examples
```python
import undertext
captions = undertext.load("example.en.srt")
undertext.dump(captions, "example.en.vtt")
```
```python
import undertext
captions = [
undertext.Caption(start=0, end=10, text="Hello"),
undertext.Caption(start=10, end=20, text="World"),
]
undertext.dump(captions, "out.srt")
```
## CLI
> [!NOTE]
> During the installation the `undertext` command should be installed and then available.
> If this didn't work you can invoke it with `python3 -m undertext` instead.
```shell
$ cat example.vtt
WEBVTT
00:00:00.000 --> 00:00:01.000
hello world 0
00:00:02.000 --> 00:00:03.000
hello world 2
00:00:04.000 --> 00:00:05.000
hello world 4
00:00:06.000 --> 00:00:07.000
hello world 6
00:00:08.000 --> 00:00:09.000
hello world 8
$ undertext read example.vtt
<00:00:00.000 -> 00:00:01.000> 'hello world 0'
<00:00:02.000 -> 00:00:03.000> 'hello world 2'
<00:00:04.000 -> 00:00:05.000> 'hello world 4'
<00:00:06.000 -> 00:00:07.000> 'hello world 6'
<00:00:08.000 -> 00:00:09.000> 'hello world 8'
```
```shell
$ undertext convert example.vtt output.srt
$ cat output.srt
1
00:00:00,000 --> 00:00:01,000
hello world 0
2
00:00:02,000 --> 00:00:03,000
hello world 2
3
00:00:04,000 --> 00:00:05,000
hello world 4
4
00:00:06,000 --> 00:00:07,000
hello world 6
5
00:00:08,000 --> 00:00:09,000
hello world 8
```