For Security Reasons we will summuray the n8n template code into text as follow: Workflow Summary: Additional Processing:
- Sticky Note (n8n-nodes-base.stickyNote)
Details:
- Content:
## 🌐 **Generate RSS Feeds for Public Youtube Channel (No API Or Administrator permissions Required 😉)**
**``Yes, As you heard``** This Workflow using `3rd party` APIs & Solutions to get the job done. **``no need to setup anything``.**
## Workflow Steps:
- Run **`Test Workflow`**.
- Enter Channel or Video URL or ID or Username.
- Finally, the result will provide **``13 URLs (6x Community + 6x Videos + 1 XML)``**:
- 6 Formats Types is: `ATOM`, `JSON`, `MRSS`, `PLAINTEXT`, `SFEED`
- The **``13th URL``** is from YouTube Directly that contain XML file data.
[](https://n8n.io/creators/nskha)
- Sticky Note2 (n8n-nodes-base.stickyNote)
Details:
- Content:
## ℹ️ **Workarounds And Information**
### - **No need to acquire Google Cloud API** to retrieve channel data. I have implemented a free workaround method.
### - The workflow code has been **tested and proven to work** with all YouTube methods, whether for videos or channels. Regardless of whether you input URLs or usernames, the result will always be the channel ID.
### - Please be aware that the provided workarounds may become **obsolete or non-functional** in the future. I will ensure to stay updated; however, if this workflow does not work for you, please reach out to me on the n8n community.
### - We have utilized a 3rd party method to generate **multiple syntaxes of RSS feeds** as outlined below. (*The mentioned source is also capable of constructing multi-channel YouTube RSS feeds*, which I will create later for BULK channel RSS.)
- n8n Form Trigger (n8n-nodes-base.formTrigger)
- Validation Code (n8n-nodes-base.code)
Details:
- Notes:
plaintext 🤓Validate the YouTube input
- Notes:
- Switch (n8n-nodes-base.switch) Data Fetching and Processing:
- GTT (n8n-nodes-base.httpRequest)
Details:
- Notes:
plaintext 3rd party API request
- Notes:
Additional Processing:
- Set Video ID (n8n-nodes-base.set)
Details:
={{ $item("0").$node["Switch"].json["value"] }}
Data Fetching and Processing:
- Get Video ID Channel ID (n8n-nodes-base.httpRequest)
Details:
- Notes:
plaintext 3rd party API request
- Notes:
Additional Processing:
- Set XML Feed (n8n-nodes-base.set)
Details:
=https://www.youtube.com/feeds/videos.xml?channel_id={{ $item("0").$node["Get Video ID Channel ID"].json["items"]["0"]["snippet"]["channelId"] }}
- **Notes**: ```plaintext
🤖Generate XML Feed URL```
- Set XML Feed URL (n8n-nodes-base.set)
Details:
=https://www.youtube.com/feeds/videos.xml?channel_id={{ $item("0").$node["Switch"].json["value"] }}
- **Notes**: ```plaintext
🤖Generate XML Feed URL```
Data Fetching and Processing:
- Get Temporary Token (n8n-nodes-base.httpRequest)
Details:
- Notes:
plaintext 3rd party API request
- Notes:
Additional Processing:
- Set Channel Username (n8n-nodes-base.set)
Details:
={{ $item("0").$node["Switch"].json["value"] }}
Data Fetching and Processing:
- Get Channel ID (n8n-nodes-base.httpRequest)
Details:
- Notes:
plaintext 3rd party API request
- Notes:
Additional Processing:
- Set XML URL (n8n-nodes-base.set)
Details:
=https://www.youtube.com/feeds/videos.xml?channel_id={{ $json.items[0].id }}
- **Notes**: ```plaintext
🤖Generate XML Feed URL```
- Aggregate (n8n-nodes-base.aggregate)
Details:
- Notes:
plaintext 🤖Combine results in one
- Notes:
- Youtube Channel Videos RSS Formats (n8n-nodes-base.set)
Details:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Html
- ##### **📹Videos - ATOM**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Atom
- ##### **📹Videos - JSON**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Json
- ##### **📹Videos - MRSS**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Mrss
- ##### **📹Videos - TEXT**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Plaintext
- ##### **📹Videos - SFEED**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YoutubeBridge&context=By+channel+id&c={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&duration_min=&duration_max=&format=Sfeed
- ##### **📹Videos RT - XML**:
={{ $json["rss url"]["0"] }}
- **Notes**: ```plaintext
RSS Feed for channel Posts```
- Youtube Channel Community RSS Formats (n8n-nodes-base.set)
Details:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=HTML
- ##### **👥Community - ATOM**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=Atom
- ##### **👥Community - JSON**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=Json
- ##### **👥Community - MRSS**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=Mrss
- ##### **👥Community - TEXT**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=Plaintext
- ##### **👥Community - SFEED**:
=https://rss-bridge.org/bridge01/?action=display&bridge=YouTubeCommunityTabBridge&context=By+channel+ID&channel={{ $item("0").$node["Aggregate"].json["rss url"]["0"].match(/channel_id=([^&?/]+)/)[1] }}&format=Sfeed
- **Notes**: ```plaintext
RSS Feed for channel Posts```
- Merga Data of Youtube & Community RSS (n8n-nodes-base.merge)
- Format response as HTML Table (n8n-nodes-base.code)
- Respond to Webhook (n8n-nodes-base.respondToWebhook)
Details:
- Notes:
plaintext Reply to the webhook request with table
- Notes: