{"id":18312521,"url":"https://github.com/vernoxvernax/font-ass_tool","last_synced_at":"2026-05-18T06:41:40.248Z","repository":{"id":137387203,"uuid":"540421858","full_name":"Vernoxvernax/font-ass_tool","owner":"Vernoxvernax","description":"Utility to easily batch through ass subtitle files and collect dependent fonts.","archived":false,"fork":false,"pushed_at":"2023-09-21T19:45:38.000Z","size":69,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-15T06:25:42.373Z","etag":null,"topics":["ass","ffmpeg","fontconfig","matroska","mpv","rust","rust-cli","substation-alpha"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vernoxvernax.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-23T12:07:51.000Z","updated_at":"2025-02-04T19:32:55.000Z","dependencies_parsed_at":"2023-09-22T01:55:36.662Z","dependency_job_id":null,"html_url":"https://github.com/Vernoxvernax/font-ass_tool","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vernoxvernax%2Ffont-ass_tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vernoxvernax%2Ffont-ass_tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vernoxvernax%2Ffont-ass_tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vernoxvernax%2Ffont-ass_tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vernoxvernax","download_url":"https://codeload.github.com/Vernoxvernax/font-ass_tool/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248036057,"owners_count":21037093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ass","ffmpeg","fontconfig","matroska","mpv","rust","rust-cli","substation-alpha"],"created_at":"2024-11-05T16:24:27.920Z","updated_at":"2026-05-18T06:41:40.207Z","avatar_url":"https://github.com/Vernoxvernax.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"## **Font-Ass_Tool**\n\n#### A simple small utility to mux a subtitle file with its font dependencies into a Matroska-Container\n\n___\n\n### **Installation:**\n\n#### **Linux:**\n___\n\nMake sure you have the following software already installed:\n+ fontconfig\n+ FFmpeg\n+ cargo + rust\n\n```\ncargo install --path .\nexport PATH=\"$HOME/.cargo/bin:$PATH\"\n```\n\n\n#### **Windows (by compiling and linking to fontconfig):**\n___\n\nMake sure you have some version of Visual Studio installed (tested with 2022 Community).\n\nAdditional requirements:\n+ meson\n+ ninja\n+ git\n+ FFmpeg\n+ cargo + rust (for compiling)\n+ brain\n\nRead and run `build_fontconfig.bat`.\n\nNow run `cargo build --release`.\n\nRead and run `copy_dlls.bat` (unless you want to add three different folders to your path).\n\nAny tips on how to improve the `dll` situation are very welcome.\n\n#### **Dlopen:**\n___\n\nI don't really know (or care) what this feature is supposed to be useful for, but it requires `pkg-config`. So pretty painful to set up on Windows (MSYS).\n\n### **Usage:**\n\n```\nfa_tool check subtitle.ass\nfa_tool run subtitle.ass\n```\n\nReplace `fa_tool` with `cargo run --release --` when on Windows.\n\n___\n\n### **Notes:**\n\nThis script parses the subtitle file, asks fontconfig for a matching font and muxes them into one file.\n+ The mkv output is not a playable file, it's only made for an easier remuxing progress. (MPV options like `external-file` are not supported)\n    * This affects all FFmpeg based applications. If your subtitle file doesn't start at time 0, it won't play as expected. (MPV will always skip to the beginning of the first track)\n    * Hint: put a video track into the container, or play the subtitle file externally\n+ FFmpeg is run with `overwrite` disabled by default. \n\n___\n\n### **_Problems_:**\n\nI got angry, learned C++ and searched GitHub. After a while I found that Aegisub's font collector almost perfectly matches all font names you feed into it, so I decided to translate parts of it's `font_file_lister_fontconfig.cpp` file to rust. We thus also finally have \"warnings\" when a font couldn't be found. (indicated by the font path = `Not found`).\n\n~~This code should be able to handle all correctly formatted ASS subtitle files.~~ \n\nIf there is anyone who knows how to get a correct match for fonts like `Bahnschrift`, then please create an issue, or reach out to me on Discord!\n\n\n___\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernoxvernax%2Ffont-ass_tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvernoxvernax%2Ffont-ass_tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernoxvernax%2Ffont-ass_tool/lists"}