1. Some anime were presented multiple times, to choose from these 'alternates' use the Alt menu
  2. Some episodes weren't shown in their entirety (think intros/outros) the portions of an episode without chat show up darker in the seek bar. If you don't see chat playing check this!

Options: Toggles

  • Better Twitch TV emotes
  • This will turn off global and any specified channel emotes
  • Timestamps
  • Same setting as Twitch, except these timestamps show minute:second
  • Emojis
  • TCR will automatcally convert :XX: type emojis with this setting
  • Badges
  • This option simply turns badges on. Overrustle only logs the users name and chat message, thus any badge data is lost. TCR can randomly generate badges in an appropriate ratio to improve the 'feel' when this data cannot be recovered.
    Marathon Status:
    Anime Marathon 1: Random badges
    RWBY Marathon: Accurate badges

With long episodes it isn't too much bother to sync TCR with your video player manually. But with the RWBY marathon having far shorter episodes with unpredictable start delay, the old way becomes annoying, and so I implemented the VLC connection.
If VLC connection is enabled, when you press the TCR button in your browser it will check if VLC is running, and if it has the correct connection password. If either of these conditions aren't met you can continue which will disable the VLC option until you manually re-enable it in the options menu.
The VLC connection is performed using VLC http. For security purposes you must enable this interface and set a password in your VLC player.
See the illustrative guide here (note: I recommend doing it manually, also you can skip the firewall part because everything is local)
The default password is TCR, but you should choose another one and be sure to input the new password into the TCR settings menu.

Options: Other

  • Better Twitch TV Channel Emotes
  • Sometimes popular BTTV emotes are used even if they aren't supported in the TwitchPresents channel. Or they are frankerZ emotes which TCR doesn't support. To remedy this you can add twitch channels to this list and their BTTV channel emotes will be parsed like the regular emotes.
  • Username Highlight
  • This is a fun setting that will add a slight highlight to any usernames you add to the list. Add your name to get reminded of the dank memes you participated in.
  • Emote Filter
  • If you find any emotes particularly troublesome you can add them to this list and they will not be shown.

How does it work?

TCR contains a pre-formatted chat archive for each anime episode. It loads one of these files each time you begin playback and displays the messages with the same timing as they were written.
Building these chat archives and getting the timing correct is the tricky part. Because TwitchPresents doesn't store vods Twitch doesn't serve chat logs. Instead TCR uses logs from OverRustle which captures chat in the TwitchPresents channel. These logs must then be synchronized to each anime episode.
A lot of work goes into syncing each episode archive (thanks to wulfy_zef for his help with some anime). There are two main methods I've used depending on vod availiablity.

  1. The first method involves a vod recording with chat on screen, here it is straightforward to determine the first message of an episode and thus the timing. Most anime were shown with mid-episode breaks, and thus four timestamps are required for each episode. One at the beginning and end of each chat segment.
    A major drawback of this method is that the quality of the synchronization is limited by the quality of the vod, some vods lag up to 20 seconds. A second limitation is that getting the timestamps requires a vod that shows chat. Without a complete vod getting timestamps that correspond to the key points of each episode isn't possible. Fortunatly recordings exist of most of the 1st marathon, and as long as any recorded lag is constant it can be compensated by delaying all messages by some seconds.
    Most of the 1st marathon was formatted with this method.
  2. The second method uses predetermined anime episode length information, along with break placement patterns, and contextual chat analysis to determine the correct synchronization.
    The placement of breaks in an episode is predicatable, thus the timing of each section of an episode can be predetermined. Break length is unknown and unpredicatable, but can be found using a marathon vod without chat. Even if no vod exists break timing can be estimated and then through detailed analysis of the chat both break timing and episode start time can be established, wherein distinguishing chat features provide the needed information.
    The major drawback of this method is the amount of time required to get a high quality synchronization. Also it requires far more effort if things are unpredictable and go wrong, like if the anime freezes and is restarted as occured in the fourth showing of RWBY episode 1. This method works very well when there are repeated showings.
    I used this method a long with personally recorded vods that have twitch's diagnostic information showing stream delay, which makes the RWBY chat logs very high quality.

Once the timings are correct, they just need to be packaged into the archive files, and loaded by the TCR extension.