General Information

Base-URL for our API is https://api.southcloud.tv/v1/ (note the 1 for version 1 behind the /)

All requests to the API shall be HTTP/1.1 GET

Please make sure to use the API with https only.

Most requests require a API Login & API Key, you can find both in the User Panel at the "User Settings" Tab.

Response is json, structure is as follows:

{
"status": <status-code>,
"msg": "<informational message. might vary, use the status code in your code!>",
"result": <result of the request. varies depending on the request>
}

status

200: Everything is OK. Request succeeded

400: Bad request (e.g. wrong parameters)

403: Permission denied (wrong api login/key, action on a file which does not belong to you, ...)

404: File not found

451: Unavailable For Legal Reasons

509: Bandwidth usage exceeded. Please try again later or use Browser Download. (you might see this during peak hours)

50x: Server errors. You should not see this, but be prepared.

msg

This message gives more detailed information in case there is an error.

You can use this for displaying it to the user, but please don't use it for checking if the request succeeded. That's what the status code is for.

result

holds the response of the request if succeeded. Might hold an array of data or just a boolean true/false, depending on the request

Upload

Get an Upload URL

Uploads shall be POSTed to the upload URL returned by our API and shall be multipart/form-data encoded. Example with curl:

curl -F file=@/path/to/file.mp4 https://up.southcloud.tv/files/v1/upload/13Tr4XxMNq7CDX

Request

https://api.southcloud.tv/v1/file/upload?login={login}&key={key}&folder={folder}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
folder Folder-ID to upload to 1234 no

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": {
	"url": "https://up.southcloud.tv/files/v1/upload/13Tr4XxMNq7CDX",
	"valid_until": "2023-01-09 00:02:50"
}
}

Add Remote Upload

Remote Uploading a file

Request

https://api.southcloud.tv/v1/remotedl/add?login={login}&key={key}&url={url}&folder={folder}&headers={headers}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
url Remote URL http://google.com/favicon.ico yes
folder Folder-ID to upload to 1234 no
headers additional HTTP headers, separated by newline (e.g. Cookies or HTTP Basic-Auth) Mozilla/5.0 (Windows; Windows NT 6.1; WOW64; en-US) AppleWebKit/601.3 (KHTML, like Gecko) Chrome/52.0.2760.111 Safari/534 no

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": {
"id": "nsJ81Bph4lrW",
"folderid": "wp5fc6mI794f"
}
}

Check Remote Upload Status

Check Status of Remote Upload

Request

https://api.southcloud.tv/v1/remotedl/status?login={login}&key={key}&limit={limit}&id={id}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
limit Maximum number of results (Default: 5, Maximum: 100) 5 no
id Remote Upload ID 1234 no

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": [
{
	"id": "AXFkG4S8So",
	"folderid": "0",
	"remoteurl": "https://mp4files.com/rabbit.mp4",
	"status": "new",
	"added": "2023-03-29 06:32:40",
	"last_update": "2023-03-29 06:32:40",
	"extid": false,
	"url": false
},
{
	"id": "SElXcB7QkG",
	"folderid": "0",
	"remoteurl": "https://video.org/files/pig.mp4",
	"status": "downloading",
	"added": "2023-03-28 09:02:26",
	"last_update": "2023-03-28 09:02:26",
	"extid": false,
	"url": false
},
{
	"id": "mE6SAc6Nx6",
	"folderid": "0",
	"remoteurl": "https://example.com/video.mp4",
	"status": "finished",
	"added": "2023-03-28 09:02:26",
	"last_update": "2023-03-28 09:02:26",
	"extid": false,
	"url": false
},
{
	"id": "dgGL8GXUXh",
	"folderid": "0",
	"remoteurl": "https://example.com/stream.mp4",
	"status": "error",
	"added": "2023-06-12 09:02:26",
	"last_update": "2023-06-12 09:02:26",
	"extid": false,
	"url": false
}
]
}

List Folder

Shows the content of your folders

Request

https://api.southcloud.tv/v1/file/listfolder?login={login}&key={key}&folder={folder}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
folder Folder-ID 5 no

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": {
	"folders": [
		{
			"id": "n8dM3TIn3u6400",
			"name": "video"
		},
		{
			"id": "wpj796Ps3eiqao",
			"name": "sub"
		}
	],
	"files": [
		{
			"name": "big_buck_bunny.mp4",
			"folder_id": "n8dM3TIn3u6400",
			"md5": "2a74c4181c65f6b86d452d955ca89d18",
			"size": "33129367",
			"status": "active",
			"encode_status": "pending",
			"content_type": "mp4",
			"updated_at": 1687538702,
			"download_count": 0,
			"link": "https://southcloud.tv/v/zA8uE1uwNN4639/big_buck_bunny.mp4",
			"linkextid": "zA8uE1uwNN4639"
		},
		{
			"name": "Sintel.2010.1080p.mkv",
			"folder_id": "n8dM3TIn3u6400",
			"md5": "bcce86ad76f0daf39ba7ce39a40a575d",
			"size": "30639964",
			"status": "active",
			"encode_status": "encoding",
			"content_type": "mkv",
			"updated_at": 1687452302,
			"download_count": 0,
			"link": "https://southcloud.tv/v/5hf8v7dznI1fnp/Sintel.2010.1080p.mkv",
			"linkextid": "5hf8v7dznI1fnp"
		},
		{
			"name": "SampleVideo_360x240_30mb.mp4",
			"folder_id": "n8dM3TIn3u6400",
			"md5": "f9480cb83cd96eb5ce95df0fba58f9e0",
			"size": "31539436",
			"status": "active",
			"encode_status": "finished",
			"content_type": "mp4",
			"updated_at": 1687365902,
			"download_count": 0,
			"link": "https://southcloud.tv/v/Z39Jo0W0jdXyyl/SampleVideo_360x240_30mb.mp4",
			"linkextid": "Z39Jo0W0jdXyyl"
		},
		{
			"name": "example.mp4",
			"folder_id": "n8dM3TIn3u6400",
			"md5": "994970c3a79168f9b675858556da491b",
			"size": "30376392",
			"status": "disable",
			"encode_status": "error",
			"content_type": "mp4",
			"updated_at": 1687279502,
			"download_count": 0,
			"link": "https://southcloud.tv/v/SP8Ods48BaltJA/example.mp4",
			"linkextid": "SP8Ods48BaltJA"
		}
	]
}
}

Rename Folder

Set a new name for a folders

Request

https://api.southcloud.tv/v1/file/renamefolder?login={login}&key={key}&folder={folder}&name={name}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
folder Folder-ID 5 yes
name new Folder-Name my%20new%20foldername yes

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": true
}

Rename File

Set a new name for a file

Request

https://api.southcloud.tv/v1/file/rename?login={login}&key={key}&file={file}&name={name}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
file File ID UPPjeAk--30 yes
name new File-Name my_video yes

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": true
}

Delete File

Remove one of your files

Request

https://api.southcloud.tv/v1/file/delete?login={login}&key={key}&file={file}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
file File ID UPPjeAk--30 yes

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": true
}

Upload Subtitle

Get an Upload URL

Uploads shall be POSTed to the upload URL returned by our API and shall be multipart/form-data encoded. Example with curl:

curl -F file=@/path/to/file.srt https://cc.southcloud.tv/subtitles/v1/upload/5b0cfe8e95985

Request

https://api.southcloud.tv/v1/subtitle/upload?login={login}&key={key}&file={file}&language={language}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
file File-ID to upload to 1234 yes
language Subtitle language English yes List language

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": {
	"data": {
		"url": "https://cc.southcloud.tv/subtitles/v1/upload/5b0cfe8e95985",
		"valid_until": "2023-05-29 09:17:34"
	}
}
}

List Subtitle

Shows file's subtitles

Request

https://api.southcloud.tv/v1/subtitle/list?login={login}&key={key}&file={file}

Parameters

Name Description Example Required
login API-Login eU75cHGPFB yes
key API-Key / API-Password 729v75nzfgb0vI12 yes
file File-ID AYgHe95d1E4 yes

Response

200 (OK)
Content-Type: application/json
{
"status": 200,
"msg": "OK",
"result": [
	{
		"id": "902R7BJC0LWlY6",
		"language": "Afar",
		"created_at": "2023-03-27 23:40:55",
		"file_id": "AYgHe95d1E4"
	},
	{
		"id": "dCbbodkX2mBKn4",
		"language": "English",
		"created_at": "2023-03-27 23:40:55",
		"file_id": "AYgHe95d1E4"
	}
]
}