본문으로 건너뛰기
버전: 최신 버전

PDF/PPT에서 프로젝트 생성

PDF/PPT 분석하여 슬라이드별 하나의 영상장면으로 변환하여 프로젝트를 생성하는 방법을 다룹니다. (비디오 합성은 포함하지 않습니다.)


1. API endpoint

POST https://app.aistudios.com/api/odin/v3/editor/project/pptpdf

2. Request parameters

keydesctyperequireddefault
file변환할 파일
(pdf | pptx | ppt)
File (Binary)true-
name생성된 프로젝트의 이름Stringfalse-
workspaceId작업공간 고유식별자 IDStringfalse-

3. Response parameters

keydesctype
projectId생성된 프로젝트의 IDString

4. Sample Request

curl https://app.aistudios.com/api/odin/v3/editor/project/pptpdf \
-H "Authorization: ${API KEY}" \
-H "Content-Type: application/json" \
-X POST \
-F "file=@'${LOCAL FILE PATH}'" \
-F "name='${Project Name}'" \
-F "workspaceId='${workspace Id}'"

5. 전체코드

const axios = require('axios');
const { error } = require('console');
const FormData = require('form-data');
const fs = require('fs');
const { random } = require('lodash');
const moment = require('moment/moment');
const path = require('path');

const GET_TOKEN_API_PATH = '/api/odin/v3/auth/token'
const CREATE_API_PATH = '/api/odin/v3/editor/project/pptpdf'

const appId = '## your appId ##';
const userKey = '## your userKey ##';

const formData = new FormData();
formData.append('file', fs.createReadStream(path.resolve(process.env.HOME, '## Local file path ##')));
// formData.append('workspaceId', '## workspace id ##');
// formData.append('name', '## project name ##');

const main = async () => {
try {
/**
* get api token
*/
const token = await fetch(
`${API_HOST}${GET_TOKEN_API_PATH}`,
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
appId,
userKey
})
}
)
.then((response) => response.json())
.then((response) => {
if (response.success == true) {
return response.data.token
} else {
console.error(`import authentication token error, code:`, response.error.code, `, msg:`, response.error.msg);
throw Error(response);
}
});

console.log(`token:`, token);


/**
* create project
*/
const response = await axios.post(
`${API_HOST}${CREATE_API_PATH}`,
formData,
{
headers: {
...formData.getHeaders(),
Authorization: token
}
}
).then(response => {
if (response.data.success == true) {
console.log(`create project success,`, response.data);
return response.data
} else {
console.error(`create project error, code:`, response.data.error.code, `, msg:`, response.data.error.msg);
throw Error(response.data);
}
});

} catch (err) {
// ...
if (err.response) {
console.log('server error, status:', err.response.status, ', message', err.response.data);
} else if (err.request) {
console.log('response error,', err.request);
} else {
console.log(err);
}
}

console.log('finish');
}

main()