YouTube Playlist Notifications é um projeto criado para uso pessoal, no qual tem como objetivo enviar notificações via e-mail quando um novo vídeo é publicado em uma playlist do YouTube.
As rotinas serão executadas todos os dias no período configurado.
- Rotina que busca os vídeos no YouTube: 00h00, 06h00, 12h00 e 18h00
- Rotina que envia notificação: 00h15, 06h15, 12h15 e 18h15.
As configurações poderam ser alteradas no arquivo .env
.
Você precisará renomear o arquivo .env.example
para .env
e configurar as informações de SMTP.
git clone https://github.com/deivesfahl/nodejs-youtube-playlist-notifications
$ cd backend
$ npm install
$ npm run dev
O projeto está utilizando o ORM Prisma em conjunto com a biblioteca SQLite. As configurações podem ser alteradas em prisma/schema.prisma
.
$ cd backend
$ npx prisma migrate dev
A API ficará acessível através da URL http://localhost:3000. A porta poderá ser alterada no arquivo .env
.
GET /api/playlists
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
query |
id |
string |
ID da playlist |
GET /api/playlists/:id/informations
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
param |
id |
string |
ID da playlist - obrigatório |
POST /api/playlists
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
body |
title |
string |
Título da playlist - obrigatório |
body |
url |
string |
URL da playlist - obrigatório |
PUT /api/playlists/:id
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
param |
id |
string |
ID da playlist - obrigatório |
body |
title |
string |
Título da playlist - obrigatório |
DELETE /api/playlists/:id
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
param |
id |
string |
ID da playlist - obrigatório |
GET /api/videos
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
query |
id |
string |
ID do vídeo |
query |
playlistId |
string |
ID da playlist |
POST /api/videos
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
body |
title |
string |
Título - obrigatório |
body |
url |
string |
URL - obrigatório |
body |
imageUrl |
string |
URL da imagem - obrigatório |
body |
notify |
string |
Notificar (S ou N ) - obrigatório |
body |
playlistId |
string |
ID da playlist - obrigatório |
PUT /api/videos/:id
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
param |
id |
string |
ID do vídeo - obrigatório |
body |
title |
string |
Título |
body |
imageUrl |
string |
URL da imagem |
body |
notify |
string |
Notificar (S ou N ) |
DELETE /api/videos/:id
Local | Parâmetro | Tipo | Descrição |
---|---|---|---|
param |
id |
string |
ID do vídeo - obrigatório |
A interface ficará acessível através da URL http://localhost:9000. A porta poderá ser alterada no arquivo package.json
.
$ cd frontend
$ npm install
$ npm start