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.
Metadata
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
|