August 2009 | Main | October 2009

September 19, 2009

Quicktime Eats Cookies

It appears that when embedding Quicktime in a webpage, being viewed by Safari 4 in Snow Leopard, Quicktime no longer passes cookies to the server. So, if you're having the Quicktime plugin load a file that uses cookie data to verify permissions, you'll need to move to a query string model.

This only happens when Safari is running in 64bit mode, so I imagine it has to do with the "plugins running as separate entities" crash protection that Snow Leopard adds.

This does not appear to impact the Flash plugin.

Posted by at 10:33 PM

September 11, 2009

Podcast Producer 2 REST api

I've been working on documenting the REST api that PCP2 uses for client server communication as part of a new project. I thought it might be useful to other folks. Consider this a work in progress - I've only documented the workflow for doing a multisource recording so far. Follow the job for the info.

Each section gives a sample command and a sample response.

All pages are behind basic HTTP auth.

General sequence of events

* get workflow list
* get cameras
* request status for camera (including thumbnail)
* start cameras
* create recording enclosure
* stop cameras, provide submission_UUID returned by above step, include title

----

*URL: https://pcpserver:8170/podcastproducer/info

*Type: GET

*Content: version=2

*Response:
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<plist version="1.0">
<dict>
<key>server_version</key>
<string>2.0</string>
<key>http_auth_type</key>
<array>
<string>basic</string>
<string>digest</string>
<string>kerberos</string>
</array>
<key>krb_service_principals</key>
<array>
<string>pcast/x101-186-103-dhcp.cla.umn.edu@X101-186-103-DHCP.CLA.UMN.EDU</string>
</array>
<key>server_uuid</key>
<string>DB31DA49-10AE-472C-B3B9-86A8F8112399</string>
<key>cluster_members</key>
<dict>
<key>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</key>
<dict>
<key>date_added</key>
<string>Tue Sep 01 10:23:49 -0500 2009</string>
<key>last_update</key>
<string>Tue Sep 08 10:35:17 -0500 2009</string>
<key>server_host</key>
<string>x101-186-103-dhcp.cla.umn.edu</string>
<key>server_port</key>
<string>8170</string>
<key>tunnel_agent_host</key>
<string>x101-186-103-dhcp.cla.umn.edu</string>
<key>tunnel_agent_port</key>
<string>8175</string>
<key>network_addrs</key>
<array>
<string>128.101.186.103</string>
</array>
</dict>
</dict>
</dict>
</plist>
</podcast_producer_result>
</pre>

----

* URL: https://pcpserver:8170/podcastproducer/workflows
* Type: GET
* Content: version=2&language=en
* Response:
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>user_fullname</key>
<string>podcast</string>
<key>user_shortname</key>
<string>podcast</string>
<key>workflows</key>
<array>
<dict>
<key>name</key>
<string>Montage</string>
<key>title</key>
<string>Montage</string>
<key>description</key>
<string>Montage workflow</string>
<key>uuid</key>
<string>F797D54D-1539-42AA-B6AC-3CB3A4C15EF5</string>
<key>version</key>
<string>2.0</string>
<key>editor</key>
<string>Podcast Composer</string>
<key>sources</key>
<array>
<dict>
<key>contentTypes</key>
<array>
<string>com.apple.quicktime-movie</string>
<string>com.adobe.pdf</string>
<string>com.apple.iwork.keynote.key</string>
<string>com.apple.iwork.pages.pages</string>
<string>org.openxmlformats.wordprocessingml.document</string>
<string>com.microsoft.word.doc</string>
<string>org.openxmlformats.presentationml.presentation</string>
<string>com.microsoft.powerpoint.ppt</string>
<string>com.microsoft.bmp</string>
<string>com.compuserve.gif</string>
<string>public.jpeg-2000</string>
<string>public.jpeg</string>
<string>com.adobe.pdf</string>
<string>com.apple.pict</string>
<string>public.png</string>
<string>com.adobe.photoshop-image</string>
<string>com.sgi.sgi-image</string>
<string>com.truevision.tga-image</string>
<string>public.tiff</string>
</array>
<key>description</key>
<string>Any Document</string>
<key>isFolder</key>
<true/>
<key>isOptional</key>
<false/>
<key>sourceTypes</key>
<array>
<string>File</string>
</array>
</dict>
</array>
<key>user_requirements</key>
<array>
<string>Title</string>
<string>Description</string>
</array>
<key>access_control_entries</key>
<array>
</array>
</dict>
<dict>
<key>name</key>
<string>Single Source</string>
<key>title</key>
<string>Single Source</string>
<key>description</key>
<string>Single Source workflow</string>
<key>uuid</key>
<string>DEFA1587-A650-426E-92DA-01C5EB811705</string>
<key>version</key>
<string>2.0</string>
<key>editor</key>
<string>Podcast Composer</string>
<key>sources</key>
<array>
<dict>
<key>contentTypes</key>
<array>
<string>com.apple.quicktime-movie</string>
</array>
<key>description</key>
<string>Any Video</string>
<key>isFolder</key>
<false/>
<key>isOptional</key>
<false/>
<key>sourceTypes</key>
<array>
<string>Video</string>
<string>Screen</string>
<string>Audio</string>
<string>File</string>
</array>
</dict>
</array>
<key>user_requirements</key>
<array>
<string>Title</string>
<string>Description</string>
</array>
<key>access_control_entries</key>
<array>
</array>
</dict>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre>
----

* URL: https://pcpserver:8170/podcastproducer/cameras
* Type: GET
* Content: version=2
* Response:
<pre>
<podcast_producer_result>
<action>index</action>
<status>success</status>
<plist version="1.0">
<dict>
<key>cameras</key>
<array>
<dict>
<key>name</key>
<string>150-A Camera</string>
<key>uuid</key>
<string>307682A5-B552-4AFA-B7E2-3811D772C9A1</string>
<key>connected_to_member_uuid</key>
<string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
<key>in_use</key>
<string>false</string>
<key>recording_status</key>
<string>online</string>
<key>preview_url</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string>
<key>access_control_entries</key>
<array>
</array>
</dict>
<dict>
<key>name</key>
<string>150-A Epiphan</string>
<key>uuid</key>
<string>CE610AB0-CA50-49EB-8FFE-78E57CDCA550</string>
<key>connected_to_member_uuid</key>
<string>F1021B98-7E7E-44FB-8EB1-E0DA1885D5BA</string>
<key>in_use</key>
<string>false</string>
<key>recording_status</key>
<string>online</string>
<key>preview_url</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/CE610AB0-CA50-49EB-8FFE-78E57CDCA550.jpg</string>
<key>access_control_entries</key>
<array>
</array>
</dict>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre>

----

* URL: https://pcpserver:8170/podcastproducer/cameras/start
* Type: POST
* Content: action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
* Response:
<pre>
<podcast_producer_result>
<action>start</action>
<status>success</status>
<results>OK</results>
</podcast_producer_result>
</pre>

----

* URL: https://pcpserver:8170/podcastproducer/cameras/status
* Type: POST
* Content: delay=0&action=start&version=2&camera_name=150-A%20Epiphan&controller=cameras
* Response:
<pre><podcast_producer_result>
<action>status</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>preview</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string>
<key>preview_image_data</key>
<string>RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA RAW JPEG DATA</string>
<key>recording_status</key>
<string>online</string>
<key>started_at</key>
<string>Tue Sep 08 09:31:40 -0500 2009</string>
<key>stopped_at</key>
<string>Tue Sep 08 09:32:10 -0500 2009</string>
<key>elapsed</key>
<string>41</string>
<key>last_error</key>
<string>805306368</string>
</dict>
</plist>
</podcast_producer_result>
</pre>

----

* URL: https://pcpserver:8170/podcastproducer/cameras/pause
* Type: POST
* Content: action=pause&version=2&camera_name=150-A%20Camera&controller=cameras
* Response:
<pre><podcast_producer_result>
<action>status</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>preview</key>
<string>https://x101-186-103-dhcp.cla.umn.edu:8170/podcastproducer/previews/307682A5-B552-4AFA-B7E2-3811D772C9A1.jpg</string>
<key>recording_status</key>
<string>online</string>
<key>started_at</key>
<string>Tue Sep 08 09:31:40 -0500 2009</string>
<key>stopped_at</key>
<string>Tue Sep 08 09:32:10 -0500 2009</string>
<key>elapsed</key>
<string>41</string>
<key>last_error</key>
<string>805306368</string>
</dict>
</plist>
</podcast_producer_result></pre>

----

* URL: https://pcpserver:8170/podcastproducer/cameras/stop
* Type: POST
* Content: workflow_name=&UserMetadata_Description=&submission_uuid=7497E3AC-0A75-4C7C-8C66-26294C9274FE&action=stop&version=2&camera_name=150-A%20Epiphan&controller=cameras&UserMetadata_Title=Test123
* Response:
<pre><podcast_producer_result>
<action>stop</action>
<status>success</status>
<results>OK</results>
</podcast_producer_result>
</pre>

----

* URL: https://pcpserver:8170/podcastproducer/recordings/create
* Type: POST
* Content: version=2&workflow_uuid=C6EF52A7-04E3-477D-9F38-6B61F108D7B9
* Response:
<pre>
<podcast_producer_result>
<action>create</action>
<status>success</status>
<results>OK</results>
<plist version="1.0">
<dict>
<key>workflow_uuid</key>
<string>C6EF52A7-04E3-477D-9F38-6B61F108D7B9</string>
<key>recording_uuid</key>
<string>FD5A1459-F7CE-41FA-8155-049DF774298B</string>
<key>submission_uuids</key>
<array>
<string>A626D8E4-E439-4E57-9982-DB4BD035CB41</string>
<string>CFBCCB74-A41F-42D3-BEAA-58165B1116C6</string>
</array>
</dict>
</plist>
</podcast_producer_result>
</pre>

Posted by at 10:19 AM

September 10, 2009

Adobe launches preview of Story

Adobe is getting into the script management business with Story, and they've launched a free preview to show it off.

It's an interesting space for Adobe to enter, and it'll be interesting to see how it stacks up against tools like Celtx.

Posted by at 10:38 AM