YouTube to Slack, Japanese updates without copy paste
Keeping up with YouTube uploads is easy. Sharing them with a Japanese-speaking team is where the wheels come off: copy, paste, translate, reformat, find the link, post, repeat.
This YouTube Slack translation automation hits marketing teams first, but internal comms leads and community managers feel it too. You get consistent Japanese updates in Slack, without someone babysitting every new video.
Below, you’ll see how the workflow catches new uploads, translates them with DeepL, and posts a clean message to your chosen Slack channel (with the right links, every time).
How This Automation Works
Here’s the complete workflow you’ll be setting up:
n8n Workflow Template: YouTube to Slack, Japanese updates without copy paste
flowchart LR
subgraph sg0["Flow 1"]
direction LR
n0@{ icon: "mdi:cog", form: "rounded", label: "Feed Watch Trigger", pos: "b", h: 48 }
n1["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Slack Channel Post"]
n2@{ icon: "mdi:cog", form: "rounded", label: "Retrieve Video Details", pos: "b", h: 48 }
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/slack.svg' width='40' height='40' /></div><br/>Notify Skip in Slack"]
n4@{ icon: "mdi:swap-horizontal", form: "rounded", label: "Validate Title Language", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Prepare DeepL Payload"]
n6["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/deepL.dark.svg' width='40' height='40' /></div><br/>DeepL Translation Call"]
n7["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/merge.svg' width='40' height='40' /></div><br/>Combine Video + Translation"]
n8["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Shape Translated Output"]
n2 --> n5
n0 --> n4
n4 --> n2
n4 --> n3
n6 --> n7
n8 --> n1
n5 --> n6
n5 --> n7
n7 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 decision
class n5,n8 code
classDef customIcon fill:none,stroke:none
class n1,n3,n5,n6,n7,n8 customIcon
Why This Matters: Cross-language updates that don’t fall behind
If your team follows English-speaking creators, the “real work” starts after the video goes live. Someone has to notice the upload, pull the right title and description (not the cut-off RSS version), translate it, then make it readable in Slack. And if they’re busy, it waits. That delay turns “quick share” into stale news, and people stop trusting the channel. Frankly, the worst part is the mental load: you’re always wondering what got missed.
It adds up fast. Here’s where it breaks down in day-to-day operations.
- RSS titles and descriptions are often incomplete, so your Slack post ends up vague or wrong.
- Manual translation creates inconsistent tone, which means extra edits and slower approvals.
- Teams waste about 10 minutes per upload just moving text between YouTube, DeepL, and Slack.
- You end up translating content that doesn’t need it, especially when titles are already Japanese.
What You’ll Build: Auto-translate new YouTube uploads into Japanese for Slack
This workflow watches a YouTube channel for new uploads, then automatically turns each upload into a ready-to-share Slack update in Japanese. It starts with an RSS feed trigger to detect new items quickly. Next, it uses the YouTube API to fetch the full video snippet (so you get the complete title and description, not whatever the feed happened to include). The workflow checks the title language and skips translation when it’s not needed, then combines the text into a single payload for DeepL. Finally, it merges the translation back with the original metadata, shapes the message, and posts a clean Slack update that includes the right video link.
The workflow begins when a new video appears on the channel feed. DeepL translates the combined title and description into Japanese, and n8n formats it into a Slack-friendly post. If the title isn’t English, it routes to a “skip” notification so your channel stays tidy.
What You’re Building
| What Gets Automated | What You’ll Achieve |
|---|---|
|
|
Expected Results
Say you track 1 YouTube channel and it posts about 10 videos a week. Manually, you’ll usually spend about 10 minutes per video to grab the full description, run DeepL, clean the Japanese text, and format a Slack post, which is roughly 100 minutes weekly. With this workflow, the “human time” becomes a quick check in Slack, while the automation does the fetching, translating, and posting in the background. Most teams get back about 1–2 hours a week, plus fewer missed uploads.
Before You Start
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- YouTube for channel monitoring and video metadata
- DeepL to translate title and description to Japanese
- Slack to post translated updates to your channel
Skill level: Beginner. You’ll connect accounts, paste in a channel ID, and test one sample run.
Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).
Step by Step
A new video appears on the channel feed. The RSS trigger watches a specific YouTube channel and passes new items into the workflow as they’re published.
The workflow checks if translation is needed. An “If” condition validates the title language so you don’t waste time (or DeepL quota) translating content that’s already Japanese or otherwise not English.
Full YouTube details are retrieved and prepared for DeepL. The YouTube node fetches the full snippet via OAuth, then a small code step combines title and description into one clean payload for translation.
The Japanese output is merged and posted to Slack. DeepL returns the translated text, n8n merges it with the original video metadata, shapes the final message, and posts it to your chosen Slack channel. If the title fails the language check, a skip message can be sent instead.
You can easily modify TARGET_LANG to another DeepL-supported language based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the RSS Trigger
This workflow starts by watching a YouTube channel’s RSS feed for new videos.
- Add the Feed Watch Trigger node as the workflow trigger.
- Set the URL to
https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw. - Keep Options empty unless you want to limit or filter feed items.
Step 2: Validate Titles and Route Skips
Next, the workflow checks if the video title is in English and either continues or sends a skip alert to Slack.
- Open Validate Title Language and verify the regex condition uses
{{ String($('Feed Watch Trigger').item.json?.title ?? '') }}against^[A-Za-z0-9\s\W]+$. - Ensure the true output of Validate Title Language connects to Retrieve Video Details.
- Ensure the false output connects to Notify Skip in Slack for non-English titles.
- In Notify Skip in Slack, confirm the Text field is set to
= *スキップされた動画を検出しました* 📺 タイトル: {{$json.title || $json.snippet.title}} 🔗 URL: {{$json.link || `https://www.youtube.com/watch?v=${$json.id}`}} ⚠️ 理由: 英語タイトルではないため、翻訳対象外としました. - Credential Required: Connect your slackOAuth2Api credentials in Notify Skip in Slack.
Step 3: Retrieve YouTube Metadata
Pull full video metadata from YouTube for titles and descriptions.
- Open Retrieve Video Details and set Resource to
videoand Operation toget. - Set Video ID to
{{ String($json.YT_CHANNEL_ID || $json.id || $json.link || '').replace(/^yt:video:/,'').replace(/^.*(?:v=|shorts\/|youtu\.be\/)/,'').split(/[?&]/)[0] }}. - Credential Required: Connect your youTubeOAuth2Api credentials in Retrieve Video Details.
Step 4: Translate and Merge Video Content
The workflow prepares a translation payload, calls DeepL, and merges the original and translated data.
- In Prepare DeepL Payload, keep the JavaScript as provided to build
textToTranslateand enrich metadata. - Prepare DeepL Payload outputs to both DeepL Translation Call and Combine Video + Translation in parallel.
- In DeepL Translation Call, set Text to
{{ $json.textToTranslate }}and Translate To toJA. - Credential Required: Connect your deepLApi credentials in DeepL Translation Call.
- In Combine Video + Translation, set Mode to
combineand Combine By tocombineAll. - In Shape Translated Output, keep the JavaScript to extract translated title and description from the DeepL response.
Step 5: Configure the Slack Output
Send the translated and original video details to your Slack channel.
- Open Slack Channel Post and set the Channel to
=[YOUR_ID]. - Set the Text field to
=🎥 *New YouTube Video!* \n━━━━━━━━━━━━━━━ \n📌 *タイトル* \n{{ $json.title }}\n\n📝 *説明* \n{{ $json.description }}\n\n🌍 *Original Title* \n{{ $('Combine Video + Translation').item.json.title }}\n\n🗒️ *Original Description* \n{{ $('Combine Video + Translation').item.json.description }}\n\n🔗 *Link* \n<{{ $('Prepare DeepL Payload').item.json.link }}|Watch on YouTube>. - Credential Required: Connect your slackOAuth2Api credentials in Slack Channel Post.
Step 6: Test & Activate Your Workflow
Verify the translation flow and Slack notifications before enabling the automation.
- Click Execute Workflow and use a recent RSS item to simulate a new video.
- Confirm Validate Title Language routes English titles to Retrieve Video Details and non-English titles to Notify Skip in Slack.
- Verify a successful run posts a translated message in Slack via Slack Channel Post with both translated and original fields.
- Toggle the workflow to Active to begin automated processing.
Troubleshooting Tips
- YouTube credentials can expire or need specific permissions. If things break, check the YouTube OAuth connection in n8n’s Credentials tab first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- DeepL Free vs Pro use different endpoints and quotas. If translations suddenly fail, confirm your DeepL plan, endpoint setting in the DeepL node, and monthly character limit.
Quick Answers
About 30 minutes if your accounts are ready.
No. You’ll connect YouTube, DeepL, and Slack, then edit a few fields like channel ID and target language.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in DeepL API usage (it depends on how much text you translate each month).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and it’s straightforward. You can change the values in the Config (Set) node (YT_CHANNEL_ID, TARGET_LANG, SLACK_CHANNEL) to point at a different channel, language, or Slack destination. If you want richer formatting, keep the same flow and update the message shaping in the “Shape Translated Output” code step, or switch the Slack node to use Block Kit formatting. Common tweaks include skipping Shorts, ignoring videos with very short descriptions, or adding a retry path when the DeepL call returns an HTTP error.
Usually it’s an invalid key or the wrong endpoint for your DeepL plan. Regenerate the API key in DeepL, update it in n8n Credentials, and confirm you’re using the Free vs Pro endpoint that matches your account. If it works for a few runs and then stops, you may have hit a character quota, or you’re translating more text than expected because full YouTube descriptions can be long.
For most teams, it will comfortably handle dozens of videos per day; the practical limit is usually DeepL quota and API rate limits, not n8n.
Often, yes, because this workflow benefits from branching logic (skip non-English titles), merging metadata with translations, and keeping credentials managed in one place. n8n is also easier to extend when you want extras like logging translations to Google Sheets or adding retry paths on HTTP errors. Zapier and Make can still do the job, but multi-step logic and higher volume tends to get expensive quickly. If you want a setup that you can own and evolve, n8n is a strong fit. Talk to an automation expert if you’re deciding between platforms.
Once this is live, new uploads show up in Slack as clean Japanese updates, without someone doing the busywork. Set it up once, then let your team focus on the discussion, not the formatting.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.