Простое приложение для получения URL из различных служб потоковой передачи музыки и показать тот же трек (когда он доступен) из других потоковых служб. Вы можете увидеть живую демонстрацию @ https://muc.anirbanmu.com/?queries!
queries[]=spotify:track:2HYr8LZRlJKEfMbIgT0365 - Запрос типа массива (может иметь несколько), которые могут быть переданы в качестве начальных запросов для приложения. В настоящее время он поддерживает Spotify, YouTube, iTunes/Apple Music & Deezer.
cd в каталог репоnpm install Передняя часть должна быть построена и готова к работе, прежде чем бэкэнд сможет успешно обслуживать приложение.
Для разработки (построить, следите за изменениями и перестройте vue.js frontend):
npm run build-watch
Для производства (только построит):
npm run build
Встроенные файлы размещаются в каталоге ./dist .
Бэкэнд требует, чтобы клавиши API были установлены, чтобы можно было использовать соответствующие API.
SPOTIFY_CLIENT_ID=<spotify client ID> [REQUIRED]
SPOTIFY_CLIENT_SECRET=<spotify client secret> [REQUIRED]
YOUTUBE_API_KEY=<youtube API key> [REQUIRED]
GOOGLE_SITE_VERIFICATION_CODE=<google site verification code via meta tag> [OPTIONAL]
После установки переменных среды вы можете запустить бэкэнд -сервер локально с:
npm run express
Теперь вы должны иметь доступ к приложению локально @ http: // localhost: 8081
Приложение готово к развертыванию на Fly.io. Просто создайте приложение с FlyCtl и замените <APP-NAME> in fly.toml. После того, как вы создали приложение и заменили имя на fly.toml:
flyctl secrets set SPOTIFY_CLIENT_ID=<spotify client ID> [REQUIRED]flyctl secrets set SPOTIFY_CLIENT_SECRET=<spotify client secret> [REQUIRED]flyctl secrets set YOUTUBE_API_KEY=<youtube API key> [REQUIRED]flyctl deploy --build-secret GOOGLE_SITE_VERIFICATION_CODE=<google site verification code via meta tag> Если вы хотите, чтобы код проверки сайта Google на странице, в противном случае просто flyctl deploy .Большая часть кода приложения является клиентской стороной, которая является приложением Vue.js. Это обрабатывает все рендеринг, анализ URL -адресов и преобразование их в другие услуги.
Бэкэнд состоит из очень тривиального Express Server, который единственной целью является получение некоторых начальных данных на стороне сервера (токены API) и шаблон приложения для одной страницы vue.js, чтобы затем он мог работать независимо от бэкэнда. Он также обслуживает API, чтобы сами по себе привлечь токены API без этого, чтобы фронт могла периодически обновлять токены.