### Closed Caption Disassembly Documentation: ITV

Overview

The Interactive Television service is used to link television programming with the Internet by the use of interactive links. The most prevalent provider of this service is MSN TV (formerly Web-TV).

ITV is sent on channel T2, which means that `{TR}` (Text Restart) or `{RTD}` (Resume Text Display) must be transmitted first in Channel 2. Other than that, ITV is plain text in the format described below. The character set is ISO-8859-1 (aka Latin-1), a subset of Unicode. Note that odd parity is not being observed in this character set. To access characters from 0x20 to 0x7e, you can just type the character, but to access 0xa0 to 0xff, you have to escape the hexidecimal value with the percent symbol (in other words, to print a "c", use "c" (SCC 63), but for "ç", you use "%e7" (SCC 2565 55)).

The following is a summary derived from the MSN TV and ATVEF specifications documents:

ITV consists of triggers and content. The trigger is the link that appears on the television screen, while the content is the web page that is displayed on the TV when the link is selected. The links are delivered by channel T2 as described above, while content can be delivered via one of two Transport Types. Transport Type A uses the Internet to deliver web pages over a modem, while Transport Type B also allows content to be downloaded in other scanlines of the Vertical Blanking Interval, to be treated sort of like the cache of a web browser. Since SCC only covers scanline 21, a description how to load Transport Type B's content is beyond the scope of this document--simply note that the process assigns a URL to each resource which can either be unique or else have the same URL as an Internet resource (in this case, the Internet version is only used if the local version was incorrectly transmitted).

Preparing Web Pages for ITV Delivery

The TV screen is 544 pixels wide by 372 pixels tall. Web pages designed for ITV delivery must be less than this width; usually, you will want to avoid vertical scrolling as well. The style for the `DIV` and `IMG` tags allows for the "position:absolute" value. ITV web pages do not allow frames (internally converting them to tables), yet another reason to avoid scrolling.

The TV image can be incorporated into the web page in one of two ways: as a full-size background, or as an object that can be sized to have web content around it. To make the TV into the background, add `background="tv:"` to the `BODY` tag. Various tags (like `IMG` and `TABLE`) include a `transparency` atrribute that can be set from 0 to 100 to control how much of the TV background will show through. For the TV object, use the `OBJECT` tag with the src attribute set to "tv:" and width and height set appropriately. You can also add ECMAScript functions that can be called by ITV triggers.

Structure of ITV Triggers

An ITV Trigger starts with the "`<`" character then follows the pattern shown in this example:

`<http://www.msntv.com>[type:network][name:MSN TV Networks][tve:1.0][1a6d]{CR}{CR}`

(That was a Transport Type A example. The differences in Transport Type B will be covered below.)

The trigger consists of a URL in angle brackets, followed by a number of type:attribute pairs in square brackets, ending with a checksum in square brackets and a pair of `{CR}` codes. The checksum is only required for Transport Type A, and is calculated using RFC 1071 (take pairs of characters, convert into four-digit hexidecimal, add them all up, then figure out which four-digit hexidecimal number you need to add to the sum to get 0000 for the last four digits), not including the checksum or its bracket characters in the calculation. This is not any easy calculation to do, so it is probably best to use MSN TV's Link Generator Tool to compose your links.

The URL can use either the HTTP (HyperText Transfer Protocol) or LID (Local ID) protocols. LID is used by Transport Type B to refer to the content transferred on other scanlines. No relative URL's are allowed, only absolute.

Trigger Attributes

The following is a list of all attributes currently supported by MSN TV. Almost all of the type names can be abbreviated.

`tve` or `v`
  ATVEF version used (required by Transport Type A triggers). Value must be 1 or 1.0.
`type` or `t`
  Used to indicate what part of the broadcast the trigger belongs to, and therefore how long it should be displayed:

  Value | Abbreviation | Description | Default Duration
  --- | --- | --- | ---
  `sponsor` | `a` | The commercial sponsor of the current program | 30 Seconds
  `program` | `p` | The current program | 10 Minutes
  `station` | `s` | The local station | 10 Minutes
  `network` | `n` | The broadcast network | 10 Minutes
  `operator` | `o` | The service operator (i.e. the cable or satellite provider) | 10 Minutes

`name` or `n`
  If specified, a panel will appear at the bottom of the screen with the value and a button labeled "Go Interactive". The link is followed only if the button is selected by the user. If you leave out the `name` attribute, the link will execute automatically. Must be less than 20 or 30 characters.
`auto` or `a`
  If value is `true` or `t` or `1`, the URL link will be followed without giving the user the choice to "Go Interactive" or not.
`view` or `v`
  Sets the mode that the link will be displayed as. For values `tv` or `t`, the television image can be incorporated into the linked web page and further triggers will be interpreted, while for values `web` or `w`, trigger processing is turned off and the TV image cannot be displayed, allowing uninterrupted web browsing. The default value is `web`. Note that this attribute uses the same abbreviation as `tve`, showing that these two attributes are really one with two different purposes.
`showpip` (no abbreviation)
  Allows linked web page to display TV image as Picture-In-Picture. Possible values are `true` (`t` or `1`) or `false` (`f` or `0`). Default value is `true`.
`videoad` (no abbreviation)
  By default, a paid video advertisement will play while the linked content is being downloaded. If you wish to deactivate this (and display a blank screen during download), set this value to `false` or `f` or `0`.
`script` or `s`
  Names an ECMAScript function (and any attributes it needs) to execute. The function must be located within the page indicated by the URL. If the URL is the same as last time and the `name` attribute didn't change, then the function will be executed without prompting the user first.
`expires` or `e`
  Indicates when to stop displaying the link (overriding the default given by the `type` attribute). The value is in the form `yyyymmddThhmiss` (4-digit year, 2-digit month, 2-digit day, optionally followed by "T", 2-digit hour, 2-digit minute, and 2-digit second in UTC (London time zone)).
`time` or `x`
  Indicates when the link is to be displayed and optionally, when it should stop being displayed. There are many different ways to provide a value for this type (UTC = Universal Time Code, the time zone of London):

  Format | Explanation
  --- | ---
  | (blank) Now
      yyyy-mm-dd
  | Midnight on Day, Month and Year specified. Note that the "-" characters are optional.
      Thh:mi:ss.p
  | Time indicated (Hours, Minutes, Seconds and Partial seconds) in UTC on next date it occurs (today or tomorrow). Note that the ":" characters are optional. Also note that you can leave off any part of the time (i.e. `Thh:mi` for 00.0 seconds).
      yyyy-mm-ddThh:mi:ss.p
  | Time indicated in UTC on Date indicated.
      +PThh:mi:ss.p
  | Display link hh hours, mi minutes, and ss.p seconds from now. Note that you can also use a relative date (+Pyyyy-mm-dd), but it's unlikely you'd want to.
      Chh:mi:ss.p
  | Display link hh hours, mi minutes, and ss.p seconds after start of program. Only the part of a second is optional in this format. This uses the internal timecode of the tape, so it's somewhat risky (but then, so is relying on a local station to broadcast your show at a particular time of day).
      Chh:mi:ss:ff
  | Display link hh hours, mi minutes, ss seconds, and ff frames after start of program, using non-drop timecode.
      Chh:mi:ss;ff
  | Display link hh hours, mi minutes, ss seconds, and ff frames after start of program, using drop timecode. Note that either one of these last two formats can insert a number of days before the "C" character.
      +PChh:mi:ss:ff
  | Display link hh hours, mi minutes, ss seconds, and ff frames from now, using non-drop timecode. You can also use partial seconds or drop timecode frames for relative durations.
      +PThh:mi/Ch2:m2:s2:f2
  | Display link at hh hours and mi minutes from now, then remove link at h2 hours, m2 minutes, s2 seconds, and f2 frames from beginning of program in non-drop timecode. Note that any two of the above formats can be combined with the "/" character, including /Thh:mm for a link that starts now and ends at hh:mi UTC.

Return to SCC Tools Documentation.