Friday, August 17, 2012

Failed to synchronize subtitles...

Thanks to comments from users, we've found a bug in the synchronization page that prevented users from synchronizing subtitles when using Internet Explorer. This caused a lot of frustration for our Internet Explorer users, and we're very sorry for this.

The bug has been fixed, and Internet Explorer users can continue using as expected.

Based on Google Analytics, around 12% of the people who add subtitles on the site, use Internet Explorer. That's not a low number, but at least it's lower than the average usage of Internet Explorer on the internet. Here are the statistics from Google Analytics:

The rest of the post contains somewhat technical information on what was the bug.

The bug was actually quite simple: During development, we use JavaScript's console to trace / debug issues. Sadly, Internet Explorer doesn't support this, and before publishing a new version to the site, we have to make sure we remove calls on the console object, and we forgot one such call that caused a JavaScript error in the save flow of the Synchronization page.

We have some tests that use WebDriver to run end-to-end tests, but we didn't yet find a way to run these tests on Internet Explorer. Hmm, guess that's next on our plate.

Monday, March 19, 2012

More options to synchronize subtitles

Using the 'T' key (or the on-screen lightning button) is very easy:

  • Play the video.
  • When the current subtitle should start showing, press and hold the 'T' key.
  • Keep the key pressed until the subtitle should be hidden, and then release the 'T' key.
  • Repeat for all the subtitles of the video.
This process is very streamlined and easy, but sometimes you need more control, e.g. when you made an error and want to fix just the start time (in-time) of a subtitle.

For this, we've just added two keys to set just the start time or end time (out-time). These are the 'S' and 'T' keys. When you click the 'S' button (no need to hold), you set the start time of the subtitle to the current playback time, and automatically move to the next subtitle. The same holds for the 'E' key, that sets the end time.

So how can we set subtitle times?
  • Using the 'T' button to set both start and end times (press and hold). This is the best approach for the bulk of your work.
  • Using the 'S' or 'E' buttons to set just the start time or the end time of subtitles. This is useful for fixing subtitle timing.
  • typing the actual time in the start and end time input fields. 
  • Using the little up and down arrows next to the subtitle start and end time. This is useful for fine tuning the timing, and is usually not necessary.
If you'd rather use the mouse to set subtitle times, there are on-screen buttons for the 'T', 'S', and 'E' keys, as seen on the right. Still, we really recommend you try using the keyboard, as it will make you much more productive in the long run.

Tuesday, January 24, 2012

Better Right-To-Left (or Bi-Directional) Support

When we started yt-subs, we made sure you could create subtitles in right-to-left languages like Hebrew or Arabic.

Over the time, newer features like the process screen and a modified player were not created with those languages in mind. You could still create subtitles in those languages, but some of the pages didn't look well (e.g. alignment wasn't right) for right-to-left languages.

We're happy to annonce that this was fixed, and adding caption or subtitles in a right-to-left (or rather bi-directional) languages should work as expected.

If you are still seeing issues with right-to-left support, please contact us.

Saturday, January 14, 2012

Video locking

A few months ago, we've added a feature that lets the owner of a video lock it. When a video is locked, no one can modify it, not even the video owner. This is sometimes useful for preventing accidental change to a video that's already subtitled and there's nothing more to do with it.

Of course, the video owner can unlock the video, and then anyone (who previously had access to the video) can update the video once again.

There was one bug - when a video is locked, you couldn't download its subtitles. Since the aim of this site is to support creating and sharing subtitles, this was really an annoying bug. But now it's fixed, and subtitles of locked videos can be downloaded.

So why did it take so long to fix it? Here we need to get a bit technical. is built using App Engine. Generally, this has been a blessing, as this environment is really easy to work with, and development speed is quite high, which is important for a hobby site that's being developed and maintained in spare time. It's also important that App Engine supports free hosting for small sites (like yt-subs).

But around Sep. 2011, Google announced a change in the App Engine pricing. Before the change, yt-subs was well below the free quota. After the change, yt-subs would cost something like a $1 a day. That's quite a lot for such a small app.

Google provides some tools and recommendations for improving the performance of App Engine applications, and one of those recommendations was to reduce the number of objects that are read/written from/to the database (datastore in App Engine terms).

Now, to watch a video with subtitles, we need to fetch tens or even hunders of subtitles - that's tens or hundreds of objects read from the database. Instead - when locking a video, we actually group all the subtitles into a single object stored in the database. It's a lot cheaper to read, but you can't update the subtitles while they're all grouped into a single objects, and that's why the video is locked.

So the whole locking / unlocking issue was rushed in to make billing for the application more sane, but at the cost of having some bugs that would be fixed later. BTW, there were many other changes besides locking and unlocking. Most of them were around using memcache, which really helped bringing down the cost of operation.

As it is now, yt-subs is not free, but falls within the minimum spent of an App Engine application ($9/month), and we're working hard to try and make it free again by optimizing it even further.