Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted

Синхронизация Spotify, YouTube и Discord

Синхронизирует плейлисты между Spotify и YouTube с публикацией новостей в Discord. Хранит данные в Supabase и удаляет дубликаты автоматически.

Показать оригинал (англ.)
Spotify Workflow

Automated workflow: Spotify Workflow. This workflow integrates 15 different services: stickyNote, youTube, wait, scheduleTrigger, set. It contains 56 nodes and follows best practices for error handling and security.

Комбинированный (Complex)Продвинутый · 55 нодComparedatasetsYoutubeSplitinbatchesRemoveduplicates
Как это работает

Схема сценария, как в редакторе n8n: ноды и связи между ними. Кликните, чтобы рассмотреть.

клик - увеличить ⤢⑂Get playlistsnapshotspotify⑂Get playlistsnapshot1spotify⑂If differentsnapshotif◆Get all musicssupabase◆Update to_deleteto truesupabase◆Add musicsupabase≡Compare DatasetscompareDatasets⑂Spotifyspotify◆No Operation, donothingnoOp◆Get all musics notin youtube…supabase⏱Every day at noonscheduleTrigger⏱Every day at noon+ 1mnscheduleTrigger⏱Every hourscheduleTrigger◆Wait 1 hourwait≡variablesset◆Search videoyouTube◆Get video durationyouTube◆Loop Over ItemssplitInBatches⑂If video duration~= music durationif◆Add music toplaylistyouTube◆Add youtube id torowsupabase◆Discorddiscord◆Discord1discord◆Set youtube id toNOTFOUND if no…supabase◆Aggregateaggregate⑂If no resultif≡dataset≡variables2set≡variables1set◆Loop Over Items1splitInBatches≡data1set◆Get playlist itemsyouTube≡Playlist items tobe deletedcompareDatasets◆Get all musicsthat should be in…supabase◆Remove DuplicatesremoveDuplicates◆Remove video fromplaylistyouTube≡Check for deletedvideoscompareDatasets◆Setyoutube_video_id…supabase◆Get all musics tobe deletedsupabase◆Delete musicsupabase⏱Every day atmidnightscheduleTrigger≡variables3set◆Reset NOTFOUND idto NULLsupabase≡variables4set⏱Every monthscheduleTrigger⚠Error HandlerstopAndError
  1. ТриггерEvery day at noon + 1mnSchedule
  2. ТриггерEvery day at noonSchedule
  3. ТриггерEvery hourSchedule
  4. ТриггерEvery day at midnightSchedule
  5. ТриггерEvery monthSchedule
  6. Действиеvariables1Set
  7. ДействиеvariablesSet
  8. Действиеvariables4Set
  9. Действиеvariables3Set
  10. ДействиеGet playlist snapshotSpotify
  11. ДействиеGet all musics not in youtube playlistSupabase
  12. ДействиеReset NOTFOUND id to NULLSupabase
  13. ДействиеGet all musics that should be in playlistSupabase
  14. ДействиеGet playlist itemsYou Tube
  15. ДействиеGet all musics to be deletedSupabase
  16. Действиеvariables2Set
  17. ДействиеWait 1 hourWait
  18. ДействиеGet playlist snapshot1Spotify
  19. ДействиеCheck for deleted videosCompare Datasets
  20. ДействиеPlaylist items to be deletedCompare Datasets
  21. ДействиеIf different snapshotIf
  22. Обработка ошибокError HandlerStop And Error
  23. ДействиеSet youtube_video_id to nullSupabase
  24. ДействиеRemove DuplicatesRemove Duplicates
  25. ДействиеSpotifySpotify
  26. ДействиеGet all musicsSupabase
  27. ДействиеNo Operation, do nothingNo Op
  28. ДействиеRemove video from playlistYou Tube
  29. ДействиеDelete musicSupabase
  30. ДействиеCompare DatasetsCompare Datasets
  31. ДействиеAdd musicSupabase
  32. ДействиеUpdate to_delete to trueSupabase
  33. ДействиеdataSet
  34. ДействиеLoop Over Items1Split In Batches
  35. Действиеdata1Set
  36. ДействиеSearch videoYou Tube
  37. ДействиеIf no resultIf
  38. ДействиеLoop Over ItemsSplit In Batches
  39. ДействиеGet video durationYou Tube
  40. ДействиеAggregateAggregate
  41. ДействиеIf video duration ~= music durationIf
  42. ДействиеSet youtube id to NOTFOUND if no matchingSupabase
  43. ДействиеAdd music to playlistYou Tube
  44. ДействиеAdd youtube id to rowSupabase
  45. ДействиеDiscord1Discord
  46. ДействиеDiscordDiscord

Сценарий «Синхронизация Spotify, YouTube и Discord» состоит из 46 нод: Every day at noon + 1mn, Every day at noon, Every hour, Every day at midnight, Every month, variables1, variables, variables4 и других. Интеграции: Comparedatasets, Youtube, Splitinbatches, Removeduplicates, Discord, Spotify, Supabase.

Что понадобится
ПараметрЗначениеОписание
Учётные данныеComparedatasets · Youtube · Splitinbatches · Removeduplicates · Discord · Spotify · SupabaseДля каждого сервиса нужен свой ключ/токен - впишете их в n8n после установки.
Объём сценария55 нод · продвинутыйЧисло нод и уровень сложности логики. Больше нод - тоньше настройка.
Форматn8n workflow JSONГотовый воркфлоу. При развороте через кнопку импортируется автоматически.
Установка в один клик

Развернуть n8n с этим сценарием

Готовый сервер с n8n из маркетплейса Fatmetal - воркфлоу уже загружен. Рекомендованная конфигурация уже подставлена в заказ: 2 CPU · 4 ГБ · 50 ГБ. Останется вписать свои ключи, и автоматизация заработает. Нужна помощь с настройкой под нагрузку или сетью? Напишите инженеру.

Защищённый инстанс

n8n отдаём закрытым, а не голым

n8n часто атакуют - поэтому инстанс приезжает уже защищённым, без ручной настройки.

Владелец создан заранее

Аккаунт администратора настроен автоматически при развёртывании. Окно самостоятельной регистрации закрыто - никто не перехватит ваш инстанс в первые минуты после запуска (частый вектор атаки на self-hosted n8n).

Единый пароль с сервером

Логин в n8n - тот же пароль, что у вашей машины. Не нужно искать отдельные креды в файлах, меньше шансов оставить дефолт.

fail2ban против перебора

Автоматически банит IP после серии неудачных попыток входа по SSH. Защита от брутфорса из коробки.

HTTPS и security-заголовки

Трафик шифруется (Let's Encrypt, авто-обновление), выставлены HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy - защита от кликджекинга, MIME-снифинга и downgrade-атак.

Что дальше

После оплаты - сервер с готовым сценарием

Сервер создаётся автоматически за несколько минут. Ничего настраивать вручную не нужно - n8n поднимется сам, а этот сценарий уже будет внутри.

1

Сервер создаётся

После оплаты сервер разворачивается автоматически за несколько минут: ставится n8n, база данных и HTTPS. Дождитесь готовности в личном кабинете.

2

Открываете адрес

Адрес формируется из IP сервера: замените точки на дефисы и добавьте .fatmetal.net. Например IP 45.15.159.10 → https://45-15-159-10.fatmetal.net/. HTTPS уже настроен. Готовый адрес также есть в личном кабинете - можно просто скопировать его оттуда.

3

Входите готовыми данными

Аккаунт владельца уже создан - регистрировать ничего не нужно. Логин: admin@<адрес вашего сервера> (тот же адрес, что открыли на шаге 2 - например admin@45-15-159-10.fatmetal.net). Пароль - тот же, что у вашего сервера: он в личном кабинете и в /root/n8n-credentials.txt на сервере. Войдите и при желании сразу смените пароль в настройках. Интерфейс английский - у n8n нет русской локализации.

4

Сценарий уже внутри

Этот сценарий уже импортирован - найдёте его в разделе Workflows. Останется вписать свои ключи для интеграций (Comparedatasets, Youtube, Splitinbatches) в Credentials и включить сценарий.

Важно: сохраните ключ шифрования. Ключ (N8N_ENCRYPTION_KEY) и пароль базы лежат на сервере в /root/n8n-credentials.txt. Этим ключом зашифрованы учётные данные интеграций - берегите его и сделайте резервную копию: без ключа их не восстановить даже из бэкапа базы.
Оригинал сценария (англ.): «Spotify Workflow». Источник: коллекция Zie619/n8n-workflows (лицензия MIT).
Спросить инженера в TelegramМы на связи