diff --git a/src/lib/ae_core/ae_comp__hosted_files_clip_video.svelte b/src/lib/ae_core/ae_comp__hosted_files_clip_video.svelte
new file mode 100644
index 00000000..6fa15692
--- /dev/null
+++ b/src/lib/ae_core/ae_comp__hosted_files_clip_video.svelte
@@ -0,0 +1,488 @@
+
+
+
+
+
+
{hosted_file_obj_li.length}× files uploaded
+{#each hosted_file_obj_li as hosted_file_obj, i}
+
+ {hosted_file_obj.hosted_file_id_random}
+ {hosted_file_obj.filename}
+ {hosted_file_obj.extension}
+
+
+
+{/each}
+
+
+
+
+
+
+
+{#await ae_promises.upload__hosted_file_obj}
+
+
Converting... This may take a few minutes.
+{:then}
+ {#if ae_promises.upload__hosted_file_obj}
+
Ready to Download
+ {:else}
+
Fill out the form and select the video file to clip.
+ {/if}
+{/await}
+
+
\ No newline at end of file
diff --git a/src/lib/ae_core/ae_comp__hosted_files_clip_video_v1.svelte b/src/lib/ae_core/ae_comp__hosted_files_clip_video_v1.svelte
new file mode 100644
index 00000000..956dccde
--- /dev/null
+++ b/src/lib/ae_core/ae_comp__hosted_files_clip_video_v1.svelte
@@ -0,0 +1,396 @@
+
+
+
+
+
+
+
+
+
+
+{#await ae_promises.upload__hosted_file_obj}
+
+
Converting... This may take a few minutes.
+{:then}
+ {#if ae_promises.upload__hosted_file_obj}
+
Ready to Download
+ {:else}
+
Fill out the form and select the video file to clip.
+ {/if}
+{/await}
+
+
\ No newline at end of file
diff --git a/src/lib/element_input_file.svelte b/src/lib/element_input_file.svelte
index 90b7a640..b63d24d1 100644
--- a/src/lib/element_input_file.svelte
+++ b/src/lib/element_input_file.svelte
@@ -353,7 +353,8 @@ function remove_file_from_filelist(index) {
on:click|preventDefault={() => { (remove_file_from_filelist(file_index)); }}
class="btn btn-md variant-soft-warning hover:variant-filled-secondary m-1"
title="Remove file from upload list">
-
+
+ Remove
{file_list_item.filename} |
diff --git a/src/routes/hosted_files/+page.svelte b/src/routes/hosted_files/+page.svelte
index 4d449081..0eba1171 100644
--- a/src/routes/hosted_files/+page.svelte
+++ b/src/routes/hosted_files/+page.svelte
@@ -10,7 +10,12 @@ import { ae_loc, ae_sess, ae_api, slct, slct_trigger } from '$lib/ae_stores';
import { ae_util } from '$lib/ae_utils/ae_utils';
import type { key_val } from '$lib/ae_stores';
-export let container_class_li = [];
+import Comp_hosted_files_upload from '$lib/ae_core/ae_comp__hosted_files_upload.svelte';
+import Comp_hosted_files_clip_video from '$lib/ae_core/ae_comp__hosted_files_clip_video.svelte';
+
+let log_lvl = 1;
+
+// export let container_class_li = [];
let file_uploads_post_promise;
let download_src;
@@ -21,168 +26,261 @@ let file_uploads_clip_post_promise;
let download_clip_src;
let download_clip_filename;
+let hosted_file_upload: key_val = {
+ // link_to_type: 'account',
+ // link_to_id: ae_loc.account_id,
+ hosted_file_id_li: [],
+ hosted_file_obj_li: [],
+ upload_complete: false,
+};
+
onMount(() => {
console.log('Hosted Files: AV Utilities +page.svelte');
});
function handle_submit_form(event) {
- console.log('*** handle_submit_form() ***');
+// console.log('*** handle_submit_form() ***');
- console.log(event.target.file_list);
+// console.log(event.target.file_list);
- const form_data = new FormData();
+// const form_data = new FormData();
- form_data.append('title_part_1', event.target.title_part_1.value);
- form_data.append('title_part_2', event.target.title_part_2.value);
+// form_data.append('title_part_1', event.target.title_part_1.value);
+// form_data.append('title_part_2', event.target.title_part_2.value);
- form_data.append('subtitle_part_1', event.target.subtitle_part_1.value);
- form_data.append('subtitle_part_2', event.target.subtitle_part_2.value);
+// form_data.append('subtitle_part_1', event.target.subtitle_part_1.value);
+// form_data.append('subtitle_part_2', event.target.subtitle_part_2.value);
- form_data.append('font_color', event.target.font_color.value);
+// form_data.append('font_color', event.target.font_color.value);
- form_data.append(`file`, event.target.audio_file.files[0]);
- if (event.target.title_image.files.length > 0) {
- form_data.append(`title_image`, event.target.title_image.files[0]);
- }
+// form_data.append(`file`, event.target.audio_file.files[0]);
+// if (event.target.title_image.files.length > 0) {
+// form_data.append(`title_image`, event.target.title_image.files[0]);
+// }
- download_filename = `${event.target.title_part_1.value}_${event.target.title_part_2.value}_${event.target.subtitle_part_1.value}_${event.target.subtitle_part_2.value}.mp4`
+// download_filename = `${event.target.title_part_1.value}_${event.target.title_part_2.value}_${event.target.subtitle_part_1.value}_${event.target.subtitle_part_2.value}.mp4`
- // for (let i = 0; i < event.target.file_list.files.length; i++) {
- // form_data.append(`file_list`, event.target.event_file_upload_file_list.files[i]);
- // }
+// // for (let i = 0; i < event.target.file_list.files.length; i++) {
+// // form_data.append(`file_list`, event.target.event_file_upload_file_list.files[i]);
+// // }
- let params = null;
+// let params = null;
- let endpoint = '/hosted_file/create_video';
+// let endpoint = '/hosted_file/create_video';
- console.log(form_data);
+// console.log(form_data);
- params = null;
+// params = null;
- // Uncomment and the file_uploads_post_promise is not seen by the "await" below
- // file_uploads_post_promise = await api.post_object({api_cfg: $ae_api, endpoint: endpoint, params: params, data:form_data});
- // Uncomment so that the file_uploads_post_promise is not seen by the "await" below
- file_uploads_post_promise = api.post_object({api_cfg: $ae_api, endpoint: endpoint, params: params, form_data:form_data, return_blob: true, filename: 'test.mp4', auto_download: false})
- .then(function (result) {
- console.log(result);
+// // Uncomment and the file_uploads_post_promise is not seen by the "await" below
+// // file_uploads_post_promise = await api.post_object({api_cfg: $ae_api, endpoint: endpoint, params: params, data:form_data});
+// // Uncomment so that the file_uploads_post_promise is not seen by the "await" below
+// file_uploads_post_promise = api.post_object({api_cfg: $ae_api, endpoint: endpoint, params: params, form_data:form_data, return_blob: true, filename: 'test.mp4', auto_download: false})
+// .then(function (result) {
+// console.log(result);
- let file_blob = new Blob([result.data]);
- // console.log(file_blob);
- let file_obj_url = window.URL.createObjectURL(file_blob); // The img src
- // const url = window.URL.createObjectURL(new Blob([result.data]));
- download_src = file_obj_url;
- // download_filename = file_obj_url;
+// let file_blob = new Blob([result.data]);
+// // console.log(file_blob);
+// let file_obj_url = window.URL.createObjectURL(file_blob); // The img src
+// // const url = window.URL.createObjectURL(new Blob([result.data]));
+// download_src = file_obj_url;
+// // download_filename = file_obj_url;
- });
+// });
- console.log(file_uploads_post_promise);
+// console.log(file_uploads_post_promise);
- // let file_blob = new Blob([file_uploads_post_promise.data]);
- // // console.log(file_blob);
- // let file_obj_url = URL.createObjectURL(file_blob); // The img src
- // download_src = file_obj_url;
+// // let file_blob = new Blob([file_uploads_post_promise.data]);
+// // // console.log(file_blob);
+// // let file_obj_url = URL.createObjectURL(file_blob); // The img src
+// // download_src = file_obj_url;
- // dispatch(
- // 'event_file_obj_li_updated',
- // {
- // link_to_type: link_to_type,
- // link_to_id: link_to_id,
- // }
- // );
+// // dispatch(
+// // 'event_file_obj_li_updated',
+// // {
+// // link_to_type: link_to_type,
+// // link_to_id: link_to_id,
+// // }
+// // );
- return true;
+// return true;
}
+// function handle_submit_form_clip(event) {
+// console.log('*** handle_submit_form() ***');
+// console.log(event.target.file_list);
+// const form_data = new FormData();
-function handle_submit_form_clip(event) {
- console.log('*** handle_submit_form() ***');
+// form_data.append('start_time', event.target.start_time.value);
+// form_data.append('end_time', event.target.end_time.value);
- console.log(event.target.file_list);
+// if (event.target.reencode.value == '1' || event.target.reencode.value == 'true') {
+// form_data.append('reencode', 'true');
+// } else {
+// form_data.append('reencode', 'false');
+// }
+// // form_data.append('reencode', event.target.reencode.value);
- const form_data = new FormData();
+// form_data.append(`video_file`, event.target.video_file.files[0]);
- form_data.append('start_time', event.target.start_time.value);
- form_data.append('end_time', event.target.end_time.value);
+// download_filename = `clipped_file_test.mp4`
- if (event.target.reencode.value == '1' || event.target.reencode.value == 'true') {
- form_data.append('reencode', 'true');
- } else {
- form_data.append('reencode', 'false');
- }
- // form_data.append('reencode', event.target.reencode.value);
+// // for (let i = 0; i < event.target.file_list.files.length; i++) {
+// // form_data.append(`file_list`, event.target.event_file_upload_file_list.files[i]);
+// // }
- form_data.append(`video_file`, event.target.video_file.files[0]);
+// let params = null;
- download_filename = `clipped_file_test.mp4`
+// let endpoint = '/hosted_file/clip_video';
- // for (let i = 0; i < event.target.file_list.files.length; i++) {
- // form_data.append(`file_list`, event.target.event_file_upload_file_list.files[i]);
- // }
+// console.log(form_data);
- let params = null;
+// params = null;
- let endpoint = '/hosted_file/clip_video';
+// file_uploads_clip_post_promise = api.post_object({
+// api_cfg: $ae_api, endpoint: endpoint,
+// params: params,
+// form_data:form_data,
+// return_blob: true,
+// filename: 'test.mp4',
+// auto_download: false
+// })
+// .then(function (result) {
+// console.log(result);
- console.log(form_data);
+// let file_blob = new Blob([result.data]);
+// // console.log(file_blob);
+// let file_obj_url = window.URL.createObjectURL(file_blob); // The img src
+// // const url = window.URL.createObjectURL(new Blob([result.data]));
+// download_src = file_obj_url;
+// // download_filename = file_obj_url;
- params = null;
+// });
- file_uploads_clip_post_promise = api.post_object({api_cfg: $ae_api, endpoint: endpoint, params: params, form_data:form_data, return_blob: true, filename: 'test.mp4', auto_download: false})
- .then(function (result) {
- console.log(result);
+// console.log(file_uploads_clip_post_promise);
- let file_blob = new Blob([result.data]);
- // console.log(file_blob);
- let file_obj_url = window.URL.createObjectURL(file_blob); // The img src
- // const url = window.URL.createObjectURL(new Blob([result.data]));
- download_src = file_obj_url;
- // download_filename = file_obj_url;
-
- });
-
- console.log(file_uploads_clip_post_promise);
-
- return true;
-}
+// return true;
+// }
+ class="ae__hosted_files__av_util container space-y-4"
+ >
- Convert mp3 to mp4
+
+
Clip a Video
+
This AV utility will take an mp4 video file and create a clipped mp4 video file. This process may take a few seconds to a handful of minutes. Re-encoding will take longer. Please be patient while it is processing.
+
+
Step 1: Upload Video File
+
+
+
+
+ Upload video files
+
+
+ Aether hosted files only
+ Recommended: video (mp4, mkv)
+
+
+
+
+
Step 2: Clip Video
+ {#if hosted_file_upload.upload_complete}
+
+
+ {:else}
+
Upload a video file to clip.
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert mp3 to mp4
This AV utility will take an mp3 audio file and a static image template and create a mp4 video file. This process may take a few seconds to a handful of minutes. Please be patient while it is processing.
-
@@ -197,46 +295,10 @@ function handle_submit_form_clip(event) {
Fill out the form and select the audio file and static image template file.
{/if}
{/await}
+
-
-
-
- Clip mp4
- This AV utility will take an mp4 video file create a clipped mp4 video file. This process may take a few seconds to a handful of minutes. Re-encoding will take longer. Please be patient while it is processing.
-
-
-
-
- {#await file_uploads_clip_post_promise}
- Converting... This may take a few minutes.
- {:then}
- {#if file_uploads_clip_post_promise}
- Ready to Download
- {:else}
- Fill out the form and select the video file to clip.
- {/if}
- {/await}
-