the Orange Slice

the Orange Slice

A subtitle editor for GTK+ writen in Python.


$Data: 2003/08/02 $

Revision History
Revision 10 August 2003
Some corrections and updates.
Revision 02 August 2003
First edition


Introductory information for the Orange Slice software.


Chapter 1. About

Orange Slice is a subtitle editor, writen in Python/GTK+. It aims at manipulate different file formats like SSA, ASS, SUB, SRT, etc. Runs under GNU/Linux, and should run under any *nix and should even run under WIN32. The application is developped under a Debian GNU/Linux (Sarge), but i'd like to have it working on any platform available (even proprietary ones like win32's).

The main goal is to have an easy application to create scripts for subtitling videos. For the moment it only manages the Sub Station Alpha file format, and can export to the Advanced Sub Station Alpha format. But it should be extended to any format available in import/export (help wanted).

And the real extend i'm thinking about right now is to have an easy file format for easily working with translations. Because most of the subtitles are for translating a video from a language to another, so it would be easier to have the possibility to have many languages in a single file. Next, having the possibility to have many languages and many comments for just one subtitle. I'm thinkig about an XML file that could do the job.

How does it works ?

Orange Slice permits to manipulates « scripts » files that contains informations about when and what to print on a video : the subtitles. You can use those scripts with MPlayer ( or Xine ( for example. If you're using a WIN32 system, you can use the generated script to encode your videos with Virtual-Dub (

Why ?

Why GTK+ ?

Why not ? , so...

Well, I'm an enjoyed GTK+/GNOME 2 user, and at first : GTK2 is using the unicode charset (utf-8) as the main text encoding, so it gives many easy prossibilities for internationalisation. And second, i really like Glade (

Why Python ?

I didn't do any C programming for years, and for me python is light, fast enough, and have bindings (at least under *nix) for a lot of libraries, like Gstreamer ( i think i'll use someday.

Why GPL ?

Orange Slice is somehow a Sub Station Alpha (SSA) clone. SSA is a closed source program only running under a WIN32 system. SSA is left unmainted since a very long time, and like any other closed-source program, nobody can make it evolve. In other words : the application is dead. That's one of the reason why Orange Slice is distributed under the Gnu Public License (GPL). This way, it takes all the advantages of a free software application. See for more information on free software.

Well, at least the SSA's file format is a text file, easy to read, understand and even extend. That was the good point.


Sorry if I make any english mistake, it's because i'm french... Of course, feel free to correct me !

Chapter 2. Installation


Debian packages :

If you're using Debian, you should use those packages.

  • python2.3
  • python2.3-gtk2
  • python2.3-glade2

And if you want to use CJK you'll need that.

  • python2.3-cjkcodecs

Win32 (untested) :

Win32 is untested for the moment and will not be tested until someone does it ! I only provide those links for if anybody wants to try it or to port it to. Bu well i'd like it to work under a win32 system, because it could replace the closed source SubStationAlpha...


There's no need to build the application (python powered). Of course, you need to have the requirements installed.


Just uncompress the tarball to anywhere you want and symlink to a common place (eg: /usr/bin/orange-slice). The application should start without any problem. If not, file a bug with a description of your problem.


Well, once you've started or loaded a script, you just have to click on a subtitle to have it loaded in the editable fields on top of Orange Slice. You can use Enter to save the current in the list, and Ctrl+Enter to update the field, and if you're in the subtitle field it will automatically go to the next line.


Enter should be bind to save the selected field. In looks to be what's being done at the moment. But Ctrl+Enter should be extended to save ALL the fields from any field we are editing, and jump to the next line (creating it if unexistant).

Chapter 3. Bugs, Features and ToDo

Please submit any orange-slice bugs to . I expect the application not to crash, but features might be broken or working badly or as unexpected.


  • Uses the SSA file format as internal file format.
  • Takes advantages of the unicode charset as internal encoding.
  • Can create load SSA and ASS scripts.
  • Loads saves the SSA and ASS scripts to the current locale. Supports mixed encoding SSA files (buggy on shift-jis save).
  • Can select the line break (endline) for saved file: LF (*nix) or CR+LF (dos/win).
  • Exports to :

    • Advanced Sub Station Alpha
  • Internationalisation (using gettext) :

    • English
    • French


Main ToDo

  • Make use of GtkTreeView instead of deprecated CList.
  • Having a more powerful internal format. Specially designed for translation, with notes, comments and even multiple languages (unicode).
  • Change the current way to use the program (as described in the usage section.
  • Develop our proper file format: XML based and oriented for translations with multiple languages comments.

Long see ToDo

  • More internationalisation.
  • Add something to manipulate the script header (authors, translators, timers, video informations, etc.)
  • Add something to manipulate subtitle Styles (like font, color, etc.) : started.
  • Importations and exportations from and to many file formats, like : SRT, MicroDVD, MPlayer, etc.

Far see ToDo

  • Use Gstreamer for having audio/video preview, and even make use of the audio/video to time the scripts, or something like that.

Chapter 4. Authors

Table of Contents


Please feel free to contact the developers if you have any problem with the Orange Slice !



Patches, suggestions, and other help:

  • none for the moment


  • none for the moment