<div class="bigwarn">

'''not maintained very much any more'''

</div>
<s>alternative title: awesome-fansubbing</s>

This isn’t actually a guide, just a bunch of links to other peoples’ guides for specific things. If you follow them, you should end up with some at least semi-decent subs.

It covers most everything except the actual translation of the content. Mostly oriented towards anime, but should apply to most things (with some [[#typesetting|notable]] [[#karaoke-effects-kfx|exceptions]]).

explanations of the different roles are taken from [https://guide.encode.moe/overview/roles.html guide.encode.moe], and are licensed under [https://creativecommons.org/licenses/by-sa/4.0 CC-BY-SA 4.0]. Some portions are omitted, but otherwise unchanged. [[#aegisub-configuration|Aegisub Configuration]] is nicked from [https://www.goodjobmedia.com/fansubbing/ the GJM fansubbing page].

For more resources, and to talk with actual people, join the [https://discord.gg/hQewDqS GJM discord server] and give yourself the fansubber role. I do not recommend participating in the general discussion channels.

The [https://fansubbers.miraheze.org/ new fansubbing wiki] also has [https://fansubbers.miraheze.org/wiki/Guide:List_of_resources an equivalent page], which ideally will replace this page eventually.

== Setup ==

=== Recommended Aegisub Builds ===

[https://github.com/Aegisub/Aegisub/issues/214 3.4.0 soon™]

==== The One True Fork ====

The current Cartel Approved™ build is [https://github.com/arch1t3cht/Aegisub arch1t3cht’s fork]. It has lots of new shiny features: subtitle folding; new video providers (and the return of an old one); <!--massive -->performance improvements; hidpi support; stereo on linux (!); video panning; a visual perspective tool; new lua stuff; and lots of bugfixes.

It runs on all three major operating systems, but you’ll have to build it yourself on Linux.

The newest shiniest features (folds, new lua stuff) won’t work on other builds.

<!--
If this doesn't sound appealing to you, read on.

#### Other options

##### Windows

- [AegisubDC](https://github.com/Ristellise/AegisubDC/) - The previous cartel-approved fork. Deprecated, but won't magically stop working.
- [wangqr's fork](https://github.com/wangqr/Aegisub/)

##### Mac

don't use mac; no clue

- [rcombs' fork](https://github.com/rcombs/Aegisub/tree/rcombs-local) runs natively on apple silicon, but you'll need to build it yourself from the `rcombs-local` branch. Clone recursively, like in the windows instructions.<!-- Support with building it ranges from very little to none.-->
<!-- - [wangqr's fork](https://github.com/wangqr/Aegisub/) claims to run on x64 macs.

##### Linux

Doesn't _really_ matter, most of the forks are just to keep dependencies up-to-date on windows.

- [TSTools fork](https://github.com/TypesettingTools/Aegisub)
    - [AUR package](https://aur.archlinux.org/packages/aegisub-ttools-meson-git/)
- [This PPA that builds git master](https://launchpad.net/~riccetn/+archive/ubuntu/aegisub) - for ubuntu-based distros. Doesn't support Ubuntu 22.04.
- [wangqr's fork](https://github.com/wangqr/Aegisub/).
- Whatever's your distro has
    - probably 3.2.2, but you never know until you look

-->
You can use other builds/versions if you want, but make sure to [[#aegisub-configuration|configure them properly]].

=== Aegisub Configuration ===

Upon starting up Aegisub the first time, you should change the following settings:<br />
View &gt; Options &gt; Advanced &gt; Video

* Set '''Subtitles Provider''' to <code>libass</code>.
* Untick '''Force BT.601'''. It is extremely important to make sure you work in the right colour space. (on [[#recommended-aegisub-builds|newer forks]], this is automatically disabled and no longer an option.)

Restart Aegisub for the changes to fully take effect. Note that script settings may override the colour space.

See [https://guide.encode.moe/typesetting/aegisub.html guide.encode.moe] for why these settings are important.

=== Help, something with the Video/Audio is broken! ===

<pre>[13:20]arch1t3cht: you need to install ffms2 from git, not from whatever your distro has
[13:20]arch1t3cht: for example ffms2-git from the aur if you're on arch</pre>
[https://github.com/FFMS/ffms2 ffms git repo].

Alternatively, you can use a different video source altogether. arch1t3cht’s fork has a few, apparently everything should work out of the box now as long as you have python and vapoursynth installed. <!--
### But I want to use something else!

No. Read [this](chatlogs/daiz-other-subtitle-editors.log.html).

(you could probably get away with it for some roles, but it'll be a significantly worsened experience.)

#### B-But [Kainote](https://github.com/bjakja/Kainote)!

Sure, has some cool features, and is definitely better than the other not-aegisub options out there.

Be aware, however, that it [has issues with automation scripts](chatlogs/glitch-kainote-config-issue.log.html). ~~Be prepared to work things out on your own if stuff breaks.~~

Actually, I think all you need to do is upgrade the bundled moonscript, and then you'll be okay. Note that I have not tested this in the slightest.
--> <!--~~If all you want is a dark theme, install linux and set your system theme to something dark.~~ I think you can/could set a dark theme somehow on some windows versions as well. The screenshots in UA's guide seem to all be dark-ish.

#### B-But [Ameko](https://github.com/ProjectAmeko/Ameko)!

Doesn't exist yet. Keep an eye on it, maybe it'll become something eventually.
-->

== Translation ==

Learning the source language is outside the scope of this guide.

[https://web.archive.org/web/20240527160710/https://translations.ted.com/How_to_Tackle_a_Translation TED translations: How to Tackle a Translation] [archive copy]

[https://web.archive.org/web/20240412120047/https://translations.ted.com/The_translator's_research_toolbox TED translations: The translator’s research toolbox] [archive copy]

[[img/Translation+Theory.pdf|Translation theory overview]] [PDF]

[https://www.bible-researcher.com/luther01.html An Open Letter on Translating (Martin Luther, 1530)]

<span class="important">'''[https://www.google.com/books/edition/_/-2dNDwAAQBAJ In Other Words - A Coursebook on Translation]'''</span> - ebook ISBN <code>978-1-3156-1918-7</code>

== Editing ==

<blockquote>The Editor is responsible for making sure that the script reads well. Depending on the source of the script, this may mean grammatical corrections and some rewording to address recommendations from the Translation Checker. However, more often than not, the job will entail rewriting, rewording, and characterizing large portions of the script.
</blockquote>
<!--<span class="important">You **must** be *fluent* in your target language, or your script will (probably) be shit.</span>

Even if you're a native speaker, your script can still be shit, just in a different way.-->
=== the interesting bit ===

The [[#translation|Translation]] section is worth a read. the theory of it is still interesting and useful, even if you can’t actually take the words from one language to another.

<span class="important">[http://m33w-fansubs.com/editing-guide/ '''tun’s Fansub Editing Guide''']</span>

[https://collectr.blogspot.com/2011/01/collectrs-curmudgeonly-guide-to-editing.html Collectr’s Curmudgeonly Guide to Editing]

[https://collectr.blogspot.com/2013/10/editorial-minimalism.html Editorial Minimalism]

[https://web.archive.org/web/20220710165918/https://lightarrowsexe.github.io/moon_blog/editing-stylesheet/ Light/Kaleido’s style guide] [wayback machine]

[https://www.sljfaq.org/afaq/wasei-eigo.html sci.lang.japan FAQ: What are these pseudo-English words like salaryman?] (<span lang="ja-Latn-JP">wasei-eigo</span>)

[https://www.sljfaq.org/afaq/false-friends.html sci.lang.japan FAQ: What “false friends” are there between Japanese and English?]

[https://en.wikipedia.org/wiki/List_of_gairaigo_and_wasei-eigo_terms Wikipedia: List of <span lang="ja-Latn-JP">gairaigo</span> and <span lang="ja-Latn-JP">wasei-eigo</span> terms]

[[img/editing_style_comparison-mod.png|editing style comparison meme]] [large (high-res, ~5MB) image]

read books

=== the boring bit ===

[https://web.archive.org/web/20240421153405/https://translations.ted.com/How_to_break_lines How to break lines] [archive copy]

fwiw, [https://github.com/TypesettingTools/unanimated-Aegisub-Scripts/blob/master/ua.LineBreaker.lua UA’s linebreaker script] seems to do what I would’ve done anyway ~70% of the time. Make sure to check its work so you don’t miss the other ~30%.

== Timing ==

<blockquote>The Timer is responsible for when the text representing spoken dialogue shows up on screen. The timing of subtitles is much more important than one might assume. The entrance and exit times of the subtitles, or a fluid transition from one line to the next, can make a large impact on the “watchability” of the episode as a whole.
</blockquote>
Read <span class="important">[[img/a-guide-to-timing-in-aegisubv2.pdf|WhyNot’s guide]]</span> [PDF] for the basics. Feel free to ignore what it says about settings.

Then read [[ua/timing-basics.html|unanimated’s timing guide]] (every page) for the slightly-less-basics and better settings. (This link is a slightly modified mirror of UA’s guide, because I assume you enjoy being able to read the text on the page.)

<span class="important">Use the spectrogram, not the waveform.</span> It might take a bit of getting used to, but it’s worth it.

<!--Also see [Timing with skiddiks](https://web.archive.org/web/20150526010125/http://scribbles.moe/timing-with-skiddiks/) [wayback machine] for more advice.
actually no he wants it purged from the internet apparently -->
<!-- garret timing guide coming never™ -->
=== Don’t trust the TPP ===

<span class="warn">Don’t just blindly trust the timing post-processor</span>, it is stupid and has no idea what’s really going on. Do a QC pass and fix any mistakes it may have made. (this is the part where you actually watch the episode)

Alternatively, use [https://github.com/PhosCity/Aegisub-Scripts/#timing-assistant PhosCity’s Timing Assistant script]. It’s like the TPP, but it only runs one line at a time, and you can check and change its decisions as it makes them. This means that, in theory, you can get the entire thing done in one pass. You should still do a QC pass though, if only so you can watch the episode.

=== Generating Keyframes ===

<span class="warn">'''You should generate your own keyframes''', the ones in the video probably won’t be very accurate, or just straight up wrong.</span> This especially applies if you’re using untouched WEB-DLs or TV caps.

==== Drag-n-drop (Windows) ====

There’s a [[img/kf-gen.7z|nice batch script]] that comes with all the stuff you need. You should be able to just drag your video onto it. Apparently you can also add it to the Send To menu.

==== Command-line incantation (Everywhere) ====

get [https://ffmpeg.org/ <code>ffmpeg</code>]

get [https://github.com/soyokaze/SCXvid-standalone <code>scxvid-standalone</code>] - you’ll need to compile it on not-windows, but this only took a second or two even on my ancient hardware.

run <code>ffmpeg -i vid.mkv -f yuv4mpegpipe -vf scale=640:360 -pix_fmt yuv420p -vsync drop - | scxvid vid_keyframes.log</code>

If it misses frames, try removing the <code>-vf scale=640:360</code> bit. It’ll take longer, but it’s much more accurate.

==== <span lang="ja-Latn-JP">Myaa</span>’s VapourSynth Script (also everywhere but with more painful dependencies) ====

there’s also [https://gist.github.com/Myaamori/dfb0030fd4ee44364ca3b0c2c9c9b4aa <span lang="ja-Latn-JP">myaa</span>’s keyframe script]. WWXD, the thing it uses to actually generate the keyframes, claims to be ~6× faster than scxvid.

You’ll need a working [https://www.vapoursynth.com/ VapourSynth] install to use it though. Setting that up is outside the scope of this page.

==== <span lang="ja-Latn-JP">Setsugen</span>’s VapourSynth Script ====

If you want more control over your keyframes, use [https://gist.github.com/Setsugennoao/0f8f031f24d1461fb96032270c0ae58c this script by <span lang="ja-Latn-JP">Setsugen no ao</span>]. You’ll need working vapoursynth etc for this too.

=== Karaoke Timing ===

[https://zahuczky.com/aegisub-k-timing-guide/ <span lang="hu-HU">Zahuczky</span>’s Karaoke Timing guide]. The 0th part of a larger KFX guide.

[[img/a-guide-to-timing-in-aegisubv2.pdf|WhyNot’s guide]] [PDF]

=== Alpha Timing ===

don’t.

but if you must, see [[img/a-guide-to-timing-in-aegisubv2.pdf|WhyNot’s guide]] (again) for an idea of what it is and how it works. then forget everything it says and use [https://github.com/garret1317/aegisub-scripts/blob/master/karaoke2alpha.lua my karaoke2alpha script] instead. [[#karaoke-timing|K-Time]] the line, with the words you want to appear as syllables in the karaoke, then run the script. That’s not a great explanation, but have a play around with it and it should become relatively clear.

== Typesetting ==

<blockquote>Typesetters (abbreviated TS) are responsible for the visual presentation of translated text on-screen. These are generally called signs. Almost every sign the Typesetter works on will be unique, requiring ingenuity, a wild imagination, a sense of style, and a high degree of attention to detail. The Typesetter’s goal is to produce something that integrates so well into the video that the viewer does not realize that it is actually part of the subtitles. Something to remember about typesetting is that there is no one way to typeset a sign. There are, however, incorrect ways that are not visually pleasing, do not match the original well, are difficult to read, or are too heavy (meaning computer resource intensive).
</blockquote>
<span class="warn">I don’t typeset, so this section isn’t nearly as good as it probably could be. Contributions welcome.</span>

There’s only one really good piece of documentation. Everything else is either word-of-mouth, or you have to figure it out on your own. I once again encourage joining [https://discord.gg/hQewDqS the GJM discord server] and getting advice from real human beings.

[https://aegisub.org/docs/latest/ass_tags/ The ASS Tags and what they do]

<span class="important">[http://unanimated.hostfree.pw/ts/ unanimated’s typesetting guide]</span> [unreadable colour scheme]

[https://www.youtube.com/watch?v=3QbOKa3CGTQ &gt;vertical text] [youtube]

=== Escaping Aegisub (other vector editors) ===

<span class="important">[https://github.com/TypesettingTools/AI2ASS AI2ASS]</span> - A script to export ASS vector objects from Adobe Illustrator. Very powerful, very addictive.

[https://typesettingtools.github.io/2014/08/25/typesetting-with-illustrator-and-ai2ass-part-1.html Typesetting in Adobe Illustrator]

[https://guide.encode.moe/typesetting/masking/index.html Masking with Photoshop and Illustrator]

[https://github.com/irrwahn/svg2ass svg2ass] - Alternative to ai2ass. much worse, but works for anything that can output svg. <!--[Online Gui]() TODO
[Aegisub Script]() [unstable?]-->

=== Motion Tracking ===

<span class="important">[https://github.com/TypesettingTools/Aegisub-Motion Aegisub-Motion]</span> - ''The'' motion tracking script.

[https://github.com/Zahuczky/Aegisub-Scripts/ Aegisub-Perspective-Motion] - A recent innovation that tracks perspective as well.

[https://github.com/TypesettingTools/Aegisub-Motion/wiki Motion tracking with Mocha and Aegisub-Motion]

[http://unanimated.hostfree.pw/ts/ts-mocha.htm UA’s mocha guide] [outdated?]

<!--[alternative non-fansub mocha guide](https://borisfx.com/support/documentation/mocha/quick-start-guide/)-->
[https://subarashii-no-fansub.github.io/Subbing-Tutorial/Tracking-Motion/ Tracking things in blender] [dodgy english]

[https://shinon71.moe/blog/mocha_opt Optimising Mocha]

=== Other stuff (scripts, mostly) ===

[https://github.com/TypesettingTools/Perspective perspective.py]

[https://shinon71.moe/blog/shitpostingbetter how to meme]

==== Choosing fonts ====

[http://unanimated.hostfree.pw/ts/ts-fonts.htm UA’s Typesetting Guide: Fonts]

There are lots of fonts that the studios use pinned in #typesetting in GJM. Not linked here so I don’t anger the hosting provider.

You don’t need to find the exact font the studio used. Even if you do, the latin letters might not be nearly as stylised as the kanji. As long as the font matches decently well, no one will care.

Or, alternatively, do something completely different. As long as it makes some sense for it to be there, you’re probably ok.

At some point, it’ll start making sense to use a font manager. I hear FontBase is good.

== Styling ==

Very important. <span class="warn">Don’t skip this bit, even if all your other typesetting is just <code>\an8</code>.</span>

'''[https://web.archive.org/web/20150708090306/http://underwater.nyaatorrents.org/?view=why-do-so-many-groups-fail-at-styling Underwater’s Styling <s>Guide</s> Rant]''' [wayback machine]

[https://www.md-subs.com/saa-subtitle-font Subtitle Appearance Analysis Part 1: The Font]

[https://www.md-subs.com/saa-subtitle-font-size Subtitle Appearance Analysis Part 2: Font Size]

[https://www.youtube.com/watch?v=rQFfMyxa04A Subtitle is important - Austin Powers] [youtube]

Remember, [[File:img/white-text.png|white text with a black border can be read on any colour!]]

# Use a very light colour as the primary colour (white).
# Have a very dark border (black).
# Use a readable font, in bold.
# Make it large enough to see without squinting.
# Things don’t cast bright green shadows.

TL;DR: Just steal [[img/gjm-main.sty|GJM-Main]] and have done. (style lines for 1920x1080. [https://tipografiagandhi.com/common/zip/gandhi_sans_and_serif.zip font here])

== Karaoke Effects (KFX) ==

Like typesetting, but this time there’s barely even one piece of documentation. Again, [https://discord.gg/hQewDqS GJM discord].

You’ll probably need to know [[#typesetting|how to typeset]] so you can express what you want to the templater. You’ll also need some [[#karaoke-timing|K-Timed]] lines, obviously.

'''[https://zahuczky.com/kfx-guide/ <span lang="hu-HU">Zahuczky</span>’s KFX Guide]''' [incomplete, work in progress(?)]

[https://jockotan.wordpress.com/ Jockotan’s blog] [incomplete, dead]

[https://github.com/arch1t3cht/Aegisub-Scripts/blob/main/doc/templaters.md A Programmer’s Guide to Karaoke Templaters]

=== The Fine Manuals ===

[https://aegisub.org/docs/latest/automation/karaoke_templater/ Aegisub stock templater]

[https://github.com/logarrhythmic/karaOK/blob/master/README.md KaraOK]

[https://github.com/The0x539/Aegisub-Scripts/blob/trunk/doc/0x.KaraTemplater.md The0x539’s templater]

== QC ==

<blockquote>Quality Checkers (abbreviated QC) are often the last eyes on an episode before it is released. They are responsible for ensuring that the overall quality of the release is up to par with the group’s standards. They are also expected to be familiar with the workflow and many intricacies of every other role.
</blockquote>
[https://collectr.blogspot.com/2017/02/collectrs-curmudgeonly-guide-to-qc.html Collectr’s Curmudgeonly Guide to QC]

[[chatlogs/light-qc-ramblings.log.html|Light’s QC Ramblings]] (from MRF #general)

[https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect The Dunning-Kruger effect] (why QC is important (among other reasons))

You can only really QC well if you know what you’re looking for - you basically need to know all the other roles. This makes it probably one of the hardest roles to do well.

<span class="warn">'''go read all the other categories'''</span>

== Automation Scripts ==

=== Useful Scripts ===

This section is not very good.

* [https://github.com/typesettingTools/DependencyControl DependencyControl] - package manager for automation scripts. Included by default in some newer builds. Like it or not, you’ll have to use it eventually.
** [https://aur.archlinux.org/packages/aegisub-dependency-control/ AUR Package] (may or may not work)
** on linux, you’ll have to compile all the dependencies and put them in the right places yourself. guide to follow the next time i set up a new aegisub installation without cheating and copying my old <code>.aegisub</code> folder. (read: never)

Have a look through [https://typesettingtools.github.io/depctrl-browser/ the DependencyControl script browser] and the fansubbing wiki’s [https://fansubbers.miraheze.org/wiki/List_of_Aegisub_automations_not_available_in_Dependency_Control list of scripts not available in DependencyControl].

There used to be a bunch of links here. I’ve commented them out, but you can still see them if you read the page source. <!-- [Fansub wiki Script Directory]()
- [Unanimated's Scripts](http://unanimated.hostfree.pw/ts/scripts-unanimated.htm)
    - [Github (partial)](https://github.com/unanimated/luaegisub)

- [Aegisub-Motion](https://github.com/TypesettingTools/Aegisub-Motion)


- [Magic perspective script](https://github.com/TypesettingTools/Perspective) (perspective.py)
    - [Moonscript port](https://github.com/petzku/Alendt-Aegisub-Scripts/blob/master/perspective.moon)

- [Lyger's Scripts](https://github.com/TypesettingTools/lyger-Aegisub-Scripts) - go through the list, you'll definitely find something useful

- [Myaa's stuff](https://github.com/TypesettingTools/Myaamori-Aegisub-Scripts) - a lot of these are external tools
    - [SubKt](https://github.com/Myaamori/SubKt) is a highly configurable toolkit for fansubbing automation.

- [TSTools LuaInterpret Snippets](https://github.com/TypesettingTools/luainterpret-snippets)

<!--

- [Shapery](https://github.com/petzku/Alendt-Aegisub-Scripts/blob/master/Shapery.moon) - does stuff with shapes

- [Everything Shape](https://github.com/TypesettingTools/zeref-Aegisub-Scripts/blob/main/macros/zf.everythingShape.moon) - does more stuff with shapes

- [Clipping Shape Bonanza](https://github.com/darkstar901/Aegisub-Automations/blob/master/Clipping_Shape_Bonanza.lua) - more stuff with shapes? - idk what this does but it's pinned in #typesetting so surely it's at least somewhat useful

- [Line0's Illustrator scripts](https://github.com/TypesettingTools/line0-Illustrator-Scripts)

-->

=== Writing your own ===

completely optional, but writing your own scripts for repetitive tasks can save you a lot of time in the long run (and is fun for nerds like me).

read [http://unanimated.hostfree.pw/ts/lua/auto_tutorial.html lyger’s guide], skim [http://unanimated.hostfree.pw/ts/ts-lua.htm unanimated’s extra stuff], [https://aegisub.org/docs/latest/automation/ RTFM], and google any lua stuff you don’t know.

Prior knowledge of programming will be very useful. A decent grasp of maths would definitely help if you write typesetting scripts.

==== General Lua stuff ====

* [https://www.lua.org/pil/ Programming in Lua] - official book
* [https://www.lua.org/manual/ Lua Reference Manual] - “what was that thing that did the thing”
* [http://lua-users.org/wiki lua-users] - lots of useful snippets to make up for the tiny lua stdlib

You can also use [https://moonscript.org/ MoonScript], but figuring that out is left as an exercise for the reader (read: i don’t know how, and i dont like it anyway).

Try not to reinvent the wheel too much.


-----

I don’t know whether my use of the guide.encode.moe descriptions qualifies as fair use/fair dealing, so: This “work” is licensed under the [https://creativecommons.org/licenses/by-sa/4.0/ Creative Commons Attribution-ShareAlike 4.0 International License].
