What this workflow is (About)
This workflow turns a Telegram bot into an AI-powered lyrics assistant . Users send a command plus a lyrics URL , and the flow downloads, cleans, and analyzes the text, then replies on Telegram with translated lyrics, summaries, vocabulary, poetic devices, or an interpretation— all generated by AI (OpenAI) .
What problems it solves
- Centralizes lyrics retrieval + cleanup + AI analysis in one automated flow
- Produces study-ready outputs (translation, vocabulary, figures of speech)
- Saves time for teachers, learners, and music enthusiasts with instant results in chat
Key features
-
AI analysis using OpenAI (no hardcoded secrets; uses n8n Credentials)
-
Line-by-line translation , concise summaries , vocabulary lists
-
Poetic/literary device detection and emotional/symbolic interpretation
- Robust ETL (extract, download, sanitize) and error handling
- Clear Sticky Notes documenting routing, ETL, AI prompts, and messaging
Who it's for
- Language learners & teachers
- Musicians, lyricists, and music bloggers
- Anyone studying lyrics for meaning, style, or vocabulary
Input & Output
-
Input: Telegram command with a public lyrics URL
-
Output: Telegram messages (Markdown/MarkdownV2), split into chunks if long
How it works
-
Telegram → Webhook receives a user message (eg,
/get_lyrics <URL> ).
-
Routing (If/Switch) detects which command was sent.
-
Extract URL + Download (HTTP Request) fetches the lyrics page.
-
Cleanup (Code) strips HTML/scripts/styles and normalizes whitespace.
-
OpenAI (Chat) formats the result per command (translation, summary, vocabulary, analysis).
-
Telegram (Send Message) returns the final text; long outputs are split into chunks.
-
Error handling replies with friendly guidance for unsupported/incomplete commands.
Setup steps
-
Create a Telegram bot with @BotFather and copy the bot token.
-
In n8n, create Credentials → Telegram API and paste your token (no hardcoded keys in nodes).
-
Create Credentials → OpenAI and paste your API key.
-
Import the workflow and set a short webhook path (eg, /lyrics-bot ).
-
Publish the webhook and set it on Telegram:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=https://[YOUR_DOMAIN]/webhook/lyrics-bot
-
(Optional) Restrict update types:
curl -X POST https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook \
-H "Content-Type: application/json" \
-d '{
"url": "https://[YOUR_DOMAIN]/webhook/lyrics-bot",
"allowed_updates": ["message"]
}'
-
Test by sending /start and then /get_lyrics <PUBLIC_URL> to your bot.
-
If messages are long, ensure MarkdownV2 is used and special characters are escaped.