Les articles publiés sur le site

  • Podcast Producer 2 REST api

    11 septembre 2009

    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>

  • Adobe launches preview of Story

    10 septembre 2009

    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.

  • Podcast Producer 2 : Where I’m at

    27 août 2009

    If all of this scheduled publishing stuff has worked, you'll find a handful of posts about Podcast Producer 2 below.

    I just took all of the notes I've collected while working on a PCP2 project over the last month or so, and wrote them up. It's entirely possible that there are all sorts of things I'm missing, or misunderstanding. Now that the NDA is expired, hopefully some more folks will go public with their own discoveries.

    So, if you're coming across these posts and you know things I don't about this strange world of ruby and media, please let me know in the commments!