@memberjunction/ai-heygen 2.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +9 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +94 -0
- package/dist/index.js.map +1 -0
- package/package.json +22 -0
- package/readme.md +2 -0
- package/src/index.ts +86 -0
- package/tsconfig.json +15 -0
- package/typedoc.json +4 -0
package/CHANGELOG.md
ADDED
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AvatarInfo, AvatarVideoParams, BaseVideoGenerator, VideoResult } from "@memberjunction/ai";
|
|
2
|
+
export declare class HeyGenVideoGenerator extends BaseVideoGenerator {
|
|
3
|
+
private _generateUrl;
|
|
4
|
+
private _avatarsUrl;
|
|
5
|
+
constructor(apiKey: string);
|
|
6
|
+
CreateAvatarVideo(params: AvatarVideoParams): Promise<VideoResult>;
|
|
7
|
+
CreateVideoTranslation(params: any): Promise<VideoResult>;
|
|
8
|
+
GetAvatars(): Promise<AvatarInfo[]>;
|
|
9
|
+
GetSupportedMethods(): Promise<string[]>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGpG,qBACa,oBAAqB,SAAQ,kBAAkB;IACxD,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,WAAW,CAA+C;gBAEtD,MAAM,EAAE,MAAM;IAIb,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4ClE,sBAAsB,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzD,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAqBnC,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAGxD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.HeyGenVideoGenerator = void 0;
|
|
13
|
+
const global_1 = require("@memberjunction/global");
|
|
14
|
+
const ai_1 = require("@memberjunction/ai");
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
let HeyGenVideoGenerator = class HeyGenVideoGenerator extends ai_1.BaseVideoGenerator {
|
|
17
|
+
constructor(apiKey) {
|
|
18
|
+
super(apiKey);
|
|
19
|
+
this._generateUrl = "https://api.heygen.com/v2/video/generate";
|
|
20
|
+
this._avatarsUrl = "https://api.heygen.com/v2/avatars";
|
|
21
|
+
}
|
|
22
|
+
async CreateAvatarVideo(params) {
|
|
23
|
+
const videoResult = new ai_1.VideoResult();
|
|
24
|
+
try {
|
|
25
|
+
const response = await axios_1.default.post(this._generateUrl, {
|
|
26
|
+
video_inputs: [
|
|
27
|
+
{
|
|
28
|
+
character: {
|
|
29
|
+
type: 'avatar',
|
|
30
|
+
avatar_id: params.avatarId,
|
|
31
|
+
scale: params.scale,
|
|
32
|
+
avatar_style: params.avatarStyle,
|
|
33
|
+
offset: { x: params.offsetX, y: params.offsetY },
|
|
34
|
+
},
|
|
35
|
+
voice: {
|
|
36
|
+
type: 'audio',
|
|
37
|
+
audio_asset_id: params.audioAssetId,
|
|
38
|
+
},
|
|
39
|
+
background: {
|
|
40
|
+
type: 'image',
|
|
41
|
+
image_asset_id: params.imageAssetId,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
dimension: {
|
|
46
|
+
width: params.outputWidth,
|
|
47
|
+
height: params.outputHeight,
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
headers: { Accept: 'application/json', 'X-Api-Key': this.apiKey }
|
|
51
|
+
});
|
|
52
|
+
videoResult.videoId = response.data.data.video_id;
|
|
53
|
+
videoResult.success = true;
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
videoResult.success = false;
|
|
57
|
+
videoResult.errorMessage = error.message;
|
|
58
|
+
console.error(error);
|
|
59
|
+
}
|
|
60
|
+
return videoResult;
|
|
61
|
+
}
|
|
62
|
+
async CreateVideoTranslation(params) {
|
|
63
|
+
throw new Error("Method not implemented.");
|
|
64
|
+
}
|
|
65
|
+
async GetAvatars() {
|
|
66
|
+
const result = [];
|
|
67
|
+
try {
|
|
68
|
+
const response = await axios_1.default.get(this._avatarsUrl, {
|
|
69
|
+
headers: { Accept: 'application/json', 'X-Api-Key': this.apiKey }
|
|
70
|
+
});
|
|
71
|
+
for (const avatar of response.data.data.avatars) {
|
|
72
|
+
const avatarInfo = new ai_1.AvatarInfo();
|
|
73
|
+
avatarInfo.id = avatar.avatar_id;
|
|
74
|
+
avatarInfo.name = avatar.avatar_name;
|
|
75
|
+
avatarInfo.gender = avatar.gender;
|
|
76
|
+
avatarInfo.previewImageUrl = avatar.preview_image_url;
|
|
77
|
+
avatarInfo.previewVideoUrl = avatar.preview_video_url;
|
|
78
|
+
result.push(avatarInfo);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
console.error(error);
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
async GetSupportedMethods() {
|
|
87
|
+
return ["CreateAvatarVideo", "CreateVideoTranslation", "GetAvatars"];
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
exports.HeyGenVideoGenerator = HeyGenVideoGenerator;
|
|
91
|
+
exports.HeyGenVideoGenerator = HeyGenVideoGenerator = __decorate([
|
|
92
|
+
(0, global_1.RegisterClass)(ai_1.BaseVideoGenerator, "HeyGenVideoGenerator")
|
|
93
|
+
], HeyGenVideoGenerator);
|
|
94
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@memberjunction/ai-heygen",
|
|
3
|
+
"version": "2.27.0",
|
|
4
|
+
"description": "MemberJunction Wrapper for HeyGen Video Generation",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"start": "ts-node-dev src/index.ts",
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
10
|
+
},
|
|
11
|
+
"author": "MemberJunction.com",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"devDependencies": {
|
|
14
|
+
"ts-node-dev": "^2.0.0",
|
|
15
|
+
"typescript": "^5.4.5"
|
|
16
|
+
},
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@memberjunction/ai": "2.27.0",
|
|
19
|
+
"@memberjunction/global": "2.27.0",
|
|
20
|
+
"elevenlabs": "^1.51.0"
|
|
21
|
+
}
|
|
22
|
+
}
|
package/readme.md
ADDED
package/src/index.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
2
|
+
import { AvatarInfo, AvatarVideoParams, BaseVideoGenerator, VideoResult } from "@memberjunction/ai";
|
|
3
|
+
import axios from "axios";
|
|
4
|
+
|
|
5
|
+
@RegisterClass(BaseVideoGenerator, "HeyGenVideoGenerator")
|
|
6
|
+
export class HeyGenVideoGenerator extends BaseVideoGenerator {
|
|
7
|
+
private _generateUrl: string = "https://api.heygen.com/v2/video/generate";
|
|
8
|
+
private _avatarsUrl: string = "https://api.heygen.com/v2/avatars";
|
|
9
|
+
|
|
10
|
+
constructor(apiKey: string) {
|
|
11
|
+
super(apiKey);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
public async CreateAvatarVideo(params: AvatarVideoParams): Promise<VideoResult> {
|
|
15
|
+
const videoResult = new VideoResult();
|
|
16
|
+
try {
|
|
17
|
+
const response = await axios.post(
|
|
18
|
+
this._generateUrl, {
|
|
19
|
+
video_inputs: [
|
|
20
|
+
{
|
|
21
|
+
character: {
|
|
22
|
+
type: 'avatar',
|
|
23
|
+
avatar_id: params.avatarId,
|
|
24
|
+
scale: params.scale,
|
|
25
|
+
avatar_style: params.avatarStyle,
|
|
26
|
+
offset: {x: params.offsetX, y: params.offsetY},
|
|
27
|
+
},
|
|
28
|
+
voice: {
|
|
29
|
+
type: 'audio',
|
|
30
|
+
audio_asset_id: params.audioAssetId,
|
|
31
|
+
},
|
|
32
|
+
background: {
|
|
33
|
+
type: 'image',
|
|
34
|
+
image_asset_id: params.imageAssetId,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
dimension: {
|
|
39
|
+
width: params.outputWidth,
|
|
40
|
+
height: params.outputHeight,
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
headers: { Accept: 'application/json', 'X-Api-Key': this.apiKey }
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
videoResult.videoId = response.data.data.video_id;
|
|
49
|
+
videoResult.success = true;
|
|
50
|
+
} catch (error) {
|
|
51
|
+
videoResult.success = false;
|
|
52
|
+
videoResult.errorMessage = error.message;
|
|
53
|
+
console.error(error);
|
|
54
|
+
}
|
|
55
|
+
return videoResult;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public async CreateVideoTranslation(params: any): Promise<VideoResult> {
|
|
59
|
+
throw new Error("Method not implemented.");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
public async GetAvatars(): Promise<AvatarInfo[]> {
|
|
63
|
+
const result: AvatarInfo[] = [];
|
|
64
|
+
try {
|
|
65
|
+
const response = await axios.get(this._avatarsUrl, {
|
|
66
|
+
headers: { Accept: 'application/json', 'X-Api-Key': this.apiKey }
|
|
67
|
+
});
|
|
68
|
+
for (const avatar of response.data.data.avatars) {
|
|
69
|
+
const avatarInfo = new AvatarInfo();
|
|
70
|
+
avatarInfo.id = avatar.avatar_id;
|
|
71
|
+
avatarInfo.name = avatar.avatar_name;
|
|
72
|
+
avatarInfo.gender = avatar.gender
|
|
73
|
+
avatarInfo.previewImageUrl = avatar.preview_image_url;
|
|
74
|
+
avatarInfo.previewVideoUrl = avatar.preview_video_url;
|
|
75
|
+
result.push(avatarInfo);
|
|
76
|
+
}
|
|
77
|
+
} catch (error) {
|
|
78
|
+
console.error(error);
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
public async GetSupportedMethods(): Promise<string[]> {
|
|
84
|
+
return ["CreateAvatarVideo", "CreateVideoTranslation", "GetAvatars"];
|
|
85
|
+
}
|
|
86
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"experimentalDecorators": true,
|
|
4
|
+
"esModuleInterop": true,
|
|
5
|
+
"target": "es2020",
|
|
6
|
+
"module": "CommonJS",
|
|
7
|
+
"declaration": true,
|
|
8
|
+
"declarationMap": true,
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"sourceMap": true,
|
|
11
|
+
"outDir": "dist",
|
|
12
|
+
},
|
|
13
|
+
"include": ["src/**/*", "test.ts"],
|
|
14
|
+
"exclude": ["node_modules", "**/*.spec.ts"]
|
|
15
|
+
}
|
package/typedoc.json
ADDED