@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.
@@ -0,0 +1,4 @@
1
+
2
+ > @memberjunction/ai-heygen@2.27.0 build
3
+ > tsc
4
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # @memberjunction/ai-heygen
2
+
3
+ ## 2.27.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [b4d3cbc]
8
+ - @memberjunction/ai@2.27.0
9
+ - @memberjunction/global@2.27.0
@@ -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
@@ -0,0 +1,2 @@
1
+ # @memberjunction/ai-elevenlabs
2
+ Simple wrapper class for HeyGen AI Models to use with the MemberJunction framework.
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
@@ -0,0 +1,4 @@
1
+ {
2
+ "extends": ["../../../../typedoc.base.json"],
3
+ "entryPoints": ["src/index.ts"]
4
+ }