n8n-nodes-tornado-api 1.0.2 → 1.3.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/README.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  Download YouTube videos & Spotify podcasts directly in your n8n workflows.
4
4
 
5
+ ## What's New in v1.1.0
6
+
7
+ - **🎬 Video Clipping**: Extract segments with `clip_start` and `clip_end` timestamps
8
+ - **📺 Live Stream Recording**: Record live streams with `live_recording`, `live_from_start`, `max_duration`
9
+ - **📊 Resolution Selection**: Limit quality with `max_resolution` (4K, 1080p, 720p, etc.)
10
+ - **📈 Dashboard Resource**: New operations for stats, daily metrics, cluster activity, billing
11
+ - **🔔 Enhanced Webhook Trigger**: New events (`batch_completed`, `progress`) and `job_id` filter
12
+ - **⚡ Progress Webhooks**: Get real-time updates during download/mux/upload stages
13
+
5
14
  ## Installation
6
15
 
7
16
  ### Via npm (recommended)
@@ -25,7 +34,7 @@ docker run -it --rm -p 5678:5678 \
25
34
  1. Go to **Credentials** → **New**
26
35
  2. Search for **Tornado API**
27
36
  3. Enter your API Key (starts with `sk_`)
28
- 4. Base URL: `https://tornado.velys.software` (default)
37
+ 4. Base URL: `https://api.tornadoapi.io` (default)
29
38
 
30
39
  ---
31
40
 
@@ -47,6 +56,18 @@ Creates a download job. Returns immediately with a `job_id`.
47
56
  | Filename | string | ❌ | Custom filename |
48
57
  | Folder | string | ❌ | S3 folder prefix |
49
58
  | Webhook URL | string | ❌ | Notification URL |
59
+ | Audio Only | boolean | ❌ | Extract audio only |
60
+ | Download Subtitles | boolean | ❌ | Download subtitles |
61
+ | Download Thumbnail | boolean | ❌ | Download thumbnail |
62
+ | Quality Preset | select | ❌ | highest, high, medium, low, lowest |
63
+ | Max Resolution | select | ❌ | best, 2160, 1440, 1080, 720, 480, 360 |
64
+ | Clip Start | string | ❌ | Start timestamp (HH:MM:SS or seconds) |
65
+ | Clip End | string | ❌ | End timestamp (HH:MM:SS or seconds) |
66
+ | Live Recording | boolean | ❌ | Enable live stream mode |
67
+ | Live From Start | boolean | ❌ | Record from stream beginning |
68
+ | Max Duration | number | ❌ | Max recording duration (seconds) |
69
+ | Wait for Video | boolean | ❌ | Wait for scheduled streams |
70
+ | Enable Progress Webhook | boolean | ❌ | Receive progress updates |
50
71
 
51
72
  **Output (YouTube):**
52
73
  ```json
@@ -89,6 +110,94 @@ Check the current status of a job.
89
110
 
90
111
  ---
91
112
 
113
+ ### Dashboard Operations (NEW in v1.1.0)
114
+
115
+ Monitor your Tornado API usage directly from n8n.
116
+
117
+ #### Dashboard → Get Stats
118
+ Get aggregated statistics for your API key.
119
+
120
+ **Output:**
121
+ ```json
122
+ {
123
+ "total_jobs": 1523,
124
+ "pending_jobs": 5,
125
+ "processing_jobs": 12,
126
+ "completed_jobs": 1450,
127
+ "failed_jobs": 56,
128
+ "storage_used_gb": 50.0,
129
+ "avg_processing_time_seconds": 45.2
130
+ }
131
+ ```
132
+
133
+ #### Dashboard → Get Daily Stats
134
+ Get job statistics for the last 7 days.
135
+
136
+ **Output:**
137
+ ```json
138
+ {
139
+ "daily_stats": [
140
+ { "date": "2024-01-08", "completed": 45, "failed": 2 },
141
+ { "date": "2024-01-09", "completed": 62, "failed": 5 }
142
+ ]
143
+ }
144
+ ```
145
+
146
+ #### Dashboard → Get Cluster Stats
147
+ Get real-time cluster activity.
148
+
149
+ **Output:**
150
+ ```json
151
+ {
152
+ "total_downloading": 45,
153
+ "total_muxing": 12,
154
+ "total_uploading": 8
155
+ }
156
+ ```
157
+
158
+ #### Dashboard → Get Billing
159
+ Get Stripe billing information.
160
+
161
+ **Output:**
162
+ ```json
163
+ {
164
+ "billing_enabled": true,
165
+ "total_usage_gb": 45.67,
166
+ "period_start_formatted": "Jan 01, 2024",
167
+ "period_end_formatted": "Feb 01, 2024"
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 🔔 Webhook Trigger (NEW events in v1.1.0)
174
+
175
+ Listen for Tornado events in real-time.
176
+
177
+ | Event | Description |
178
+ |-------|-------------|
179
+ | Job Completed | When a job finishes successfully |
180
+ | Job Failed | When a job fails |
181
+ | Batch Completed | When all episodes in a batch are done |
182
+ | Progress Update | Real-time progress (downloading, muxing, uploading) |
183
+ | Any Event | Trigger on all events |
184
+
185
+ **Filter Options:**
186
+ - Filter by Job ID
187
+ - Filter by Batch ID
188
+
189
+ **Example Progress Webhook Payload:**
190
+ ```json
191
+ {
192
+ "type": "progress",
193
+ "job_id": "550e8400-...",
194
+ "stage": "muxing",
195
+ "progress_percent": 33
196
+ }
197
+ ```
198
+
199
+ ---
200
+
92
201
  ## 📦 S3 Storage - How It Works
93
202
 
94
203
  ### Default Flow
@@ -455,7 +564,7 @@ To get your node listed in the official n8n integrations:
455
564
 
456
565
  ## 🔗 Links
457
566
 
458
- - [Tornado API](https://tornado.velys.software)
459
- - [API Documentation](https://docs.tornado.velys.software)
460
- - [Get API Key](https://tornado.velys.software/dashboard)
567
+ - [Tornado API](https://api.tornadoapi.io)
568
+ - [API Documentation](https://docs.tornadoapi.io)
569
+ - [Get API Key](https://api.tornadoapi.io/dashboard)
461
570
  - [Support](mailto:support@velys.software)
@@ -6,7 +6,7 @@ class TornadoApi {
6
6
  this.name = 'tornadoApi';
7
7
  this.displayName = 'Tornado API';
8
8
  this.icon = 'file:tornado.svg';
9
- this.documentationUrl = 'https://docs.tornado.velys.software/authentication';
9
+ this.documentationUrl = 'https://docs.tornadoapi.io/authentication';
10
10
  this.properties = [
11
11
  {
12
12
  displayName: 'API Key',
@@ -21,9 +21,16 @@ class TornadoApi {
21
21
  displayName: 'Base URL',
22
22
  name: 'baseUrl',
23
23
  type: 'string',
24
- default: 'https://tornado.velys.software',
24
+ default: 'https://api.tornadoapi.io',
25
25
  description: 'The base URL of the Tornado API',
26
26
  },
27
+ {
28
+ displayName: 'Dashboard Base URL',
29
+ name: 'dashboardBaseUrl',
30
+ type: 'string',
31
+ default: 'https://dash.tornadoapi.io',
32
+ description: 'The base URL of the Tornado Dashboard backend (required for Dashboard operations)',
33
+ },
27
34
  ];
28
35
  this.authenticate = {
29
36
  type: 'generic',
@@ -1 +1 @@
1
- {"version":3,"file":"TornadoApi.credentials.js","sourceRoot":"","sources":["../../credentials/TornadoApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,aAAa,CAAC;QAC5B,SAAI,GAAG,kBAAkB,CAAC;QAC1B,qBAAgB,GAAG,oDAAoD,CAAC;QACxE,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wCAAwC;aACrD;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,gCAAgC;gBACzC,WAAW,EAAE,iCAAiC;aAC9C;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,WAAW,EAAE,0BAA0B;iBACvC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AAxCD,gCAwCC"}
1
+ {"version":3,"file":"TornadoApi.credentials.js","sourceRoot":"","sources":["../../credentials/TornadoApi.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,UAAU;IAAvB;QACC,SAAI,GAAG,YAAY,CAAC;QACpB,gBAAW,GAAG,aAAa,CAAC;QAC5B,SAAI,GAAG,kBAAkB,CAAC;QAC1B,qBAAgB,GAAG,2CAA2C,CAAC;QAC/D,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,wCAAwC;aACrD;YACD;gBACC,WAAW,EAAE,UAAU;gBACvB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,2BAA2B;gBACpC,WAAW,EAAE,iCAAiC;aAC9C;YACD;gBACC,WAAW,EAAE,oBAAoB;gBACjC,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,4BAA4B;gBACrC,WAAW,EAAE,mFAAmF;aAChG;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,WAAW,EAAE,0BAA0B;iBACvC;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AA/CD,gCA+CC"}