Tutorial - Upload a clip into a new playlist
Step 1: Choose a project for the upload!
Request:
GET /api/projects HTTP/1.1
Authorization: Bearer example-token
Response:
HTTP/1.1 200 OK
{
"status": 200,
"status_message": "OK",
"info": "",
"data": {"array":[{"id":6,"name":"Philipp's Project","starts_at":"2013-07-17","ends_at":"2015-01-08"},
{"id":8,"name":"project 3","starts_at":"2011-07-07","ends_at":"2055-01-01"}]}
}
Step 2: Choose a folder for the upload!
Request:
GET /api/projects/6/folders HTTP/1.1
Authorization: Bearer example-token
Response:
HTTP/1.1 200 OK
{
"status": 200,
"status_message": "OK",
"info": "",
"data": {"array":[{"id":1,"name":"philipp","project_id":6,"parent_id":null},
{"id":7,"name":"test 2","project_id":6,"parent_id":null},
{"id":8,"name":"test 3","project_id":6,"parent_id":null},
{"id":129,"name":"Dailies","project_id":6,"parent_id":null},
{"id":257,"name":"another useless folder","project_id":6,"parent_id":null},
{"id":258,"name":"another useless folder","project_id":6,"parent_id":null}]}
}
Step 3: (optional) List child folders of "philipp" (id=1)
Request:
GET /api/projects/6/folders?parent_id=1 HTTP/1.1
Authorization: Bearer example-token
Response:
HTTP/1.1 200 OK
{
"status": 200,
"status_message": "OK",
"info": "",
"data": {"array":[{"id":157,"name":"metadata","project_id":6,"parent_id":1},
{"id":158,"name":"flickr","project_id":6,"parent_id":1},
{"id":163,"name":"file_mass","project_id":6,"parent_id":1},
{"id":223,"name":"galleries","project_id":6,"parent_id":1},
{"id":255,"name":"another useless subfolder","project_id":6,"parent_id":1}]}
}
Step 4: Create a playlist in e.g. "metadata" (id=157)
Request:
POST /api/projects/6/folders/157/playlists HTTP/1.1
Authorization: Bearer example-token
Content-Type: application/json
data: {"name":"how-to-upload"}
Response:
HTTP/1.1 201 Created
{
"status": 201,
"status_message": "Created",
"info": "",
"data": {"playlist":{"id":61441,"name":"how-to-upload","folder_id":157}}
}
Step 5: Create a playlist item in "how-to-upload" (id=61437)
Request:
POST /api/projects/6/folders/157/playlists/61441/items HTTP/1.1
Authorization: Bearer example-token
Content-Type: application/json
data: {"playlist_id":61441}
Response:
HTTP/1.1 201 Created
{
"status": 201,
"status_message": "Created",
"info": "",
"data": {"playlistitem":{"id":1371,"playlist_id":61441,"clip_id":1173,"position":1}}
}
Step 6: Create an upload
Note: To upload the clip, the resource path for the upload is /api/projects/6/clips/1173
and
NOT /api/projects/6/folders/157/playlists/61441/items/1371
Request:
POST /api/projects/6/clips/1167/upload HTTP/1.1
Authorization: Bearer example-token
Content-Type: application/json
upload: {"total_size":29533258}
Response:
HTTP/1.1 201 Created
{
"status": 201,
"status_message": "Created",
"info": "",
"data": {"flowuploader::upload":{"current_size":0,"total_size":29533258}}
}
Step 7: Upload the video file
Request:
PUT /api/projects/6/clips/1167/upload HTTP/1.1
Authorization: Bearer example-token
Content-Type: application/octet-stream
cURL example:
curl -X PUT localhost:3000/api/projects/6/clips/1169/upload -H "Authorization: Bearer example-token"
-H "Content-Type: application/octet-stream" -T "/path/to/video.mp4"
Response:
HTTP/1.1 200 OK
{
"status": 200,
"status_message": "OK",
"info": "",
"data": {"flowuploader::upload":{"current_size":29533258,"total_size":29533258}}
}