[PITCH] TVShow - Uma API para buscar filmes/séries
Olá pessoal, tudo bem ?
Fiz uma publicação recentemente sobre minha aventura no ambiente mobile criando um app e uma api para buscar filmes/séries, mencionei também algumas features que o aplicativo tem, para saber mais clique aqui -> TabNews - TVShow
Hoje vim falar um pouco mais sobre a API e comentar as funcionalidades dela, ela pode ser consumida através do RapidApi - TVShow que consiste em 6 features de uma forma geral
- /Movies (Filmes)
- /Series (Série)
- /Genre (Gênero)
- /Cast (Elenco)
- /Provider (Onde assistir)
- /Language (Idiomas)
Agora irei detalhar um pouco mais o que é possível fazer em cada endpoint
/Languages
Será retornado uma lista de idiomas suportados na aplicação, será retornado uma lista de códigos onde é possível utilizar para realizar as buscas dos titulos
[... { code:"pt-BR" name:"Portuguese brazil" } ...]
/Movie
Aqui teremos todos os endpoints relacionados a filmes
/Movie/Search
Esse endpoint serve para buscar, de forma paginada, filmes a partir de um idioma para isso você pode informar os seguintes parametros na query:
params: { Language: 'pt-BR', Content: 'Exterminador do futuro', Adult: 'false', Page: '1' }
exemplo: /Movie/Search?language=pt-BR&content=Exterminador do futuro&adult=false&page=1
/Movie/TopRated
Aqui vai ser retornados os filmes mais bem avaliados
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Movie/TopRated?language=pt-BR&adult=false&page=1
/Movie/Popular
Aqui vai ser retornados os filmes mais populares do momento, são filmes que podem estar em cartaz, que recentemente tiveram muitas avaliações nos streams ou mais assitidos
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Movie/Popular?language=pt-BR&adult=false&page=1
/Movie/UpComing
Nesse endpoint serão retornados os filmes que estão em cartaz ou que entrará nos cinemas/streams na próxima semana
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Movie/UpComing?language=pt-BR&adult=false&page=1
/Movie/Discover
Aqui vai ser retornado filmes aleatorios mais assistidos ou que está em cartaz e não é popular.
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Movie/Discover?language=pt-BR&adult=false&page=1
/Movie/Detail
Esse endpoint serve para retornar os detalhes de um ou mais filmes como:
- Titulo
- Data de lançamento
- Filme com classificação +18
- Popularidade
- Sinopse
params: { Items: '1029575,466420,940721,976573,1143183', Language: 'en-US' }
exemplo: /Movie/Detail?items=1029575,466420,940721,976573,1143183&language=pt-BR
/Serie
Aqui teremos todos os endpoints relacionados as séries
/Serie/Search
Esse endpoint serve para buscar,de forma paginada, séries a partir de um idioma para isso você pode informar os seguintes parametros na query:
params: { Language: 'pt-BR', Content: 'Exterminador do futuro', Adult: 'false', Page: '1' }
exemplo: /Serie/Search?language=pt-BR&content=Exterminador do futuro&adult=false&page=1
/Serie/OnTheAir
Nesse endpoint serão retornados as séries que irão entrar no stream ou que ainda estão em exibição
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Serie/OnTheAir?language=pt-BR&adult=false&page=1
/Serie/Discover
Aqui vai ser retornado séries aleatorias mais assistidas ou que está em cartaz e não é popular.
params: { Language: 'pt-BR', Adult: 'false', Page: '1' }
exemplo: /Serie/Discover?language=pt-BR&adult=false&page=1
/Serie/Detail
Esse endpoint serve para retornar os detalhes de uma ou mais séries como:
- Titulo
- Data de lançamento
- Filme com classificação +18
- Popularidade
- Sinopse
- Número de episódios
- Número de temporadas
- Se ainda está em produção
params: { Items: '1029575,466420,940721,976573,1143183', Language: 'en-US' }
/Serie/Episodes
Aqui vai ser retornado dados dos episódios de uma série de uma temporada informada na requisição.
- Nome
- Sinopse
- Data de exibição
- Número do episódio
- Número da season
- Uma imagem do episódio
params: { ItemId: '1434', SeasonNumber: '1', Language: 'en-US' }
exemplo: /Serie/Episodes?itemId=1434&language=pt-BR&seasonNumber=1
/Genre
Aqui é o endpoint destinado a padronização dos gêneros, é retornado um id e nome que servem para identificar os gêneros dos títulos
exempo do retorno: [...{id:10759, name:"Ação e aventura"}...]
/Genre/Serie
params: { Language: 'en-US' }
exemplo: /Genre/Serie?language=pt-BR
/Genre/Movie
params: { Language: 'en-US' }
exemplo: /Genre/Movie?language=pt-BR
/WatchProvider
É o endpoint destinado a informar onde pode ser assistido, alugado ou comprado aquele título
/WatchProvider/Movie
params: {ItemId: '872585'}
exemplo: /WatchProvider/Movie?itemId=872585
/WatchProvider/Serie
params: {ItemId: '872585'}
exemplo: /WatchProvider/Serie?itemId=872585
/Cast
É o endpoint destinado a retornar o elenco de um título e seu respectivo personagem
/Cast/Movie
params: { ItemId: '872585', Language: 'pt-BR' }
exemplo: /Cast/Movie?itemId=872585
/Cast/Serie
params: { ItemId: '872585', Language: 'pt-BR' }
exemplo: /Cast/Serie?itemId=872585
Conclusão
No RapidApi - TVShow há exemplos de chamadas e retornos de todos os endpoints para que possam ser consumidos, porém qualquer dúvida estarei a disposição no privado para conversar
Atualmente estou trabalhando na inclusão de parametros em algumas rotas para que seja possível realizar uma espécie de funíl nas buscas e fazer com que cada vez mais o usuário receba indicações de titulos que seja do seu perfil.
Além disso estou buscando sempre melhorar o desempenho e segurança da aplicação para que fique sempre disponível para o uso.
Espero que de alguma forma esse post seja útil, seja em algum estudo ou na criação de sua própria aplicação.
Obrigado!
Rotas iniciando em maiúsculo? Com certeza é C#!
acertei? hahaha
você poderia implementar uma funcionalidade que fizesse também a busca por torrents com o seu respectivo link magnético, mas é claro é algo bem específico e você deve levar em consideração que pode levar ela ser de direitos autorais dos grandes estúdios, mas é assim mesmo kkk