effidev
Video Upload Automation
A free service that turns blog posts into short-form videos and schedules them to YouTube, Instagram and TikTok.
Publishes only to accounts the user connects themselves. Free to use.
How it works
Write a post
Publish a blog post on effidev and card-news images are generated from it.
A video is built
Card images and narration are rendered into a 1080×1920 vertical video, under 60 seconds.
Connect accounts
Connect your own YouTube channel, Instagram professional account, TikTok account and X account via each platform’s official OAuth. Nothing is ever posted to an account you did not connect.
Schedule
Pick a video, an account and a time — it uploads automatically at that time.
Permissions we request and why
These permissions appear on each platform’s consent screen when you connect an account. We use them only within the scope you approve.
| Platform | Scope | How it is used |
|---|---|---|
| YouTube | youtube.upload | Uploads the generated video to the channel the user connected (videos.insert) and sets that video’s custom thumbnail (thumbnails.set). |
| YouTube | youtube.readonly | Reads, once at connect time, only the connected channel’s own ID, name and avatar (channels.list?mine=true), so we can show which channel we will publish to. youtube.upload does not authorize this call. We never read the video list, playlists or comments. |
| instagram_business_content_publish | Publishes the generated video as a Reel to the account the user connected. | |
| TikTok | video.upload | Sends the generated video to the user's TikTok drafts. The user posts it from the TikTok app. |
| TikTok | user.info.basic | Reads only the display name and avatar so the dashboard can tell connected accounts apart. |
| X | tweet.write / media.write | Uploads the generated video and posts it to the account the user connected. |
| X | users.read / tweet.read / offline.access | Reads only the connected account’s username and avatar. tweet.read is required by X alongside users.read for that lookup (GET /2/users/me); this service never reads any tweet. offline.access is used to refresh the token so a scheduled post can publish unattended. |
What we do not do
- —We never read, modify, or delete existing videos or posts on a connected account.
- —We never upload content the user did not create.
- —We never publish to an account the user has not connected.
- —We never use user content for advertising or model training.
- —TikTok receives drafts only — the user decides whether to post, inside the TikTok app.
Disconnecting and deleting data
You can disconnect any account from the dashboard at any time; stored access tokens are deleted immediately. Full account deletion is available on My Page, or by email to [email protected].
Get started
Sign in, then connect an account you own to start scheduling. Nothing is ever posted to an account you did not connect.
Sign in, connect your own accounts, and start publishing right away. Questions: [email protected].