n8n-nodes-upload-post 0.1.18 → 0.1.20
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 +122 -35
- package/dist/nodes/UploadPost/UploadPost.node.d.ts +2 -0
- package/dist/nodes/UploadPost/UploadPost.node.js +654 -196
- package/dist/nodes/UploadPost/UploadPost.node.js.map +1 -1
- package/dist/package.json +4 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -33,22 +33,37 @@ The node provides the following operations grouped for clarity:
|
|
|
33
33
|
|
|
34
34
|
### Upload Actions
|
|
35
35
|
- **Upload Photo(s)**: Upload one or more photos to supported platforms.
|
|
36
|
-
- Supports file uploads and photo URLs.
|
|
37
|
-
- Common parameters: User Identifier, Platform
|
|
38
|
-
- Title/Description overrides per platform:
|
|
39
|
-
- Platform-specific parameters
|
|
40
|
-
- Pinterest
|
|
36
|
+
- Supports file uploads and photo URLs (comma-separated list).
|
|
37
|
+
- Common parameters: User Identifier, Platform Names or IDs, Title / Main Content, Description (optional), Photos (Files or URLs), Scheduled Date (optional).
|
|
38
|
+
- Title/Description overrides per platform: `instagram_title`, `facebook_title`, `tiktok_title`, `linkedin_title`, `x_title`, `youtube_title`, `pinterest_title`, `threads_title`.
|
|
39
|
+
- Platform-specific parameters available for: Facebook, Instagram, LinkedIn, Pinterest, TikTok, X (Twitter).
|
|
40
|
+
- **Pinterest**: Requires Board selection via dynamic selector.
|
|
41
|
+
- **Instagram**: Media Type (Image/Stories), TikTok: Auto-add music, disable comments, brand content toggles.
|
|
42
|
+
- **Facebook**: Page selection via dynamic selector.
|
|
43
|
+
- **LinkedIn**: Visibility settings (Photos only), Page selection via dynamic selector.
|
|
44
|
+
- **X (Twitter)**: Tagged user IDs, reply settings, geo place ID.
|
|
45
|
+
|
|
41
46
|
- **Upload Video**: Upload a single video to supported platforms.
|
|
42
47
|
- Supports file uploads and video URLs.
|
|
43
|
-
- Common parameters: User Identifier, Platform
|
|
44
|
-
- Title/Description overrides per platform
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
+
- Common parameters: User Identifier, Platform Names or IDs, Title / Main Content, Description (optional), Video (File or URL), Scheduled Date (optional).
|
|
49
|
+
- Title/Description overrides per platform: `instagram_title`, `facebook_title`, `tiktok_title`, `linkedin_title`, `x_title`, `youtube_title`, `pinterest_title`.
|
|
50
|
+
- Platform-specific parameters available for: Facebook, Instagram, LinkedIn, Pinterest, Threads, TikTok, X (Twitter), YouTube.
|
|
51
|
+
- **YouTube**: Custom thumbnail (URL/binary), tags, category, privacy, embeddable, license, public stats, made for kids, synthetic media declaration, geo-restrictions, paid product placement, recording date, default language/audio language.
|
|
52
|
+
- **Facebook**: Page selection, video state (Published/Draft), media type (Reels/Stories).
|
|
53
|
+
- **Instagram**: Media type (Reels/Stories), share to feed, collaborators, cover URL, audio name, user tags, location ID, thumb offset.
|
|
54
|
+
- **TikTok**: Privacy level, disable duet/stitch/comments, cover timestamp, brand content toggles, AI-generated content flag, post mode.
|
|
55
|
+
- **LinkedIn**: Visibility settings, Page selection, video description.
|
|
56
|
+
- **Pinterest**: Board selection, cover image options (URL/base64/keyframe).
|
|
57
|
+
- **X (Twitter)**: Tagged user IDs, reply settings, nullcast, place ID, long text handling.
|
|
58
|
+
|
|
48
59
|
- **Upload Text**: Upload a text-based post to supported platforms.
|
|
49
|
-
- Common parameters: User Identifier, Platform
|
|
50
|
-
-
|
|
51
|
-
-
|
|
60
|
+
- Common parameters: User Identifier, Platform Names or IDs, Title / Main Content (used as post content), Scheduled Date (optional).
|
|
61
|
+
- Platform-specific parameters available for: Facebook, LinkedIn, Reddit, Threads, X (Twitter).
|
|
62
|
+
- **Facebook**: Page selection, link URL for preview.
|
|
63
|
+
- **LinkedIn**: Page selection ("Me" for personal profile).
|
|
64
|
+
- **X (Twitter)**: Reply settings, poll options (2-4 options, 5-10080 min duration), post URL, quote tweet ID, geo place ID, super followers exclusivity, community ID, sharing options, direct message deep link, card URI, long text handling.
|
|
65
|
+
- **Threads**: Long text as single post option.
|
|
66
|
+
- **Reddit**: Subreddit selection, flair ID.
|
|
52
67
|
|
|
53
68
|
### Status & History Actions
|
|
54
69
|
- **Get Upload Status**: Check the status/result of an async upload by `request_id`.
|
|
@@ -65,21 +80,21 @@ The node provides the following operations grouped for clarity:
|
|
|
65
80
|
- Tip: You can schedule any Upload action by providing the `Scheduled Date` during upload.
|
|
66
81
|
|
|
67
82
|
### Platform Selectors (Dynamic)
|
|
68
|
-
- Facebook Pages
|
|
69
|
-
- LinkedIn Pages
|
|
70
|
-
- Pinterest Boards
|
|
83
|
+
- **Facebook Pages**: Dynamic picker for Facebook pages, or enter ID via expression. Required for all Facebook operations.
|
|
84
|
+
- **LinkedIn Pages**: Dynamic picker for organization pages with "Me (Personal Profile)" option, or enter ID via expression.
|
|
85
|
+
- **Pinterest Boards**: Dynamic picker for Pinterest boards, or enter ID via expression. Required for all Pinterest operations.
|
|
71
86
|
|
|
72
87
|
### User Actions (incl. JWT for custom platform integration)
|
|
73
|
-
- ⚠️ JWT endpoints are only needed if you integrate Upload-Post into your own platform and want end-users to link their social accounts via your UI.
|
|
88
|
+
- ⚠️ **JWT endpoints are only needed if you integrate Upload-Post into your own platform** and want end-users to link their social accounts via your UI.
|
|
74
89
|
- **List Users**: Retrieve Upload-Post profiles created under your API key.
|
|
75
90
|
- **Create User**: Create a new user profile.
|
|
76
91
|
- Parameters: New User Identifier (username).
|
|
77
92
|
- **Delete User**: Delete an existing user profile.
|
|
78
93
|
- Parameters: Username to delete.
|
|
79
94
|
- **Generate JWT (for platform integration)**: Generate a connection URL (JWT) for a given profile so the user can link social accounts.
|
|
80
|
-
- Parameters: User Identifier
|
|
81
|
-
- **Validate JWT (for platform integration)**: Validate a connection token
|
|
82
|
-
- Parameters: JWT.
|
|
95
|
+
- Parameters: User Identifier, optional redirect URL, logo image URL, redirect button text, platform restrictions.
|
|
96
|
+
- **Validate JWT (for platform integration)**: Validate a connection token from your backend.
|
|
97
|
+
- Parameters: JWT token (password field).
|
|
83
98
|
|
|
84
99
|
Refer to the [Upload Post API Documentation](https://docs.upload-post.com) for detailed information on parameters and platform requirements.
|
|
85
100
|
|
|
@@ -102,20 +117,92 @@ You have two ways to handle this in n8n:
|
|
|
102
117
|
- Add a Wait node (e.g., 10s), then call "Get Upload Status" passing the `request_id`.
|
|
103
118
|
- Loop with an IF node until the status is final (success/failed) or a max attempts limit is reached.
|
|
104
119
|
|
|
105
|
-
###
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
|
|
118
|
-
|
|
120
|
+
### Platform-Specific Options
|
|
121
|
+
|
|
122
|
+
#### Facebook
|
|
123
|
+
- **Page Selection**: Dynamic picker for Facebook pages (required for all operations).
|
|
124
|
+
- **Media Type (Video)**: Reels or Stories.
|
|
125
|
+
- **Video State**: Published or Draft.
|
|
126
|
+
- **Link (Text)**: URL for link preview in text posts.
|
|
127
|
+
|
|
128
|
+
#### LinkedIn
|
|
129
|
+
- **Page Selection**: Dynamic picker for organization pages ("Me" option for personal profiles).
|
|
130
|
+
- **Visibility (Photos/Video)**: Public, Connections, Logged In, Container (video only).
|
|
131
|
+
- **Video Description**: User commentary for video posts.
|
|
132
|
+
|
|
133
|
+
#### Instagram
|
|
134
|
+
- **Media Type**: Image (feed photos), Stories, Reels (video).
|
|
135
|
+
- **Video Options**: Share to feed, collaborators (comma-separated usernames), cover URL, audio name, user tags (comma-separated), location ID, thumb offset.
|
|
136
|
+
- **Photo Cover Index**: Which photo to use as cover (0-based index).
|
|
137
|
+
|
|
138
|
+
#### TikTok
|
|
139
|
+
- **Photo Options**: Auto-add music, disable comments, photo cover index, brand content toggles (paid partnerships/third-party brands vs own business).
|
|
140
|
+
- **Video Options**: Privacy level (Public/Mutual Friends/Followers/Self), disable duet/stitch/comments, cover timestamp (ms), brand content toggles, AI-generated content flag, post mode (Direct Post/Media Upload).
|
|
141
|
+
- **Brand Content**: Separate toggles for paid partnerships and own business promotion.
|
|
142
|
+
|
|
143
|
+
#### YouTube
|
|
144
|
+
- **Video Metadata**: Tags (comma-separated), category ID, privacy status (public/unlisted/private), embeddable, license, public stats viewable.
|
|
145
|
+
- **Compliance**: Made for kids declaration, self-declared made for kids (COPPA), contains synthetic media (AI transparency), has paid product placement (FTC).
|
|
146
|
+
- **Geo-Restrictions**: Allowed/blocked countries (ISO 3166-1 alpha-2 codes, mutually exclusive).
|
|
147
|
+
- **Language Settings**: Default language (title/description), default audio language.
|
|
148
|
+
- **Recording Date**: ISO 8601 timestamp.
|
|
149
|
+
- **Thumbnail**: Custom thumbnail via URL or binary file.
|
|
150
|
+
|
|
151
|
+
#### X (Twitter)
|
|
152
|
+
- **Common Options**: Tagged user IDs (comma-separated), reply settings (everyone/following/mentioned/verified/subscribers), geo place ID, long text as single post.
|
|
153
|
+
- **Video/Photo Options**: Nullcast (promoted-only posts), place ID.
|
|
154
|
+
- **Text Options**: Poll options (2-4 options, 25 chars max each, 5-10080 min duration), poll reply settings, post URL, quote tweet ID, card URI, direct message deep link.
|
|
155
|
+
- **Community Features**: Community ID, share with followers.
|
|
156
|
+
- **Super Followers**: Exclusive content for super followers.
|
|
157
|
+
- **Validation**: Poll options mutually exclusive with card URI, quote tweet ID, and direct message deep link.
|
|
158
|
+
|
|
159
|
+
#### Threads
|
|
160
|
+
- **Text Options**: Long text as single post (otherwise creates thread if >500 chars).
|
|
161
|
+
- **Video Options**: Description override support.
|
|
162
|
+
|
|
163
|
+
#### Pinterest
|
|
164
|
+
- **Board Selection**: Dynamic picker for Pinterest boards (required).
|
|
165
|
+
- **Link**: Optional link attachment.
|
|
166
|
+
- **Video Cover**: URL, base64 data with content type, or keyframe timestamp.
|
|
167
|
+
|
|
168
|
+
#### Reddit
|
|
169
|
+
- **Text Options**: Subreddit (without r/), flair ID for post categorization.
|
|
170
|
+
|
|
171
|
+
### Validation Rules & Restrictions
|
|
172
|
+
|
|
173
|
+
#### X (Twitter) Poll Validation
|
|
174
|
+
- **Options Count**: Must contain 2-4 non-empty options.
|
|
175
|
+
- **Option Length**: Each option cannot exceed 25 characters.
|
|
176
|
+
- **Duration**: Must be between 5 and 10080 minutes (5 minutes to 7 days).
|
|
177
|
+
- **Mutually Exclusive**: Poll options cannot be used with Card URI, Quote Tweet ID, or Direct Message Deep Link.
|
|
178
|
+
|
|
179
|
+
#### Platform-Specific Requirements
|
|
180
|
+
- **Facebook**: Page selection is required for all operations.
|
|
181
|
+
- **Pinterest**: Board selection is required for all operations.
|
|
182
|
+
- **LinkedIn Photos**: Only supports PUBLIC visibility (API limitation).
|
|
183
|
+
- **YouTube**: Allowed/blocked countries are mutually exclusive.
|
|
184
|
+
- **Instagram Video**: Media type automatically defaults to REELS if invalid, IMAGE for photos.
|
|
185
|
+
- **TikTok Photos**: Media type automatically defaults to IMAGE if invalid.
|
|
186
|
+
|
|
187
|
+
#### File Handling
|
|
188
|
+
- **Photos**: Comma-separated list supporting both file paths and URLs.
|
|
189
|
+
- **Videos**: Single file path or URL.
|
|
190
|
+
- **YouTube Thumbnails**: Supports both URL and binary file uploads.
|
|
191
|
+
- **Pinterest Covers**: Multiple options (URL, base64 data with content type, or keyframe timestamp).
|
|
192
|
+
|
|
193
|
+
#### Scheduling
|
|
194
|
+
- **Date Format**: Automatic conversion to ISO 8601 with UTC timezone if not provided.
|
|
195
|
+
- **Asynchronous Processing**: Automatic fallback to async mode if upload exceeds 59 seconds.
|
|
196
|
+
|
|
197
|
+
### Title & Description Overrides
|
|
198
|
+
- **`Title / Main Content`**: Generic title used across platforms.
|
|
199
|
+
- **Platform Title Overrides**: `[platform]_title` (e.g., `x_title`, `pinterest_title`, `threads_title`).
|
|
200
|
+
- Available for: instagram, facebook, tiktok, linkedin, x, youtube, pinterest, threads
|
|
201
|
+
- **`Description (Optional)`**: Generic description used for LinkedIn, Facebook, YouTube, Pinterest, TikTok when supported.
|
|
202
|
+
- **Platform Description Overrides**: `[platform]_description` (e.g., `youtube_description`, `linkedin_description`).
|
|
203
|
+
- Available for: facebook, tiktok, linkedin, youtube, pinterest
|
|
204
|
+
|
|
205
|
+
**⚠️ Runtime Validations**: The node performs automatic validations at runtime including poll constraints, mutually exclusive field checks, and platform-specific requirements. Invalid configurations will throw descriptive error messages.
|
|
119
206
|
|
|
120
207
|
Related docs:
|
|
121
208
|
- Profiles & JWT reference (context): [User Profiles API](https://docs.upload-post.com/api/user-profiles#create-user-profile)
|
|
@@ -142,4 +229,4 @@ If you want to contribute to this node or run it locally for development:
|
|
|
142
229
|
|
|
143
230
|
## License
|
|
144
231
|
|
|
145
|
-
[MIT](LICENSE.md)
|
|
232
|
+
[MIT](LICENSE.md)
|
|
@@ -3,9 +3,11 @@ export declare class UploadPost implements INodeType {
|
|
|
3
3
|
description: INodeTypeDescription;
|
|
4
4
|
methods: {
|
|
5
5
|
loadOptions: {
|
|
6
|
+
getPlatforms(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
6
7
|
getFacebookPages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
8
|
getLinkedinPages(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
8
9
|
getPinterestBoards(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
10
|
+
getUserProfiles(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
9
11
|
};
|
|
10
12
|
};
|
|
11
13
|
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|