RichardVR commited on
Commit
f531dc7
·
verified ·
1 Parent(s): 3fec190

Rename app.json to requirement.txt

Browse files
Files changed (2) hide show
  1. app.json +0 -907
  2. requirement.txt +30 -0
app.json DELETED
@@ -1,907 +0,0 @@
1
- {
2
- "name": "Workflow 1",
3
- "nodes": [
4
- {
5
- "parameters": {
6
- "method": "POST",
7
- "url": "https://backend.blotato.com/v2/media",
8
- "sendHeaders": true,
9
- "headerParameters": {
10
- "parameters": [
11
- {
12
- "name": "blotato-api-key",
13
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
14
- }
15
- ]
16
- },
17
- "sendBody": true,
18
- "bodyParameters": {
19
- "parameters": [
20
- {
21
- "name": "url",
22
- "value": "={{ $('Get Avatar Video').item.json.data.video_url }}"
23
- }
24
- ]
25
- },
26
- "options": {}
27
- },
28
- "type": "n8n-nodes-base.httpRequest",
29
- "typeVersion": 4.2,
30
- "position": [
31
- 2200,
32
- 960
33
- ],
34
- "id": "3fa94104-fccc-4073-b04f-484ce3a231d8",
35
- "name": "Upload to Blotato"
36
- },
37
- {
38
- "parameters": {
39
- "method": "POST",
40
- "url": "https://backend.blotato.com/v2/posts",
41
- "sendHeaders": true,
42
- "headerParameters": {
43
- "parameters": [
44
- {
45
- "name": "blotato-api-key",
46
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
47
- }
48
- ]
49
- },
50
- "sendBody": true,
51
- "specifyBody": "json",
52
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"instagram\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_long.toJsonString() }},\n \"platform\": \"instagram\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.instagram_id }}\"\n }\n}",
53
- "options": {}
54
- },
55
- "type": "n8n-nodes-base.httpRequest",
56
- "typeVersion": 4.2,
57
- "position": [
58
- 2440,
59
- 160
60
- ],
61
- "id": "fcb1515a-3462-44d0-a201-9d6de3f00761",
62
- "name": "[Instagram] Publish via Blotato",
63
- "disabled": true
64
- },
65
- {
66
- "parameters": {
67
- "method": "POST",
68
- "url": "https://backend.blotato.com/v2/posts",
69
- "sendHeaders": true,
70
- "headerParameters": {
71
- "parameters": [
72
- {
73
- "name": "blotato-api-key",
74
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
75
- }
76
- ]
77
- },
78
- "sendBody": true,
79
- "specifyBody": "json",
80
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"facebook\",\n \"pageId\": \"{{ $('Prepare for Publish').item.json.facebook_page_id }}\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_long.toJsonString() }},\n \"platform\": \"facebook\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.facebook_id }}\"\n }\n}",
81
- "options": {}
82
- },
83
- "type": "n8n-nodes-base.httpRequest",
84
- "typeVersion": 4.2,
85
- "position": [
86
- 2440,
87
- 500
88
- ],
89
- "id": "f00e9fb2-c520-47f8-8ef7-cf0ad90333ba",
90
- "name": "[Facebook] Publish via Blotato",
91
- "disabled": true
92
- },
93
- {
94
- "parameters": {
95
- "method": "POST",
96
- "url": "https://backend.blotato.com/v2/posts",
97
- "sendHeaders": true,
98
- "headerParameters": {
99
- "parameters": [
100
- {
101
- "name": "blotato-api-key",
102
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
103
- }
104
- ]
105
- },
106
- "sendBody": true,
107
- "specifyBody": "json",
108
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"linkedin\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_long.toJsonString() }},\n \"platform\": \"linkedin\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.linkedin_id }}\"\n }\n}",
109
- "options": {}
110
- },
111
- "type": "n8n-nodes-base.httpRequest",
112
- "typeVersion": 4.2,
113
- "position": [
114
- 2440,
115
- 960
116
- ],
117
- "id": "d2afe680-6471-417e-b1bb-c2485e88a4e5",
118
- "name": "[Linkedin] Publish via Blotato",
119
- "disabled": true
120
- },
121
- {
122
- "parameters": {
123
- "method": "POST",
124
- "url": "https://backend.blotato.com/v2/posts",
125
- "sendHeaders": true,
126
- "headerParameters": {
127
- "parameters": [
128
- {
129
- "name": "blotato-api-key",
130
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
131
- }
132
- ]
133
- },
134
- "sendBody": true,
135
- "specifyBody": "json",
136
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"tiktok\",\n \"isYourBrand\": false,\n \"disabledDuet\": false,\n \"privacyLevel\": \"PUBLIC_TO_EVERYONE\",\n \"isAiGenerated\": false,\n \"disabledStitch\": false,\n \"disabledComments\": false,\n \"isBrandedContent\": false\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_long.toJsonString() }},\n \"platform\": \"tiktok\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.tiktok_id }}\"\n }\n}\n",
137
- "options": {}
138
- },
139
- "type": "n8n-nodes-base.httpRequest",
140
- "typeVersion": 4.2,
141
- "position": [
142
- 2440,
143
- 1360
144
- ],
145
- "id": "c8699912-f113-495e-94b2-c41bc7c0e31f",
146
- "name": "[Tiktok] Publish via Blotato",
147
- "disabled": true
148
- },
149
- {
150
- "parameters": {
151
- "resource": "image",
152
- "prompt": "={{ $('Prepare for Publish').item.json.final_text_long }}",
153
- "options": {
154
- "returnImageUrls": true
155
- }
156
- },
157
- "type": "@n8n/n8n-nodes-langchain.openAi",
158
- "typeVersion": 1.8,
159
- "position": [
160
- 2440,
161
- 1760
162
- ],
163
- "id": "576b4fd2-037a-485e-b45a-6ea5e17c749b",
164
- "name": "OpenAI",
165
- "disabled": true
166
- },
167
- {
168
- "parameters": {
169
- "method": "POST",
170
- "url": "https://backend.blotato.com/v2/media",
171
- "sendHeaders": true,
172
- "headerParameters": {
173
- "parameters": [
174
- {
175
- "name": "blotato-api-key",
176
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
177
- }
178
- ]
179
- },
180
- "sendBody": true,
181
- "bodyParameters": {
182
- "parameters": [
183
- {
184
- "name": "url",
185
- "value": "={{ $json.url }}"
186
- }
187
- ]
188
- },
189
- "options": {}
190
- },
191
- "type": "n8n-nodes-base.httpRequest",
192
- "typeVersion": 4.2,
193
- "position": [
194
- 2660,
195
- 1760
196
- ],
197
- "id": "f1431dec-cdd0-4425-a2d3-603f69bd6cf5",
198
- "name": "Upload to Blotato - Image",
199
- "disabled": true
200
- },
201
- {
202
- "parameters": {
203
- "method": "POST",
204
- "url": "https://backend.blotato.com/v2/posts",
205
- "sendHeaders": true,
206
- "headerParameters": {
207
- "parameters": [
208
- {
209
- "name": "blotato-api-key",
210
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
211
- }
212
- ]
213
- },
214
- "sendBody": true,
215
- "specifyBody": "json",
216
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"pinterest\",\n \"boardId\": \"{{ $('Prepare for Publish').item.json.pinterest_board_id }}\",\n \"link\": \"https://www.tiktok.com/@sabrina_ramonov\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_short.toJsonString() }},,\n \"platform\": \"pinterest\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.pinterest_id }}\"\n }\n}\n",
217
- "options": {}
218
- },
219
- "type": "n8n-nodes-base.httpRequest",
220
- "typeVersion": 4.2,
221
- "position": [
222
- 2880,
223
- 1760
224
- ],
225
- "id": "45ee656f-b145-4ea3-bda7-b5cc96a2c699",
226
- "name": "[Pinterest] Publish via Blotato",
227
- "disabled": true
228
- },
229
- {
230
- "parameters": {
231
- "method": "POST",
232
- "url": "https://backend.blotato.com/v2/posts",
233
- "sendHeaders": true,
234
- "headerParameters": {
235
- "parameters": [
236
- {
237
- "name": "blotato-api-key",
238
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
239
- }
240
- ]
241
- },
242
- "sendBody": true,
243
- "specifyBody": "json",
244
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"youtube\",\n \"title\": \"TEST VIDEO\",\n \"privacyStatus\": \"public\",\n \"shouldNotifySubscribers\": true\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_long.toJsonString() }},\n \"platform\": \"youtube\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.youtube_id }}\"\n }\n}",
245
- "options": {}
246
- },
247
- "type": "n8n-nodes-base.httpRequest",
248
- "typeVersion": 4.2,
249
- "position": [
250
- 2800,
251
- 160
252
- ],
253
- "id": "381875de-eddd-4363-afd5-06e07eb26728",
254
- "name": "[Youtube] Publish via Blotato"
255
- },
256
- {
257
- "parameters": {
258
- "method": "POST",
259
- "url": "https://backend.blotato.com/v2/posts",
260
- "sendHeaders": true,
261
- "headerParameters": {
262
- "parameters": [
263
- {
264
- "name": "blotato-api-key",
265
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
266
- }
267
- ]
268
- },
269
- "sendBody": true,
270
- "specifyBody": "json",
271
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"threads\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_short.toJsonString() }},\n \"platform\": \"threads\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.threads_id }}\"\n }\n}\n",
272
- "options": {}
273
- },
274
- "type": "n8n-nodes-base.httpRequest",
275
- "typeVersion": 4.2,
276
- "position": [
277
- 2800,
278
- 500
279
- ],
280
- "id": "68537e7b-ce14-4184-9cb9-6f6e3e52be2e",
281
- "name": "[Threads] Publish via Blotato",
282
- "disabled": true
283
- },
284
- {
285
- "parameters": {
286
- "method": "POST",
287
- "url": "https://backend.blotato.com/v2/posts",
288
- "sendHeaders": true,
289
- "headerParameters": {
290
- "parameters": [
291
- {
292
- "name": "blotato-api-key",
293
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
294
- }
295
- ]
296
- },
297
- "sendBody": true,
298
- "specifyBody": "json",
299
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"twitter\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_short.toJsonString() }},\n \"platform\": \"twitter\",\n \"mediaUrls\": [\"{{ $json.url }}\"]\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.twitter_id }}\"\n }\n}\n",
300
- "options": {}
301
- },
302
- "type": "n8n-nodes-base.httpRequest",
303
- "typeVersion": 4.2,
304
- "position": [
305
- 2800,
306
- 960
307
- ],
308
- "id": "80bba3a1-8fd0-4e01-8ce4-567d440d3b73",
309
- "name": "[Twitter] Publish via Blotato",
310
- "disabled": true
311
- },
312
- {
313
- "parameters": {
314
- "method": "POST",
315
- "url": "https://backend.blotato.com/v2/posts",
316
- "sendHeaders": true,
317
- "headerParameters": {
318
- "parameters": [
319
- {
320
- "name": "blotato-api-key",
321
- "value": "={{ $('Prepare for Publish').item.json.blotato_api_key }}"
322
- }
323
- ]
324
- },
325
- "sendBody": true,
326
- "specifyBody": "json",
327
- "jsonBody": "={\n \"post\": {\n \"target\": {\n \"targetType\": \"bluesky\"\n },\n \"content\": {\n \"text\": {{ $('Prepare for Publish').item.json.final_text_short.toJsonString() }},\n \"platform\": \"bluesky\",\n \"mediaUrls\": []\n },\n \"accountId\": \"{{ $('Prepare for Publish').item.json.bluesky_id }}\"\n }\n}\n",
328
- "options": {}
329
- },
330
- "type": "n8n-nodes-base.httpRequest",
331
- "typeVersion": 4.2,
332
- "position": [
333
- 2800,
334
- 1360
335
- ],
336
- "id": "a60e3e2d-3224-4ed9-b981-63aeaf754032",
337
- "name": "[Bluesky] Publish via Blotato",
338
- "disabled": true
339
- },
340
- {
341
- "parameters": {
342
- "rule": {
343
- "interval": [
344
- {
345
- "triggerAtHour": 10
346
- }
347
- ]
348
- }
349
- },
350
- "type": "n8n-nodes-base.scheduleTrigger",
351
- "typeVersion": 1.2,
352
- "position": [
353
- 40,
354
- 960
355
- ],
356
- "id": "fb46b60f-d916-4dfd-8c36-8f417856ac7f",
357
- "name": "Schedule Trigger"
358
- },
359
- {
360
- "parameters": {
361
- "promptType": "define",
362
- "text": "# INSTRUCTIONS\n\nPerform the following tasks, in order:\n\n1. Fetch the top 10 stories from Hacker News from the past 24 hours related to AI or LLMs. \n\n2. Select the top story that is most likely to go viral on social media. \n\n3. Fetch the article and Hacker News comments.\n\n4. Create a 30-second monologue script for an AI avatar video, following these guidelines:\n - The script should be approximately 30 seconds when spoken aloud.\n - Include lots of details and statistics from the article.\n - Use 6th grade reading level.\n - Balanced viewpoint.\n - Script should be in single paragraph\n\n5. Update the script's first 2 sentences to use sensational viral hooks that grab the viewer's attention and spark curiosity. The 3rd sentence should start diving into the article's details.\n\n6. Replace the last sentence with: \"Hit follow to stay ahead in AI!\"\n\n# OUTPUT FORMAT\n\nONLY output the exact video script. Do not output anything else. NEVER include intermediate thoughts, notes, or formatting.\nR",
363
- "options": {
364
- "returnIntermediateSteps": true
365
- }
366
- },
367
- "type": "@n8n/n8n-nodes-langchain.agent",
368
- "typeVersion": 1.8,
369
- "position": [
370
- 240,
371
- 960
372
- ],
373
- "id": "70a96a77-6df6-4717-8324-3d40334a8a74",
374
- "name": "AI Agent"
375
- },
376
- {
377
- "parameters": {
378
- "articleId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Article_ID', ``, 'string') }}",
379
- "additionalFields": {
380
- "includeComments": true
381
- }
382
- },
383
- "type": "n8n-nodes-base.hackerNewsTool",
384
- "typeVersion": 1,
385
- "position": [
386
- 480,
387
- 1160
388
- ],
389
- "id": "ffb17043-9f6d-4379-845f-684fd835269f",
390
- "name": "Fetch HN Article"
391
- },
392
- {
393
- "parameters": {
394
- "resource": "all",
395
- "additionalFields": {
396
- "keyword": "AI",
397
- "tags": [
398
- "front_page"
399
- ]
400
- }
401
- },
402
- "type": "n8n-nodes-base.hackerNewsTool",
403
- "typeVersion": 1,
404
- "position": [
405
- 320,
406
- 1160
407
- ],
408
- "id": "513d839e-b2f2-4410-8373-b8e774a0bf5e",
409
- "name": "Fetch HN Front Page"
410
- },
411
- {
412
- "parameters": {
413
- "amount": 8,
414
- "unit": "minutes"
415
- },
416
- "type": "n8n-nodes-base.wait",
417
- "typeVersion": 1.1,
418
- "position": [
419
- 1440,
420
- 960
421
- ],
422
- "id": "351ca8a7-e357-4114-8499-42b93fee76b6",
423
- "name": "Wait",
424
- "webhookId": "d9404622-0a06-4a65-959e-badd4fd87465",
425
- "alwaysOutputData": false
426
- },
427
- {
428
- "parameters": {
429
- "model": {
430
- "__rl": true,
431
- "value": "gpt-4o-mini",
432
- "mode": "list",
433
- "cachedResultName": "gpt-4o-mini"
434
- },
435
- "options": {}
436
- },
437
- "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
438
- "typeVersion": 1.2,
439
- "position": [
440
- 180,
441
- 1160
442
- ],
443
- "id": "2c2baeca-4885-4098-b85a-fdbe924d1f21",
444
- "name": "Write Script",
445
- "credentials": {
446
- "openAiApi": {
447
- "id": "F9KdoKWLuehFNuFM",
448
- "name": "OpenAi account (1)"
449
- }
450
- }
451
- },
452
- {
453
- "parameters": {
454
- "mode": "raw",
455
- "jsonOutput": "{\n \"heygen_api_key\": \"OTdmMGZlYjVhMGQzNDZlNjhmZGMwZWQ3MjNjZjJmNTAtMTc1MDg4NDgwNA==\",\n \"avatar_id\": \"c67f3f55c5fd49d080e19a2ea9666e77\",\n \"voice_id\": \"e515d746526f448fa533afddc97e4933\",\n \"background_video_url\": \"https://database.blotato.io/storage/v1/object/public/public_media/4ddd33eb-e811-4ab5-93e1-2cd0b7e8fb3f/videogen2-render-e6b398a2-5859-4a77-88ef-2345bcefdc98.mp4\"\n}\n",
456
- "options": {}
457
- },
458
- "type": "n8n-nodes-base.set",
459
- "typeVersion": 3.4,
460
- "position": [
461
- 1120,
462
- 960
463
- ],
464
- "id": "dd76714f-100c-4bb0-bff3-a62243c67319",
465
- "name": "Setup Heygen"
466
- },
467
- {
468
- "parameters": {
469
- "url": "https://api.heygen.com/v1/video_status.get",
470
- "sendQuery": true,
471
- "queryParameters": {
472
- "parameters": [
473
- {
474
- "name": "video_id",
475
- "value": "={{ $('Create Avatar Video').item.json.data.video_id }}"
476
- }
477
- ]
478
- },
479
- "sendHeaders": true,
480
- "headerParameters": {
481
- "parameters": [
482
- {
483
- "name": "X-Api-Key",
484
- "value": "={{ $('Setup Heygen').item.json.heygen_api_key }}"
485
- }
486
- ]
487
- },
488
- "options": {}
489
- },
490
- "type": "n8n-nodes-base.httpRequest",
491
- "typeVersion": 4.2,
492
- "position": [
493
- 1680,
494
- 960
495
- ],
496
- "id": "784c548f-6033-43b6-8e07-762561961b1c",
497
- "name": "Get Avatar Video"
498
- },
499
- {
500
- "parameters": {
501
- "content": "# Research Daily News and Write Script",
502
- "height": 2100,
503
- "width": 940,
504
- "color": 2
505
- },
506
- "type": "n8n-nodes-base.stickyNote",
507
- "typeVersion": 1,
508
- "position": [
509
- 0,
510
- 0
511
- ],
512
- "id": "aaff2eb3-2507-4748-9e76-c0531f1f5396",
513
- "name": "Sticky Note"
514
- },
515
- {
516
- "parameters": {
517
- "content": "# Create AI Avatar Video\n\n- Heygen API plan (paid) is required; the free plan is insufficient.\n- if you have a long script, you may need to increase the WAIT time.\n- you can use Elevenlabs voice by integrating Elevenlabs from within Heygen app.",
518
- "height": 2100,
519
- "width": 800,
520
- "color": 3
521
- },
522
- "type": "n8n-nodes-base.stickyNote",
523
- "typeVersion": 1,
524
- "position": [
525
- 1060,
526
- 0
527
- ],
528
- "id": "eebb5349-8ce0-404d-8f78-ccbf40773f7a",
529
- "name": "Sticky Note1"
530
- },
531
- {
532
- "parameters": {
533
- "content": "# Publish to Social Media\n\n- Sign up for Blotato: https://www.blotato.com\n- Blotato's API currently doesn't support uploading videos to Bluesky or Pinterest. \n- This feature will be released in the future, so I've deactivated the nodes for now.",
534
- "height": 2100,
535
- "width": 1120,
536
- "color": 4
537
- },
538
- "type": "n8n-nodes-base.stickyNote",
539
- "typeVersion": 1,
540
- "position": [
541
- 1980,
542
- 0
543
- ],
544
- "id": "eaf2e2d7-b8af-4030-85ac-f424f418ac29",
545
- "name": "Sticky Note2"
546
- },
547
- {
548
- "parameters": {
549
- "mode": "raw",
550
- "jsonOutput": "={\n \"blotato_api_key\": \"blt_a4X6NhON82hC1BjW6M3TnIwizVQPfHXnzxlG5HF8lws=\",\n \"instagram_id\": \"\",\n \"youtube_id\": \"5174\",\n \"tiktok_id\": \"\",\n \"facebook_id\": \"\",\n \"facebook_page_id\": \"\",\n \"threads_id\": \"\",\n \"twitter_id\": \"\",\n \"linkedin_id\": \"\",\n \"pinterest_id\": \"\",\n \"pinterest_board_id\": \"\",\n \"bluesky_id\": \"\",\n \"final_text_long\": {{ $('Write Long Caption').item.json.message.content.toJsonString() }},\n \"final_text_short\": {{ $('Write Short Caption').item.json.message.content.toJsonString() }}\n}",
551
- "options": {}
552
- },
553
- "type": "n8n-nodes-base.set",
554
- "typeVersion": 3.4,
555
- "position": [
556
- 2040,
557
- 960
558
- ],
559
- "id": "8f1894f0-825a-4bda-9165-87d4d6cc5636",
560
- "name": "Prepare for Publish"
561
- },
562
- {
563
- "parameters": {
564
- "modelId": {
565
- "__rl": true,
566
- "value": "gpt-4o",
567
- "mode": "list",
568
- "cachedResultName": "GPT-4O"
569
- },
570
- "messages": {
571
- "values": [
572
- {
573
- "content": "=# EXAMPLE\n\n<example>\nMany people have recently asked me about ask engine optimization, which is all about optimizing your website and existing content, so it can be pulled into ChatGPT and other generative AI tools. Consider that generative AI tools tend to be more conversational in nature and have a Q&A type format, so search engines will want to pull in snippets that concisely answer a user’s question.- what is ask engine optimization in the age of AI?- How does traditional SEO compare to ask engine optimization today?- top tips and tricks to get started with ask engine optimization?\n\n#ai #askengineoptimization #chatgpts #seo #aitools #digitalmarketing\n</example>\n\n# CONTEXT\n\nInfer the topic from the sources provided.\n\n# WRITING STYLE\n\nHere’s how you always write:\n\n<writing_style>\n\n- Your writing style is spartan and informative.\n- Use clear, simple language.\n- Employ short, impactful sentences.\n- Use active voice; avoid passive voice.\n- Focus on practical, actionable insights.\n- Incorporate data or statistics to support claims when possible.\n- Use \"\"\"\"\"\"\"\"you\"\"\"\"\"\"\"\" and \"\"\"\"\"\"\"\"your\"\"\"\"\"\"\"\" to directly address the reader.\n- Avoid metaphors and clichés.\n- Avoid generalizations.\n- Do not include common setup language in any sentence, including: in conclusion, in closing, etc.\n- Do not output warnings or notes—just the output requested.\n- Do not use hashtags.\n- Do not use semicolons.\n- Do not use emojis.\n- Do not use asterisks.\n- Do not use adjectives and adverbs.\n- Do NOT use these words:\n\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"can, may, just, that, very, really, literally, actually, certainly, probably, basically, could, maybe, delve, embark, enlightening, esteemed, shed light, craft, crafting, imagine, realm, game-changer, unlock, discover, skyrocket, abyss, you're not alone, in a world where, revolutionize, disruptive, utilize, utilizing, dive deep, tapestry, illuminate, unveil, pivotal, enrich, intricate, elucidate, hence, furthermore, realm, however, harness, exciting, groundbreaking, cutting-edge, remarkable, it. remains to be seen, glimpse into, navigating, landscape, stark, testament, in summary, in conclusion, moreover, boost, bustling, opened up, powerful, inquiries, ever-evolving\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n</writing_style>\n\n# PLANNING\n\nYour goal is to write a 50-word video caption based on the provided source.\n\n1. Analyze the provided sources thoroughly.\n2. Study the <example> post carefully. You will be asked to replicate their:\n - Overall structure.\n - Tone and voice.\n - Formatting (including line breaks and spacing).\n - Length (aim for a similarly detailed post).\n - Absence of emojis.\n - Use of hashtags.\n - Emotional resonance.\n\n# OUTPUT\nFollow the GUIDELINES below to write the post. Use your analysis from step 1 and step 2. Use the provided sources as the foundation for your post, expanding on it significantly while maintaining the style and structure of the examples provided from step 2. You MUST use information from the provided sources. Make sure you adhere to your <writing_style>.\n\n<guidelines>\nThe description should be structured as follows:\n1. Start with 1 paragraph summarizing the source\n2. Newline, followed by 3 bullet points of questions that a viewer might ask on a search engine about the source\n3. Newline, followed by these hashtags: #ai #artificialintelligence #ainews #sabrinaramonov #aiavatar\n</guidelines>\n\nTake a deep breath and take it step-by-step!\n\n# INPUT\nUse the following information sources:\n<sources>\n{{ $json.output }}\n</sources>"
574
- }
575
- ]
576
- },
577
- "options": {}
578
- },
579
- "type": "@n8n/n8n-nodes-langchain.openAi",
580
- "typeVersion": 1.8,
581
- "position": [
582
- 600,
583
- 840
584
- ],
585
- "id": "e305e9c2-3cbe-42d3-bb61-9d4ce875aa5d",
586
- "name": "Write Long Caption",
587
- "credentials": {
588
- "openAiApi": {
589
- "id": "F9KdoKWLuehFNuFM",
590
- "name": "OpenAi account (1)"
591
- }
592
- }
593
- },
594
- {
595
- "parameters": {
596
- "modelId": {
597
- "__rl": true,
598
- "value": "gpt-4o",
599
- "mode": "list",
600
- "cachedResultName": "GPT-4O"
601
- },
602
- "messages": {
603
- "values": [
604
- {
605
- "content": "=Write a spartan 2-sentence caption summarizing the video content, use 6th grade language, balanced neutral perspective, no emojis:\n\n<content>\n{{ $json.message.content }}\n</content>"
606
- }
607
- ]
608
- },
609
- "options": {}
610
- },
611
- "type": "@n8n/n8n-nodes-langchain.openAi",
612
- "typeVersion": 1.8,
613
- "position": [
614
- 600,
615
- 1080
616
- ],
617
- "id": "d58aea0c-6a2a-410e-9efb-7cf7ba63b884",
618
- "name": "Write Short Caption",
619
- "credentials": {
620
- "openAiApi": {
621
- "id": "F9KdoKWLuehFNuFM",
622
- "name": "OpenAi account (1)"
623
- }
624
- }
625
- },
626
- {
627
- "parameters": {
628
- "method": "POST",
629
- "url": "https://api.heygen.com/v2/video/generate",
630
- "sendHeaders": true,
631
- "headerParameters": {
632
- "parameters": [
633
- {
634
- "name": "X-Api-Key",
635
- "value": "={{ $json.heygen_api_key }}"
636
- }
637
- ]
638
- },
639
- "sendBody": true,
640
- "specifyBody": "json",
641
- "jsonBody": "={\n \"video_inputs\": [\n {\n \"character\": {\n \"type\": \"avatar\",\n \"avatar_id\": \"{{ $json.avatar_id }}\",\n \"avatar_style\": \"normal\",\n \"scale\": 1.0,\n \"offset\": {\n \"x\": 0.0,\n \"y\": 0.0\n },\n \"matting\": true\n },\n \"voice\": {\n \"type\": \"text\",\n \"input_text\": \"{{ $('AI Agent').item.json.output }}\",\n \"voice_id\": \"{{ $json.voice_id }}\",\n \"speed\": 1.1,\n \"pitch\": 50,\n \"emotion\": \"Excited\"\n },\n \"background\": {\n \"type\": \"video\",\n \"url\": \"{{ $json.background_video_url }}\",\n \"play_style\": \"loop\",\n \"fit\": \"cover\"\n }\n }\n ],\n \"dimension\": {\n \"width\": 720,\n \"height\": 1280\n },\n \"aspect_ratio\": \"9:16\",\n \"caption\": false,\n \"title\": \"n8n TEST AVATAR\"\n}",
642
- "options": {}
643
- },
644
- "type": "n8n-nodes-base.httpRequest",
645
- "typeVersion": 4.2,
646
- "position": [
647
- 1280,
648
- 960
649
- ],
650
- "id": "eb1af192-6893-4c6b-b9cf-619487264a15",
651
- "name": "Create Avatar Video",
652
- "retryOnFail": false,
653
- "executeOnce": false,
654
- "alwaysOutputData": false
655
- },
656
- {
657
- "parameters": {
658
- "content": "## Make sure you fill out \"Setup Heygen\"",
659
- "height": 180,
660
- "width": 150,
661
- "color": 6
662
- },
663
- "type": "n8n-nodes-base.stickyNote",
664
- "typeVersion": 1,
665
- "position": [
666
- 1100,
667
- 1140
668
- ],
669
- "id": "889115b7-bd33-4625-836e-e3c3c3c6c2c1",
670
- "name": "Sticky Note3"
671
- },
672
- {
673
- "parameters": {
674
- "content": "## Make sure you fill out \"Prepare for Publish\"",
675
- "height": 180,
676
- "width": 160,
677
- "color": 6
678
- },
679
- "type": "n8n-nodes-base.stickyNote",
680
- "typeVersion": 1,
681
- "position": [
682
- 2020,
683
- 1140
684
- ],
685
- "id": "d8cedc2c-2637-40d9-a6f6-17a00b278927",
686
- "name": "Sticky Note4"
687
- }
688
- ],
689
- "pinData": {},
690
- "connections": {
691
- "Upload to Blotato": {
692
- "main": [
693
- [
694
- {
695
- "node": "[Instagram] Publish via Blotato",
696
- "type": "main",
697
- "index": 0
698
- },
699
- {
700
- "node": "[Facebook] Publish via Blotato",
701
- "type": "main",
702
- "index": 0
703
- },
704
- {
705
- "node": "[Linkedin] Publish via Blotato",
706
- "type": "main",
707
- "index": 0
708
- },
709
- {
710
- "node": "[Tiktok] Publish via Blotato",
711
- "type": "main",
712
- "index": 0
713
- },
714
- {
715
- "node": "OpenAI",
716
- "type": "main",
717
- "index": 0
718
- },
719
- {
720
- "node": "[Youtube] Publish via Blotato",
721
- "type": "main",
722
- "index": 0
723
- },
724
- {
725
- "node": "[Threads] Publish via Blotato",
726
- "type": "main",
727
- "index": 0
728
- },
729
- {
730
- "node": "[Twitter] Publish via Blotato",
731
- "type": "main",
732
- "index": 0
733
- },
734
- {
735
- "node": "[Bluesky] Publish via Blotato",
736
- "type": "main",
737
- "index": 0
738
- }
739
- ]
740
- ]
741
- },
742
- "OpenAI": {
743
- "main": [
744
- [
745
- {
746
- "node": "Upload to Blotato - Image",
747
- "type": "main",
748
- "index": 0
749
- }
750
- ]
751
- ]
752
- },
753
- "Upload to Blotato - Image": {
754
- "main": [
755
- [
756
- {
757
- "node": "[Pinterest] Publish via Blotato",
758
- "type": "main",
759
- "index": 0
760
- }
761
- ]
762
- ]
763
- },
764
- "Schedule Trigger": {
765
- "main": [
766
- [
767
- {
768
- "node": "AI Agent",
769
- "type": "main",
770
- "index": 0
771
- }
772
- ]
773
- ]
774
- },
775
- "AI Agent": {
776
- "main": [
777
- [
778
- {
779
- "node": "Write Long Caption",
780
- "type": "main",
781
- "index": 0
782
- }
783
- ]
784
- ]
785
- },
786
- "Fetch HN Article": {
787
- "ai_tool": [
788
- [
789
- {
790
- "node": "AI Agent",
791
- "type": "ai_tool",
792
- "index": 0
793
- }
794
- ]
795
- ]
796
- },
797
- "Fetch HN Front Page": {
798
- "ai_tool": [
799
- [
800
- {
801
- "node": "AI Agent",
802
- "type": "ai_tool",
803
- "index": 0
804
- }
805
- ]
806
- ]
807
- },
808
- "Write Script": {
809
- "ai_languageModel": [
810
- [
811
- {
812
- "node": "AI Agent",
813
- "type": "ai_languageModel",
814
- "index": 0
815
- }
816
- ]
817
- ]
818
- },
819
- "Setup Heygen": {
820
- "main": [
821
- [
822
- {
823
- "node": "Create Avatar Video",
824
- "type": "main",
825
- "index": 0
826
- }
827
- ]
828
- ]
829
- },
830
- "Wait": {
831
- "main": [
832
- [
833
- {
834
- "node": "Get Avatar Video",
835
- "type": "main",
836
- "index": 0
837
- }
838
- ]
839
- ]
840
- },
841
- "Get Avatar Video": {
842
- "main": [
843
- [
844
- {
845
- "node": "Prepare for Publish",
846
- "type": "main",
847
- "index": 0
848
- }
849
- ]
850
- ]
851
- },
852
- "Prepare for Publish": {
853
- "main": [
854
- [
855
- {
856
- "node": "Upload to Blotato",
857
- "type": "main",
858
- "index": 0
859
- }
860
- ]
861
- ]
862
- },
863
- "Write Long Caption": {
864
- "main": [
865
- [
866
- {
867
- "node": "Write Short Caption",
868
- "type": "main",
869
- "index": 0
870
- }
871
- ]
872
- ]
873
- },
874
- "Write Short Caption": {
875
- "main": [
876
- [
877
- {
878
- "node": "Setup Heygen",
879
- "type": "main",
880
- "index": 0
881
- }
882
- ]
883
- ]
884
- },
885
- "Create Avatar Video": {
886
- "main": [
887
- [
888
- {
889
- "node": "Wait",
890
- "type": "main",
891
- "index": 0
892
- }
893
- ]
894
- ]
895
- }
896
- },
897
- "active": false,
898
- "settings": {
899
- "executionOrder": "v1"
900
- },
901
- "versionId": "bdf003ba-cc90-4cdb-8ae8-d946966fb050",
902
- "meta": {
903
- "instanceId": "4524b680f47c2cca4320dc7db8ea4881b7a84dc24b2f6183ec019ee71e07144b"
904
- },
905
- "id": "CHYuRjzU7QJyE564",
906
- "tags": []
907
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
requirement.txt ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Core dependencies for n8n2py converted workflow
2
+ fastapi>=0.104.0
3
+ uvicorn[standard]>=0.24.0
4
+ requests>=2.31.0
5
+ python-multipart>=0.0.6
6
+
7
+ # Optional dependencies based on your workflow nodes:
8
+ # gspread>=5.12.0 # For Google Sheets
9
+ # notion-client>=2.2.1 # For Notion
10
+ # slack-sdk>=3.26.0 # For Slack
11
+ # discord.py>=2.3.0 # For Discord
12
+ # psycopg2-binary>=2.9.0 # For PostgreSQL
13
+ # pymongo>=4.6.0 # For MongoDB
14
+ # boto3>=1.34.0 # For AWS S3
15
+ # stripe>=7.8.0 # For Stripe payments
16
+ # tweepy>=4.14.0 # For Twitter
17
+ # beautifulsoup4>=4.12.0 # For web scraping
18
+ # pandas>=2.1.0 # For data processing
19
+ # Pillow>=10.1.0 # For image processing
20
+
21
+ # Development dependencies (uncomment for development)
22
+ # pytest>=7.4.0
23
+ # black>=23.11.0
24
+ # flake8>=6.1.0
25
+ # mypy>=1.7.0
26
+
27
+ # Security and monitoring (recommended for production)
28
+ # python-dotenv>=1.0.0 # Environment variables
29
+ # sentry-sdk[fastapi]>=1.38.0 # Error tracking
30
+ # prometheus-client>=0.19.0 # Metrics