n8n-nodes-smartprofiling 0.1.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.
Files changed (37) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +283 -0
  3. package/dist/credentials/SmartProfilingApi.credentials.d.ts +10 -0
  4. package/dist/credentials/SmartProfilingApi.credentials.js +48 -0
  5. package/dist/credentials/SmartProfilingApi.credentials.js.map +1 -0
  6. package/dist/credentials/smartprofiling.svg +10 -0
  7. package/dist/icons/smartprofiling.dark.svg +10 -0
  8. package/dist/icons/smartprofiling.svg +10 -0
  9. package/dist/nodes/SmartProfiling/SmartProfiling.node.d.ts +4 -0
  10. package/dist/nodes/SmartProfiling/SmartProfiling.node.js +90 -0
  11. package/dist/nodes/SmartProfiling/SmartProfiling.node.js.map +1 -0
  12. package/dist/nodes/SmartProfiling/resources/channel/index.d.ts +2 -0
  13. package/dist/nodes/SmartProfiling/resources/channel/index.js +96 -0
  14. package/dist/nodes/SmartProfiling/resources/channel/index.js.map +1 -0
  15. package/dist/nodes/SmartProfiling/resources/chapters/index.d.ts +2 -0
  16. package/dist/nodes/SmartProfiling/resources/chapters/index.js +97 -0
  17. package/dist/nodes/SmartProfiling/resources/chapters/index.js.map +1 -0
  18. package/dist/nodes/SmartProfiling/resources/chat/index.d.ts +2 -0
  19. package/dist/nodes/SmartProfiling/resources/chat/index.js +88 -0
  20. package/dist/nodes/SmartProfiling/resources/chat/index.js.map +1 -0
  21. package/dist/nodes/SmartProfiling/resources/playlist/index.d.ts +2 -0
  22. package/dist/nodes/SmartProfiling/resources/playlist/index.js +58 -0
  23. package/dist/nodes/SmartProfiling/resources/playlist/index.js.map +1 -0
  24. package/dist/nodes/SmartProfiling/resources/summarize/index.d.ts +2 -0
  25. package/dist/nodes/SmartProfiling/resources/summarize/index.js +135 -0
  26. package/dist/nodes/SmartProfiling/resources/summarize/index.js.map +1 -0
  27. package/dist/nodes/SmartProfiling/resources/transcript/index.d.ts +2 -0
  28. package/dist/nodes/SmartProfiling/resources/transcript/index.js +130 -0
  29. package/dist/nodes/SmartProfiling/resources/transcript/index.js.map +1 -0
  30. package/dist/nodes/SmartProfiling/shared/descriptions.d.ts +9 -0
  31. package/dist/nodes/SmartProfiling/shared/descriptions.js +99 -0
  32. package/dist/nodes/SmartProfiling/shared/descriptions.js.map +1 -0
  33. package/dist/nodes/SmartProfiling/smartprofiling.dark.svg +10 -0
  34. package/dist/nodes/SmartProfiling/smartprofiling.svg +10 -0
  35. package/dist/package.json +57 -0
  36. package/dist/tsconfig.tsbuildinfo +1 -0
  37. package/package.json +57 -0
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chaptersDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const showOnlyForChapters = {
6
+ resource: ['chapters'],
7
+ };
8
+ exports.chaptersDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: showOnlyForChapters,
16
+ },
17
+ options: [
18
+ {
19
+ name: 'Generate Chapters',
20
+ value: 'generate',
21
+ action: 'Auto generate video chapters',
22
+ description: 'Automatically generate chapters with timestamps from video content',
23
+ routing: {
24
+ request: {
25
+ method: 'POST',
26
+ url: '/api/v1/chapters',
27
+ body: {
28
+ videoId: '={{$parameter.videoId}}',
29
+ format: '={{$parameter.chapterFormat}}',
30
+ },
31
+ },
32
+ },
33
+ },
34
+ ],
35
+ default: 'generate',
36
+ },
37
+ {
38
+ ...descriptions_1.videoIdField,
39
+ displayOptions: {
40
+ show: showOnlyForChapters,
41
+ },
42
+ },
43
+ {
44
+ displayName: 'Output Format',
45
+ name: 'chapterFormat',
46
+ type: 'options',
47
+ displayOptions: {
48
+ show: showOnlyForChapters,
49
+ },
50
+ options: [
51
+ {
52
+ name: 'JSON',
53
+ value: 'json',
54
+ description: 'Structured JSON with timestamps and summaries',
55
+ },
56
+ {
57
+ name: 'YouTube',
58
+ value: 'youtube',
59
+ description: 'Ready to paste into YouTube description',
60
+ },
61
+ {
62
+ name: 'Markdown',
63
+ value: 'markdown',
64
+ description: 'Markdown formatted chapters',
65
+ },
66
+ ],
67
+ default: 'json',
68
+ description: 'Format of the generated chapters',
69
+ },
70
+ {
71
+ displayName: 'Additional Options',
72
+ name: 'additionalOptions',
73
+ type: 'collection',
74
+ placeholder: 'Add Option',
75
+ default: {},
76
+ displayOptions: {
77
+ show: showOnlyForChapters,
78
+ },
79
+ options: [
80
+ {
81
+ displayName: 'Min Chapter Duration',
82
+ name: 'minChapterDuration',
83
+ type: 'number',
84
+ default: 60,
85
+ description: 'Minimum duration in seconds for each chapter',
86
+ },
87
+ {
88
+ displayName: 'Max Chapters',
89
+ name: 'maxChapters',
90
+ type: 'number',
91
+ default: 10,
92
+ description: 'Maximum number of chapters to generate',
93
+ },
94
+ ],
95
+ },
96
+ ];
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SmartProfiling/resources/chapters/index.ts"],"names":[],"mappings":";;;AACA,4DAAyD;AAEzD,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,CAAC,UAAU,CAAC;CACtB,CAAC;AAEW,QAAA,mBAAmB,GAAsB;IACrD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,8BAA8B;gBACtC,WAAW,EAAE,oEAAoE;gBACjF,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,kBAAkB;wBACvB,IAAI,EAAE;4BACL,OAAO,EAAE,yBAAyB;4BAClC,MAAM,EAAE,+BAA+B;yBACvC;qBACD;iBACD;aACD;SACD;QACD,OAAO,EAAE,UAAU;KACnB;IACD;QACC,GAAG,2BAAY;QACf,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;KACD;IACD;QACC,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,SAAS;QACf,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,WAAW,EAAE,+CAA+C;aAC5D;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,yCAAyC;aACtD;YACD;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAU;gBACjB,WAAW,EAAE,6BAA6B;aAC1C;SACD;QACD,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,kCAAkC;KAC/C;IACD;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,sBAAsB;gBACnC,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,8CAA8C;aAC3D;YACD;gBACC,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,wCAAwC;aACrD;SACD;KACD;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const chatDescription: INodeProperties[];
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const showOnlyForChat = {
6
+ resource: ['chat'],
7
+ };
8
+ exports.chatDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: showOnlyForChat,
16
+ },
17
+ options: [
18
+ {
19
+ name: 'Send Message',
20
+ value: 'send',
21
+ action: 'Chat with video transcript',
22
+ description: 'Send a message to chat with the video content using AI',
23
+ routing: {
24
+ request: {
25
+ method: 'POST',
26
+ url: '/api/v1/chat',
27
+ body: {
28
+ videoId: '={{$parameter.videoId}}',
29
+ message: '={{$parameter.message}}',
30
+ conversationId: '={{$parameter.conversationId || undefined}}',
31
+ },
32
+ },
33
+ },
34
+ },
35
+ ],
36
+ default: 'send',
37
+ },
38
+ {
39
+ ...descriptions_1.videoIdField,
40
+ displayOptions: {
41
+ show: showOnlyForChat,
42
+ },
43
+ },
44
+ {
45
+ ...descriptions_1.messageField,
46
+ displayOptions: {
47
+ show: showOnlyForChat,
48
+ },
49
+ },
50
+ {
51
+ ...descriptions_1.conversationIdField,
52
+ displayOptions: {
53
+ show: showOnlyForChat,
54
+ },
55
+ },
56
+ {
57
+ displayName: 'Additional Options',
58
+ name: 'additionalOptions',
59
+ type: 'collection',
60
+ placeholder: 'Add Option',
61
+ default: {},
62
+ displayOptions: {
63
+ show: showOnlyForChat,
64
+ },
65
+ options: [
66
+ {
67
+ displayName: 'Max Tokens',
68
+ name: 'maxTokens',
69
+ type: 'number',
70
+ default: 500,
71
+ description: 'Maximum number of tokens in the response',
72
+ },
73
+ {
74
+ displayName: 'Temperature',
75
+ name: 'temperature',
76
+ type: 'number',
77
+ typeOptions: {
78
+ minValue: 0,
79
+ maxValue: 2,
80
+ numberPrecision: 1,
81
+ },
82
+ default: 0.7,
83
+ description: 'Controls randomness in responses (0 = focused, 2 = creative)',
84
+ },
85
+ ],
86
+ },
87
+ ];
88
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SmartProfiling/resources/chat/index.ts"],"names":[],"mappings":";;;AACA,4DAA4F;AAE5F,MAAM,eAAe,GAAG;IACvB,QAAQ,EAAE,CAAC,MAAM,CAAC;CAClB,CAAC;AAEW,QAAA,eAAe,GAAsB;IACjD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,eAAe;SACrB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,4BAA4B;gBACpC,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,cAAc;wBACnB,IAAI,EAAE;4BACL,OAAO,EAAE,yBAAyB;4BAClC,OAAO,EAAE,yBAAyB;4BAClC,cAAc,EAAE,6CAA6C;yBAC7D;qBACD;iBACD;aACD;SACD;QACD,OAAO,EAAE,MAAM;KACf;IACD;QACC,GAAG,2BAAY;QACf,cAAc,EAAE;YACf,IAAI,EAAE,eAAe;SACrB;KACD;IACD;QACC,GAAG,2BAAY;QACf,cAAc,EAAE;YACf,IAAI,EAAE,eAAe;SACrB;KACD;IACD;QACC,GAAG,kCAAmB;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,eAAe;SACrB;KACD;IACD;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE,eAAe;SACrB;QACD,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,0CAA0C;aACvD;YACD;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACZ,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,CAAC;oBACX,eAAe,EAAE,CAAC;iBAClB;gBACD,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,8DAA8D;aAC3E;SACD;KACD;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const playlistDescription: INodeProperties[];
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.playlistDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const showOnlyForPlaylist = {
6
+ resource: ['playlist'],
7
+ };
8
+ exports.playlistDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: showOnlyForPlaylist,
16
+ },
17
+ options: [
18
+ {
19
+ name: 'Get Videos',
20
+ value: 'getVideos',
21
+ action: 'Get playlist videos',
22
+ description: 'Get all videos from a YouTube playlist',
23
+ routing: {
24
+ request: {
25
+ method: 'GET',
26
+ url: '/api/v1/playlists',
27
+ qs: {
28
+ id: '={{$parameter.playlistId}}',
29
+ limit: '={{$parameter.limit}}',
30
+ },
31
+ },
32
+ },
33
+ },
34
+ ],
35
+ default: 'getVideos',
36
+ },
37
+ {
38
+ ...descriptions_1.playlistIdField,
39
+ displayOptions: {
40
+ show: showOnlyForPlaylist,
41
+ },
42
+ },
43
+ {
44
+ displayName: 'Limit',
45
+ name: 'limit',
46
+ type: 'number',
47
+ displayOptions: {
48
+ show: showOnlyForPlaylist,
49
+ },
50
+ default: 50,
51
+ typeOptions: {
52
+ minValue: 1,
53
+ maxValue: 500,
54
+ },
55
+ description: 'Max number of results to return',
56
+ },
57
+ ];
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SmartProfiling/resources/playlist/index.ts"],"names":[],"mappings":";;;AACA,4DAA4D;AAE5D,MAAM,mBAAmB,GAAG;IAC3B,QAAQ,EAAE,CAAC,UAAU,CAAC;CACtB,CAAC;AAEW,QAAA,mBAAmB,GAAsB;IACrD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,qBAAqB;gBAC7B,WAAW,EAAE,wCAAwC;gBACrD,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,KAAK;wBACb,GAAG,EAAE,mBAAmB;wBACxB,EAAE,EAAE;4BACH,EAAE,EAAE,4BAA4B;4BAChC,KAAK,EAAE,uBAAuB;yBAC9B;qBACD;iBACD;aACD;SACD;QACD,OAAO,EAAE,WAAW;KACpB;IACD;QACC,GAAG,8BAAe;QAClB,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;KACD;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE;YACf,IAAI,EAAE,mBAAmB;SACzB;QACD,OAAO,EAAE,EAAE;QACX,WAAW,EAAE;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,GAAG;SACb;QACD,WAAW,EAAE,iCAAiC;KAC9C;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const summarizeDescription: INodeProperties[];
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.summarizeDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const showOnlyForSummarize = {
6
+ resource: ['summarize'],
7
+ };
8
+ exports.summarizeDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: showOnlyForSummarize,
16
+ },
17
+ options: [
18
+ {
19
+ name: 'Generate Summary',
20
+ value: 'generate',
21
+ action: 'Generate AI summary of video',
22
+ description: 'Generate an AI-powered summary of a YouTube video transcript',
23
+ routing: {
24
+ request: {
25
+ method: 'POST',
26
+ url: '/api/v1/summarize',
27
+ body: {
28
+ videoId: '={{$parameter.videoId}}',
29
+ format: '={{$parameter.summaryFormat}}',
30
+ length: '={{$parameter.summaryLength}}',
31
+ },
32
+ },
33
+ },
34
+ },
35
+ ],
36
+ default: 'generate',
37
+ },
38
+ {
39
+ ...descriptions_1.videoIdField,
40
+ displayOptions: {
41
+ show: showOnlyForSummarize,
42
+ },
43
+ },
44
+ {
45
+ displayName: 'Summary Format',
46
+ name: 'summaryFormat',
47
+ type: 'options',
48
+ displayOptions: {
49
+ show: showOnlyForSummarize,
50
+ },
51
+ options: [
52
+ {
53
+ name: 'Brief',
54
+ value: 'brief',
55
+ description: 'Short summary in 2-3 sentences',
56
+ },
57
+ {
58
+ name: 'Detailed',
59
+ value: 'detailed',
60
+ description: 'Comprehensive summary with key points',
61
+ },
62
+ {
63
+ name: 'Bullet Points',
64
+ value: 'bullet-points',
65
+ description: 'Summary as bullet point list',
66
+ },
67
+ {
68
+ name: 'Key Takeaways',
69
+ value: 'key-takeaways',
70
+ description: 'Main takeaways and insights',
71
+ },
72
+ ],
73
+ default: 'detailed',
74
+ description: 'Format of the generated summary',
75
+ },
76
+ {
77
+ displayName: 'Summary Length',
78
+ name: 'summaryLength',
79
+ type: 'options',
80
+ displayOptions: {
81
+ show: showOnlyForSummarize,
82
+ },
83
+ options: [
84
+ {
85
+ name: 'Short',
86
+ value: 'short',
87
+ description: '100-200 words',
88
+ },
89
+ {
90
+ name: 'Medium',
91
+ value: 'medium',
92
+ description: '200-400 words',
93
+ },
94
+ {
95
+ name: 'Long',
96
+ value: 'long',
97
+ description: '400-600 words',
98
+ },
99
+ ],
100
+ default: 'medium',
101
+ description: 'Desired length of the summary',
102
+ },
103
+ {
104
+ displayName: 'Additional Options',
105
+ name: 'additionalOptions',
106
+ type: 'collection',
107
+ placeholder: 'Add Option',
108
+ default: {},
109
+ displayOptions: {
110
+ show: showOnlyForSummarize,
111
+ },
112
+ options: [
113
+ {
114
+ displayName: 'Language',
115
+ name: 'language',
116
+ type: 'string',
117
+ default: '',
118
+ placeholder: 'en',
119
+ description: 'Language for the summary output (leave empty for same as video)',
120
+ },
121
+ {
122
+ displayName: 'Custom Prompt',
123
+ name: 'customPrompt',
124
+ type: 'string',
125
+ typeOptions: {
126
+ rows: 3,
127
+ },
128
+ default: '',
129
+ placeholder: 'Focus on the technical aspects...',
130
+ description: 'Additional instructions for the AI summarizer',
131
+ },
132
+ ],
133
+ },
134
+ ];
135
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SmartProfiling/resources/summarize/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const transcriptDescription: INodeProperties[];
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transcriptDescription = void 0;
4
+ const descriptions_1 = require("../../shared/descriptions");
5
+ const showOnlyForTranscript = {
6
+ resource: ['transcript'],
7
+ };
8
+ exports.transcriptDescription = [
9
+ {
10
+ displayName: 'Operation',
11
+ name: 'operation',
12
+ type: 'options',
13
+ noDataExpression: true,
14
+ displayOptions: {
15
+ show: showOnlyForTranscript,
16
+ },
17
+ options: [
18
+ {
19
+ name: 'Get Single',
20
+ value: 'get',
21
+ action: 'Get transcript for a single video',
22
+ description: 'Get transcript for a single YouTube video',
23
+ routing: {
24
+ request: {
25
+ method: 'GET',
26
+ url: '/api/v1/transcripts',
27
+ qs: {
28
+ id: '={{$parameter.videoId}}',
29
+ format: '={{$parameter.format}}',
30
+ language: '={{$parameter.language}}',
31
+ },
32
+ },
33
+ },
34
+ },
35
+ {
36
+ name: 'Get Bulk',
37
+ value: 'getBulk',
38
+ action: 'Get transcripts for multiple videos',
39
+ description: 'Get transcripts for multiple YouTube videos in one request',
40
+ routing: {
41
+ request: {
42
+ method: 'POST',
43
+ url: '/api/v1/transcripts',
44
+ body: {
45
+ ids: '={{$parameter.videoIds.split("\\n").map(id => id.trim()).filter(id => id)}}',
46
+ format: '={{$parameter.format}}',
47
+ languages: '={{[$parameter.language]}}',
48
+ },
49
+ },
50
+ },
51
+ },
52
+ ],
53
+ default: 'get',
54
+ },
55
+ {
56
+ ...descriptions_1.videoIdField,
57
+ displayOptions: {
58
+ show: {
59
+ ...showOnlyForTranscript,
60
+ operation: ['get'],
61
+ },
62
+ },
63
+ },
64
+ {
65
+ ...descriptions_1.videoIdsField,
66
+ displayOptions: {
67
+ show: {
68
+ ...showOnlyForTranscript,
69
+ operation: ['getBulk'],
70
+ },
71
+ },
72
+ },
73
+ {
74
+ ...descriptions_1.formatField,
75
+ displayOptions: {
76
+ show: showOnlyForTranscript,
77
+ },
78
+ },
79
+ {
80
+ ...descriptions_1.languageField,
81
+ displayOptions: {
82
+ show: showOnlyForTranscript,
83
+ },
84
+ },
85
+ {
86
+ displayName: 'Additional Options',
87
+ name: 'additionalOptions',
88
+ type: 'collection',
89
+ placeholder: 'Add Option',
90
+ default: {},
91
+ displayOptions: {
92
+ show: {
93
+ ...showOnlyForTranscript,
94
+ format: ['text'],
95
+ },
96
+ },
97
+ options: [
98
+ {
99
+ displayName: 'Display Format',
100
+ name: 'displayFormat',
101
+ type: 'options',
102
+ options: [
103
+ {
104
+ name: 'Timeline',
105
+ value: 'timeline',
106
+ description: 'Text with timestamps',
107
+ },
108
+ {
109
+ name: 'Plain',
110
+ value: 'plain',
111
+ description: 'Plain text without timestamps',
112
+ },
113
+ {
114
+ name: 'Paragraph',
115
+ value: 'paragraph',
116
+ description: 'Text formatted as paragraphs',
117
+ },
118
+ {
119
+ name: 'Sentences',
120
+ value: 'sentences',
121
+ description: 'Text split into sentences',
122
+ },
123
+ ],
124
+ default: 'plain',
125
+ description: 'How to format the text output',
126
+ },
127
+ ],
128
+ },
129
+ ];
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/SmartProfiling/resources/transcript/index.ts"],"names":[],"mappings":";;;AACA,4DAAoG;AAEpG,MAAM,qBAAqB,GAAG;IAC7B,QAAQ,EAAE,CAAC,YAAY,CAAC;CACxB,CAAC;AAEW,QAAA,qBAAqB,GAAsB;IACvD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE,qBAAqB;SAC3B;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,mCAAmC;gBAC3C,WAAW,EAAE,2CAA2C;gBACxD,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,KAAK;wBACb,GAAG,EAAE,qBAAqB;wBAC1B,EAAE,EAAE;4BACH,EAAE,EAAE,yBAAyB;4BAC7B,MAAM,EAAE,wBAAwB;4BAChC,QAAQ,EAAE,0BAA0B;yBACpC;qBACD;iBACD;aACD;YACD;gBACC,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,qCAAqC;gBAC7C,WAAW,EAAE,4DAA4D;gBACzE,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,qBAAqB;wBAC1B,IAAI,EAAE;4BACL,GAAG,EAAE,6EAA6E;4BAClF,MAAM,EAAE,wBAAwB;4BAChC,SAAS,EAAE,4BAA4B;yBACvC;qBACD;iBACD;aACD;SACD;QACD,OAAO,EAAE,KAAK;KACd;IACD;QACC,GAAG,2BAAY;QACf,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,qBAAqB;gBACxB,SAAS,EAAE,CAAC,KAAK,CAAC;aAClB;SACD;KACD;IACD;QACC,GAAG,4BAAa;QAChB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,qBAAqB;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACtB;SACD;KACD;IACD;QACC,GAAG,0BAAW;QACd,cAAc,EAAE;YACf,IAAI,EAAE,qBAAqB;SAC3B;KACD;IACD;QACC,GAAG,4BAAa;QAChB,cAAc,EAAE;YACf,IAAI,EAAE,qBAAqB;SAC3B;KACD;IAED;QACC,WAAW,EAAE,oBAAoB;QACjC,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,GAAG,qBAAqB;gBACxB,MAAM,EAAE,CAAC,MAAM,CAAC;aAChB;SACD;QACD,OAAO,EAAE;YACR;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,UAAU;wBACjB,WAAW,EAAE,sBAAsB;qBACnC;oBACD;wBACC,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;wBACd,WAAW,EAAE,+BAA+B;qBAC5C;oBACD;wBACC,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,WAAW;wBAClB,WAAW,EAAE,8BAA8B;qBAC3C;oBACD;wBACC,IAAI,EAAE,WAAW;wBACjB,KAAK,EAAE,WAAW;wBAClB,WAAW,EAAE,2BAA2B;qBACxC;iBACD;gBACD,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,+BAA+B;aAC5C;SACD;KACD;CACD,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const videoIdField: INodeProperties;
3
+ export declare const videoIdsField: INodeProperties;
4
+ export declare const formatField: INodeProperties;
5
+ export declare const languageField: INodeProperties;
6
+ export declare const channelIdField: INodeProperties;
7
+ export declare const playlistIdField: INodeProperties;
8
+ export declare const conversationIdField: INodeProperties;
9
+ export declare const messageField: INodeProperties;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.messageField = exports.conversationIdField = exports.playlistIdField = exports.channelIdField = exports.languageField = exports.formatField = exports.videoIdsField = exports.videoIdField = void 0;
4
+ exports.videoIdField = {
5
+ displayName: 'Video ID or URL',
6
+ name: 'videoId',
7
+ type: 'string',
8
+ required: true,
9
+ default: '',
10
+ placeholder: 'dQw4w9WgXcQ or https://www.youtube.com/watch?v=dQw4w9WgXcQ',
11
+ description: 'YouTube video ID or full URL',
12
+ };
13
+ exports.videoIdsField = {
14
+ displayName: 'Video IDs or URLs',
15
+ name: 'videoIds',
16
+ type: 'string',
17
+ typeOptions: {
18
+ rows: 4,
19
+ },
20
+ required: true,
21
+ default: '',
22
+ placeholder: 'dQw4w9WgXcQ\nhttps://www.youtube.com/watch?v=xyz123',
23
+ description: 'YouTube video IDs or URLs, one per line',
24
+ };
25
+ exports.formatField = {
26
+ displayName: 'Format',
27
+ name: 'format',
28
+ type: 'options',
29
+ options: [
30
+ {
31
+ name: 'JSON',
32
+ value: 'json',
33
+ description: 'Full transcript data with segments',
34
+ },
35
+ {
36
+ name: 'Text',
37
+ value: 'text',
38
+ description: 'Plain text transcript',
39
+ },
40
+ {
41
+ name: 'SRT',
42
+ value: 'srt',
43
+ description: 'SubRip subtitle format',
44
+ },
45
+ {
46
+ name: 'VTT',
47
+ value: 'vtt',
48
+ description: 'WebVTT subtitle format',
49
+ },
50
+ ],
51
+ default: 'json',
52
+ description: 'Output format for the transcript',
53
+ };
54
+ exports.languageField = {
55
+ displayName: 'Language',
56
+ name: 'language',
57
+ type: 'string',
58
+ default: 'en',
59
+ placeholder: 'en',
60
+ description: 'Preferred transcript language code (e.g., en, es, fr)',
61
+ };
62
+ exports.channelIdField = {
63
+ displayName: 'Channel ID or Handle',
64
+ name: 'channelId',
65
+ type: 'string',
66
+ required: true,
67
+ default: '',
68
+ placeholder: '@MrBeast or UCX6OQ3DkcsbYNE6H8uQQuVA',
69
+ description: 'YouTube channel ID or handle (starting with @)',
70
+ };
71
+ exports.playlistIdField = {
72
+ displayName: 'Playlist ID or URL',
73
+ name: 'playlistId',
74
+ type: 'string',
75
+ required: true,
76
+ default: '',
77
+ placeholder: 'PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf',
78
+ description: 'YouTube playlist ID or full playlist URL',
79
+ };
80
+ exports.conversationIdField = {
81
+ displayName: 'Conversation ID',
82
+ name: 'conversationId',
83
+ type: 'string',
84
+ default: '',
85
+ description: 'Optional conversation ID for continuing a chat session. Leave empty for new conversation.',
86
+ };
87
+ exports.messageField = {
88
+ displayName: 'Message',
89
+ name: 'message',
90
+ type: 'string',
91
+ typeOptions: {
92
+ rows: 3,
93
+ },
94
+ required: true,
95
+ default: '',
96
+ placeholder: 'What is this video about?',
97
+ description: 'Your question or message about the video content',
98
+ };
99
+ //# sourceMappingURL=descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../../../nodes/SmartProfiling/shared/descriptions.ts"],"names":[],"mappings":";;;AAGa,QAAA,YAAY,GAAoB;IAC5C,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,4DAA4D;IACzE,WAAW,EAAE,8BAA8B;CAC3C,CAAC;AAGW,QAAA,aAAa,GAAoB;IAC7C,WAAW,EAAE,mBAAmB;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE;QACZ,IAAI,EAAE,CAAC;KACP;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,qDAAqD;IAClE,WAAW,EAAE,yCAAyC;CACtD,CAAC;AAGW,QAAA,WAAW,GAAoB;IAC3C,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,SAAS;IACf,OAAO,EAAE;QACR;YACC,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,oCAAoC;SACjD;QACD;YACC,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,uBAAuB;SACpC;QACD;YACC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,wBAAwB;SACrC;QACD;YACC,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,wBAAwB;SACrC;KACD;IACD,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,kCAAkC;CAC/C,CAAC;AAGW,QAAA,aAAa,GAAoB;IAC7C,WAAW,EAAE,UAAU;IACvB,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,uDAAuD;CACpE,CAAC;AAGW,QAAA,cAAc,GAAoB;IAC9C,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,sCAAsC;IACnD,WAAW,EAAE,gDAAgD;CAC7D,CAAC;AAGW,QAAA,eAAe,GAAoB;IAC/C,WAAW,EAAE,oBAAoB;IACjC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,oCAAoC;IACjD,WAAW,EAAE,0CAA0C;CACvD,CAAC;AAGW,QAAA,mBAAmB,GAAoB;IACnD,WAAW,EAAE,iBAAiB;IAC9B,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,2FAA2F;CACxG,CAAC;AAGW,QAAA,YAAY,GAAoB;IAC5C,WAAW,EAAE,SAAS;IACtB,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE;QACZ,IAAI,EAAE,CAAC;KACP;IACD,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,2BAA2B;IACxC,WAAW,EAAE,kDAAkD;CAC/D,CAAC"}