YouTube Uploader v1.0.0
Upload videos and optional thumbnails to your YouTube channel with title, description, tags, category and privacy controls.
The omniscient:// link needs a protocol handler on your machine, which is not built yet. Until then it does nothing — use the commands below.
Actions
Jump to:
logincheck_authupload_video
Connect Google account
login
Destructive
Run the one-time Google OAuth consent flow in the browser and store the refresh token securely in the local Omniscient vault.
Inputs
| Name | Type | Required / default | Values and notes |
client_secret_file |
path |
required
|
|
profile |
profile |
optional, default youtube
|
|
Outputs
| Name | Type | Notes |
ok |
bool |
|
channel_id |
string |
|
channel_title |
string |
|
url |
string |
|
Check YouTube account
check_auth
Verify the stored Google OAuth credentials and show the connected YouTube channel without uploading anything.
Inputs
| Name | Type | Required / default | Values and notes |
profile |
profile |
optional, default youtube
|
|
Outputs
| Name | Type | Notes |
ok |
bool |
|
channel_id |
string |
|
channel_title |
string |
|
url |
string |
|
Upload a video
upload_video
Destructive
Upload one local video to the authenticated YouTube channel, with optional thumbnail and metadata.
Inputs
| Name | Type | Required / default | Values and notes |
file |
path |
required
|
|
title |
string |
required
|
|
description |
text |
optional, default ""
|
|
tags |
json |
optional, default []
|
|
privacy |
enum |
optional, default private
|
privateunlistedpublic |
category_id |
string |
optional, default 22
|
|
made_for_kids |
bool |
optional, default false
|
|
notify_subscribers |
bool |
optional, default true
|
|
thumbnail |
path |
optional, default ""
|
|
profile |
profile |
optional, default youtube
|
|
Outputs
| Name | Type | Notes |
video_id |
string |
|
url |
string |
|
title |
string |
|
thumbnail_set |
bool |
|
thumbnail_error |
string |
|
Use it
Connect Google account
Command line
shell
python app.py --action login --params '{"client_secret_file": "D:/path/to/client_secret_file"}'
# preview first - destructive action, nothing is changed:
python app.py --action login --params '{"client_secret_file": "D:/path/to/client_secret_file"}' --dry-run
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp
run_action("youtube-uploader", "login", {"client_secret_file": "D:/path/to/client_secret_file"})
# preview first:
run_action("youtube-uploader", "login", {"client_secret_file": "D:/path/to/client_secret_file"}, dry_run=true)
Workflow node
json
{
"id": "n0",
"app": "youtube-uploader",
"action": "login",
"params": {
"client_secret_file": "D:/path/to/client_secret_file"
},
"inputs": {}
}
Check YouTube account
Command line
shell
python app.py --action check_auth --params '{}'
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp
run_action("youtube-uploader", "check_auth", {})
Workflow node
json
{
"id": "n0",
"app": "youtube-uploader",
"action": "check_auth",
"params": {},
"inputs": {}
}
Upload a video
Command line
shell
python app.py --action upload_video --params '{"file": "D:/path/to/file", "title": "<title>"}'
# preview first - destructive action, nothing is changed:
python app.py --action upload_video --params '{"file": "D:/path/to/file", "title": "<title>"}' --dry-run
Run from the app’s own folder. Single quotes work in bash and PowerShell; in cmd.exe use double quotes and escape the inner ones.
MCP tool
mcp
run_action("youtube-uploader", "upload_video", {"file": "D:/path/to/file", "title": "<title>"})
# preview first:
run_action("youtube-uploader", "upload_video", {"file": "D:/path/to/file", "title": "<title>"}, dry_run=true)
Workflow node
json
{
"id": "n0",
"app": "youtube-uploader",
"action": "upload_video",
"params": {
"file": "D:/path/to/file",
"title": "<title>"
},
"inputs": {}
}
Example prompts
Things you can say to Claude, Cursor or Codex once the MCP server is registered.
- upload my video.mp4 to YouTube as unlisted
- upload lecture.mp4 to YouTube with the title 'Physics lesson 1' and category Education
- check which YouTube channel is connected