subtitle-filter
Filter .srt subtitle files to remove SDH (Deaf or Hard-of-Hearing) entries and other tags.
Installation
pip install subtitle-filter
Usage
subtitle-filter can be used either as a script or a module.
By default, this module filters the following (in order):
- Removes font tags and text contained within, e.g.
<font color="#DF01D7">Hey\</font>is removed. - Removes subtitle entries containing only asterisks:
*. - Removes subtitle lines containing
♪or#. - Removes sound effects: text contained with and including parenthesis
(BANG), asterisks*whisper*, brackets[boom], and text contained within forward slashes/POW/. - Replaces names with dashes, e.g.
GARY: HeyorGary: Heyto- Hey. - Removes author tags e.g.
XoXo Subtitles by PwnedDude967 XoXo. - Fixes erroneous comma spacing, e.g.
Hey , what's up? Nothing,my mantoHey, what's up? Nothing, my man. - Removes lone symbols such as
?,-,#,_. - Remove leading dashes
-if there is only one line present.
Script Usage
Bring up the help display:
filter-subtitles.py -h
Filter a subtitle in place (overwrites original subtitle) with default options.
filter-subtitles.py -s /path/to/sub.srt
Instead of saving to disk, print the output.
filter-subtitles.py -s /path/to/sub.srt -p
Save the output to a different filepath.
filter-subtitles.py -s /path/to/sub.srt -o /path/to/outsub.srt
Custom filter flags.
--keep-fonts Do not remove font tags and text contained within.
--keep-ast Do not remove subtitles containing asterisks: (*).
--keep-music Do not lines containing 1 or more "♪" symbols.
--keep-effects Do not remove text between and including parenthesis
() or brackets []
--keep-names Do not replace names in CAPITALS with "-" tags
--keep-author Do not remove author tags, eg. Subtitles by some guy.
--keep-lone-dashes Do not remove the dash if only one dashed line is present.
--keep-commas Do not fix comma spacings.
Module Usage
Filter a subtitle in place (overwrites original subtitle) with default options
from subtitle_filter import Subtitles
subs = Subtitles('/path/to/sub.srt')
subs.filter()
subs.save()
Instead of saving to disk, print the output.
subs.print()
Save the output to a different filepath.
subs.save('/path/to/newsub.srt')
Use custom filter flags.
subs.filter(
rm_fonts=True,
rm_ast=False,
rm_music=True,
rm_effects=True,
rm_names=False,
rm_author=False,
)
Issues & Requests
If you spot any issues with the filtered subtitles, or would like to request new features, please create an issue on GitHub and provide examples.
Release files for subtitle-filter 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| subtitle_filter-1.5.1.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| subtitle_filter-1.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.3 kB
Release files / subtitle_filter-1.5.1.tar.gz
| Download URL | subtitle_filter-1.5.1.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3923f5e67f5358651e79974ccda325a84add96d5777cb6c71fc61b0d40badd73
|
|
BLAKE2b-256 checksum How to use checksums |
476c2a6200013d673700dd60562796560677c06822b09a05f2b35b6b754ec92a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / subtitle_filter-1.5.1-py3-none-any.whl
| Download URL | subtitle_filter-1.5.1-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
193d4f087dd044b63cfa037e3ec4ffec284c7192c6b3360426ced0b9bf9f0f0f
|
|
BLAKE2b-256 checksum How to use checksums |
c4d4268b7ad0099a6825c93476301be07eebe63f4e9e85b050e01f4c4560911d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|