Generic Video Uploading to Server Model

the general method (inspired by the revver API, and very simplified) consists of 2 parts:

  • HTTPS connection to the server, with XML-RPC communication between client and server
  • HTTP POST of the video file to a specificaly negotiated URL.

Client side communication

  • make a https connection to a given url. for example; https://demo.vmfx.com/xmlrpc.php?username=bob?password=bob
  • communicate by sending simple XML-RPC messages and parsing the response
  • to upload:
    • the user requests an upload token, and sends the metadata along with this
    • if acceptable, the server returns a token in the xml-rpc response, this is in the form of a specific url to post to. it also reutrn an url to a page to display the final movie
    • the user then performs a standard HTTP POST to the given url, and the display url becomes valid

Server side mechnism

  • most likely a php script will serve the xml-rpc requests.
  • the server creates a hash token of username, filename and datetime and returns this embedded as a parameter in an url
  • the server will receive a file posted to the previosly given url

RPC

extra types

struct clip

name type description
start int start frame of clip
end int end frame of clip
name string name for this clip
keywords string array keywords for this specific clip

struct upload_info

name type description
post_url string the url to HTTP POST the video to
view_url string the url that will be used to view the video one it has been uploaded

request_upload

method

parameters

name type description
filename string the exact filename that will be uploaded. It must not vary from the actual uploaded file, or the upload will fail
title string a title for the video
description string a description of the movie file
clips clip array an array of clips with associated keywords throughout the film
thumbframe int frame number to be used as a thumbnail identifier for the film

return value

name type description
post token string the exact filename that will be uploaded. It must not vary from the actual uploaded file, or the upload will fail

failure will result in an xml-rpc fault. the fault codes are described below:

other points

  • im not sure about https authentication, how the username and password are handled by the server on the initial connection
  • slight problem is a file will be uploaded even if the token is invalid. not a security problem, just not bandwidth optimal