Skip to main content

FontCollector for Advanced SubStation Alpha file.

Project description

FontCollector

FontCollector - Version FontCollector - Python Version FontCollector - Downloads FontCollector - Coverage FontCollector - mypy

FontCollector for Advanced SubStation Alpha file. This tool allows to recover and/or mux the fonts necessary in an mkv.

Installation

pip install FontCollector

Dependencies

Usage

$ fontcollector --help
usage: fontcollector [-h] --input [INPUT ...] [-mkv MKV] [--output OUTPUT] [-mkvpropedit MKVPROPEDIT] [--delete-fonts] [--additional-fonts ADDITIONAL_FONTS [ADDITIONAL_FONTS ...]]
                     [--additional-fonts-recursive ADDITIONAL_FONTS_RECURSIVE [ADDITIONAL_FONTS_RECURSIVE ...]] [--exclude-system-fonts] [--collect-draw-fonts] [--dont-convert-variable-to-collection]
                     [--logging [LOGGING]]

FontCollector for Advanced SubStation Alpha file.

options:
  -h, --help            show this help message and exit
  --input [INPUT ...], -i [INPUT ...]
                        Subtitles file. Must be an ASS file/directory. You can specify more than one .ass file/path.
  -mkv MKV
                        Video where the fonts will be merge. Must be a Matroska file.
  --output OUTPUT, -o OUTPUT
                        Destination path of the font. If -o and -mkv aren't specified, it will be the current path.
  -mkvpropedit MKVPROPEDIT
                        Path to mkvpropedit.exe if not in variable environments. If -mkv is not specified, it will do
                        nothing.
  --delete-fonts, -d
                        If -d is specified, it will delete the font attached to the mkv before merging the new needed
                        font. If -mkv is not specified, it will do nothing.
  --additional-fonts ADDITIONAL_FONTS [ADDITIONAL_FONTS ...], -add-fonts ADDITIONAL_FONTS [ADDITIONAL_FONTS ...]
                        May be a directory containing font files or a single font file. You can specify more than one
                        additional-fonts.
                        If it is a directory, it won't search recursively for fonts
  --additional-fonts-recursive ADDITIONAL_FONTS_RECURSIVE [ADDITIONAL_FONTS_RECURSIVE ...], -add-fonts-rec ADDITIONAL_FONTS_RECURSIVE [ADDITIONAL_FONTS_RECURSIVE ...]
                        Path to font directory, which will be recursively searched for fonts.
  --exclude-system-fonts
                        If specified, FontCollector won't use the system font to find the font used by an .ass file.
  --collect-draw-fonts
                        If specified, FontCollector will collect the font used by the draw. For more detail when this
                        is usefull, see: https://github.com/libass/libass/issues/617
  --dont-convert-variable-to-collection
                        If specified, FontCollector won't convert variable font to a font collection. see: https://github.com/libass/libass/issues/386
  --logging [LOGGING], -log [LOGGING]
                        Destination path of log. If it isn't specified, it will be YYYY-MM-DD--HH-MM-SS_font_collector.log.

Examples

Recover fonts from 2 .ass files and save them in the current folder

fontCollector -i "file1.ass" "file2.ass"

Take all the .ass files from the current folder and save the font in the current folder

fontCollector -i .

Mux font from .ass file into an mkv

fontCollector -i "file1.ass" -mkv "example.mkv" -mkvpropedit "C:\Program Files\MKVToolNix\mkvpropedit.exe"

Mux the font from the .ass file into an mkv and delete the currently attached fonts.

fontCollector -i "file1.ass" -mkv "example.mkv" -mkvpropedit "C:\Program Files\MKVToolNix\mkvpropedit.exe" -d

Variable Font

Since Libass does not support variable font, this tool will automatically generate a OpenType Font Collection. The generated collection is designed to simulate how VSFilter/GDI handles variable font.

Acknowledgments

  • fontmerge for the idea to automatically merge the font into the mkv.
  • Myaamori-Aegisub-Scripts Without this tool, I probably could never have created the fontCollector. I got a lot of inspiration from his work.
  • PyonFX I inspired myself from his setup.py to create mine.
  • rcombs for her help with how VSFilter pick font when faux-bold need to be applied.
  • assfc for all the idea behind the font_loader.
  • Christopher Leung for his help on how GDI handle variable font.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fontcollector-3.1.0.tar.gz (45.0 kB view details)

Uploaded Source

Built Distribution

FontCollector-3.1.0-py3-none-any.whl (56.7 kB view details)

Uploaded Python 3

File details

Details for the file fontcollector-3.1.0.tar.gz.

File metadata

  • Download URL: fontcollector-3.1.0.tar.gz
  • Upload date:
  • Size: 45.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fontcollector-3.1.0.tar.gz
Algorithm Hash digest
SHA256 93b19eb92c1d5e1a1f782aba3572c34c8a59059f034991e38594fd845f1caba7
MD5 4d9378435954001c77ed4a9311ddca8b
BLAKE2b-256 4ab42e84f9dabe2982d4d58d138aea952957cfd52b9ea842484c0e94715efd20

See more details on using hashes here.

File details

Details for the file FontCollector-3.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for FontCollector-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0a250427e73925cad0fdaee282e578193ad4038c1caac70760ae061579ead1e
MD5 4379f45d504d2585bfac79fcda859bac
BLAKE2b-256 d636df8d7de4311e1f84c90d2d8f1e89708a484ffea2eb381a1471bf3a116962

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page