/Roku-ECP

Perl module for Roku External Control Protocol

Primary LanguagePerlArtistic License 2.0Artistic-2.0

=head1 Roku::ECP: Roku External Control Protocol

=head2 Requirements:

=over 4

=item Encode

=item URI

=item URI::Escape

=item LWP::UserAgent

=item FindBin

=back

Roku External Control Guide:
http://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide

Roku also supports DIAL.
http://www.dial-multiscreen.org/dial-protocol-specification

=head2 SSDP

According to
http://sdkdocs.roku.com/display/sdkdoc/External+Control+Guide
the Roku supports Simple Service Discovery Protocol (SSDP), which is
the basis for UPnP.

I think that what that example doesn't tell you is that SSDP uses UDP,
not TCP, so run 'ncat' with "-u".

Presumably need to send out the SSDP HTTP query out over UDP, while
listening on UDP for incoming connections. By the same token, need to
specify the port for the return connections to come in on.

=head2 Deep Linking

=head3 Channel Store

http://myroku.dom.ain:8060/launch/11?contentID=28

11 is the Channel Store.
28 is the ID of a channel in the store.

Also works with private channels, looks like.
Doesn't work with string channel IDs, though.

=head3 YouTube

837 is the YouTube channel
The ContentID is the YouTube video ID.
http://myroku.dom.ain:8060/launch/837?contentID=sfbr8Y6NYL4

=head3 Pandora

Pandora channel ID: 28
http://myroku.dom.ain:8060/launch/28?contentID=40793346033480140

The contentID is the ID of a Pandora channel.

=head3 Amazon Instant Video

Channel ID: 13

There's probably a way to directly launch videos, but it's not as
simple as 'contentID=<ASIN>'