CES: TV Everywhere Becoming a Reality in 2013

As we embark on a new year, we’re excited to see more and more “TV Everywhere” experiences coming online. With Adobe Pass, our Emmy Engineering award-winning authentication service and a key component of Adobe‘s Project Primetime, we are working closely with our partners to make it easier for millions of consumers to access their pay TV content across devices.

Adobe Pass is now supported by more than 150 pay TV operators covering nearly 98 percent of all pay TV households in the U.S. Given the current adoption rate, we anticipate all major TV shows will be available through a TV Everywhere experience in the next two years.

We’re thrilled that A+E Networks just launched its first iPad apps, powered by Adobe Pass, for three of its networks: A&E, HISTORY and Lifetime. These three networks bring to iPad users their broadcast content, including popular TV shows like Storage Wars (A&E), Pawn Stars (HISTORY) and Project Runway (Lifetime). Additionally, Comcast customers can access exclusive content across all three apps. With three new A+E apps now live, more than 55 sites and mobile apps are now powered by Adobe’s authentication service. TV programmers working with Adobe include NBC, Fox, Disney, ESPN, Cartoon Network, MTV, TNT, CNN, Scripps, Pac12, NFL Network, The Hallmark Channel, Univision, and many others.

We’re excited about the pipeline of new TV Everywhere apps coming online in 2013 – bringing consumers a digital living room experience on the go. Stay tuned for some major updates between now and The NAB Show.

Lifetime HISTORY A&E

Adobe Pass and TV Everywhere Live From The Emmys

Adobe accepted an Emmy Engineering Plaque for its Adobe Pass TV Everywhere technology tonight at the 64th Primetime Emmy Engineering Awards in LA. This award recognizes Adobe’s outstanding engineering achievements in the advancement of TV Everywhere across the industry.

Adobe’s Joel Huff and Todd Greenbaum celebrate at the Emmy Awards with Mike Wise from Turner Broadcasting.

In addition to this win, we are excited to announce that Starz, Encore and Movieplex are the latest partners to use Adobe Pass. More than 25 top TV programmers now deliver pay-TV content through 45 sites and apps across connected devices using Adobe’s authentication service. Check out the video below, which was shown at the award ceremony tonight. Thanks to our friends at Turner and CNN, for showing your support!

Adobe Pass Drives Mainstream Adoption of TV Everywhere

Adobe Pass, a key component of Adobe’s Project Primetime, has quickly established itself as the industry leader in TV Everywhere services. Used by NBC Olympics to enable live streams, Adobe Pass is now integrated with more than 150 pay TV providers and supports over 40 sites and mobile apps from 25 major networks including Fox, ESPN, CNN Continue reading

A Week of Flash Collaboration: Authentication and Drupal Integration

afcs_logoThis is my first attempt at series I’m hoping to start called “A Week of” which will cover 5 topics in a particular subject over the course of the week. For the first one I’m going to do Adobe Flash Collaboration Services and I’ll be doing a blog post on something AFCS related every day. If you’re not familiar with Adobe Flash Collaboration Services (AFCS) I encourage you to check out my tutorial on the Developer Center to get started. Note: There is a new SDK version (0.93) on the Developer Portal which includes everything in one place including video tutorials and an AS3-only version of the SDK. Worth checking out.

Authentication During Development
During development it’s relatively easy to authenticate against the Flash Collaboration service even if you aren’t online. The basic component for Authentication is the AdobeHSAuthenticator. During development the AdobeHSAuthenticator tag lets you pass in your Adobe ID credentials to connect to a room.

Adobe Flash Collaboration Services also lets you test and develop without having to connect to the AFCS servers with the LocalAuthenticator tag. There is an AIR application as part of the SDK that, when running, will let you use the LocalAuthenticator to pass in an arbitrary username and connect to a room on your local machine.

Guest Authentication
You can set up AFCS to just allow guests to log into your rooms without any authentication. There are a couple of things you need to do to set this up. First, you have to make sure the room is active. You can do this using the AFCSDevConsole AIR application that comes with the SDK. It’s also a good idea to make sure your room settings autoPromote guests so that when the anonymous users log in they are given publish access and can actually collaborate with other users. This can be done either in code with the RoomSettings tag or inside of the AFCSDevConsole.


External Authentication
The most common use case is integrating your own authentication system with Adobe Flash Collaboration Services. AFCS uses a token system that can be generated using the Account Shared Secret which is available when you create an account at the AFCS Developer Portal The SDK comes with code for a number of server side languages including Java, PHP, ColdFusion, Python, and Ruby that help facilitate the generation of the token. In my example I took some of the sample code and scripts and integrated it with a Drupal environment. As a CMS, Drupal has it’s own authentication system and user administration. I created a basic module that exposes an AFCS chat room if the user is logged into the Drupal system and uses the existing Drupal username in the chat-room so that the Drupal users can chat with each other in real time.

I started off by creating an Admin page for my AFCS module that exposes a set of parameters needed to generate the token. That includes the account, or name you create when you first sign up for AFCS, the room for this particular application, your Adobe ID username and password, and finally the shared secret.


Now that I have those variables I can generate a token and set up the session. Using the scripts provided in the SDK it’s easy in PHP to create a new AFCSAccount object, log in, and get the session token.

$host  = "http://connectnow.acrobat.com";
$accountURL = "{$host}/" . variable_get(afcs_account, 'test');
$roomURL = "{$accountURL}/" . variable_get(afcs_room, 'test');
$account = new AFCSAccount($accountURL);
$account->login(variable_get(afcs_user, ''), variable_get(afcs_pass, ''));
$session = $account->getSession(variable_get(afcs_room, ''));
$token = $session->getAuthenticationToken(variable_get(afcs_secret, ''),$user->name,$user->name,50);

The variable_get functions are Drupal-specific but the code should be easy to follow. We first build the full roomURL based on the account and the room name. Then we login with our username and password and finally create a session based on the room. the getAuthenticationToken method takes the Shared Secret and the name that will display to all of the other connected users. The last parameter is the role which is a number from 0 to 100 and tells AFCS what the user can do. 100 is a full host and 50 allows users to publish content and collaborate.

Now that we have the token and the roomURL we need to somehow get that into the SWF file. The external authentication example that comes with the SDK and my Drupal example both use FlashVars which are read by the Flex application and then used to authenticate and set up the session. When the application finishes loading I call the Application.application.parameters object to start the session.

public var authToken:String;
public var roomURL:String;
protected function application1_applicationCompleteHandler(event:FlexEvent):void
roomURL = Application.application.parameters.roomURL;
authToken = Application.application.parameters.authToken;

From there on out it’s a typical Flash Collaboration Services application that uses our token.

<rtc:AdobeHSAuthenticator id="auth" authenticationKey="{authToken}" />
<rtc:ConnectSessionContainer id="cSession" roomURL="{roomURL}"
authenticator="{auth}" autoLogin="false" width="100%" height="500"]]
     <mx:HBox width="100%" height="100%"]]
          <rtc:SimpleChat id="chat" width="80%" height="100%" />
<rtc:Roster id="roster" width="20%" height="100%" dataProvider="{cSession.userManager.userCollection}" />

Hopefully that provides an example of external authentication. If you want, you can download the Drupal module that I created here. It’s still in the very basic stages and I’ll be adding to it down the road but it does show off how to use Drupal authentication in your Adobe Flash Collaboration Service applications.