Sending created videos to your own server
The "HTTP client integration" window sends every created video to your address on the network. Sending happens right after the video is ready. If you wish, the file is deleted from the device after a successful send. This way a created video lands right away in your bot, in an automation scenario or in your own storage.
What exactly is sent
The app makes a POST request to your address. The request body is a multipart/form-data form. The file is in the video field, the file type is video/mp4, the name is the name of the created file.
- Pairs from the "Request body (optional):" field are added as fields of the same form.
- Pairs from the "Additional request parameters (optional):" field are added as headers.
The connection timeout is 15 seconds. Another 15 seconds are allowed for the response. Any response code in the 2xx range counts as success. You cannot change these timeouts in the app.
How to turn on sending
- Open the project and the "Project integrations" window.
- In the "HTTP client integration" card, click "Open".
- Turn on the "Send videos by URL" switch. Before that, all fields below are gray.
- Enter the address under the "URL to send videos to:" label.
- If needed, fill in "Additional request parameters (optional):" and "Request body (optional):".
- Decide whether you need "Delete videos after sending".
- Click "Save".
Without clicking "Save" the settings are not written. When you close the window, a question titled "Confirmation" appears with the text "The changes are not saved. Are you sure you want to close the window?". Its buttons are "Yes" and "No", with "No" selected by default.
Window fields
| Field | What it does | Default |
|---|---|---|
| "Send videos by URL" | The main switch. While it is off, the other fields are gray | Off |
| "URL to send videos to:" | The receiver address. Spaces at the edges are removed on saving | Empty |
| Button to the right of the address field | Sends a test request. Its tooltip says "Send a test request" | - |
| "Additional request parameters (optional):" | Request headers, one per line, separated by a colon | Empty |
| "Request body (optional):" | Additional form fields, one pair per line, separated by a colon | Empty |
| "Delete videos after sending" | Deletes the file from the device after a successful response | Off |
| "Save" | Writes the settings to the open project | - |
The save result line shows "The settings were saved." or "The settings were not saved".
The test request sends the original
The check button sends not a created video but the video from the project's preview window. This is the original you imported into the project. The app sends it in full, to the address in the field.
Keep this in mind when you test someone else's or a public receiver: your original will be sent to it. The tooltip of the address field says the same: "The app will send the created videos to the URL you set. A POST request with multipart/form-data is used. The button to the right of the field sends a test video. The one currently in the project preview is used."
The check before a test request refuses in two cases.
| Refusal text | What to do |
|---|---|
| "Enter the URL." | Enter the receiver address |
| "The video in the project preview does not exist. Choose another one" | Open a video whose file is on the disk in the preview |
The response is shown by a scrolling line under the address field.
| Line | What it means |
|---|---|
Connecting... | The request was sent, no response yet |
The request was sent successfully! Status: {code} | The receiver responded with a code in the 2xx range |
Error. Status: {code} | The receiver responded, but with a different code |
Error. The request was not completed: {reason} | The request could not be made |
Network error: {text} | The network does not respond or the address is wrong |
Unexpected error | The reason is unknown |
The request could not be prepared: {reason} | The request could not be assembled |
Headers and request body
Both fields are filled in the same way. One pair per line, name and value separated by a colon. Letter case and spaces matter. The authorization header goes into "Additional request parameters (optional):".
The rules are:
- a header name cannot contain a space, tab, quote, apostrophe, comma, semicolon or brackets;
- a body field name can be anything non-empty;
- if a name repeats, the last line stays, the previous one is not sent;
- a line break in a value makes the request impossible to send.
Notes about invalid lines are shown only for a test request. In normal work they do not appear on the screen. An invalid line is dropped, and the request is still sent - without it. Set it up once with a mistake, and every video is sent without the header you need. So after editing these fields, always click the test request button.
A test request opens a window titled "Request check". It contains the text "Fix these lines: only the rest will be sent." and a list of notes.
| Note | What it means |
|---|---|
Line {N}: no colon, so no header can be made from it. | The line has no colon |
Line {N}: the name "NAME" appeared above, only this line will be sent. | The name repeats |
Line {N}: the name is empty, and without a name there is nothing to send. | Nothing before the colon |
Line {N}: the name "NAME" holds what a header name cannot: LIST. | The name has an invalid character, it is named in words |
Line {N}: the value holds a line break, and with it the request will not be sent at all. | The value spans two lines |
For the body field, the first note ends differently: "...so no field can be made from it."
Deletion after sending
The "Delete videos after sending" switch is off by default. The file is deleted only on a successful response. A sending error does not touch the file.
The danger is clear: a receiver that responds with code 200 and loses the file will lead to the video being deleted on your side. Sending has no retries and no second copy. Turn on deletion only when the receiver has been tested.
A file locked by another program does not cancel the deletion. The status will be "Deleting...", and the deletion happens later.
What the receiver must be able to do
- accept a
POSTrequest with amultipart/form-databody; - read the file from the
videofield; - respond within 15 seconds with a code in the 2xx range;
- work at an address reachable from this device.
The app's certificate check is entirely standard. So your own certificate will not work. For a receiver on the same device, a local address is enough.
What the results table shows
| Status | What it means |
|---|---|
| "Sending over HTTP..." | The request is in progress |
| "Done/Sent over HTTP" | The video was created and sent |
| "Sent over HTTP. Deleted" | Sent, the file was deleted from the device |
| "Deleting..." | The file is still being deleted |
| "Deletion failed" | The file could not be deleted |
| "Sending over HTTP failed" | Sending failed |
HTTP error: {code} | The receiver responded with a code outside the 2xx range |
Frequently asked questions
A video was not sent. Will the app try again?
No. There are no retries at all. The results table row gets an error status, and that is it. Send the file yourself or start video creation again.
Why does my authorization header not work?
Most likely the line has a mistake and was dropped silently. Click the test request button. The "Request check" window names the line number and the reason.
The receiver gets the file only partly. What do I do?
Most likely 15 seconds is not enough for the response. Reduce the file size or speed up the receiver. You cannot change the timeout in the app.
Are these settings visible in another project?
No. The address and both text fields are written to the open project. In a new project, enter them again.
Can I send to an address on my own device?
Yes. An address like http://127.0.0.1:8080/upload is enough. No internet access is needed for this.
Why did the test request go through, but videos are not sent during work?
Check the main "Send videos by URL" switch and the "Save" button. The check button works with unsaved settings too, while normal sending works only with saved ones.