# Video
## Översikt

## Diskutera
~~- Publika/privata. Hur uppdaterar vi privata videos? De kommer ju inte med från den publika listan.~~
## Uppdatera senaste
Vi vill hålla nya videos uppdaterade varje timme för att de är de som oftast rör på sig mycket.
Det är så som bla YT studio presenterar och jämför stats om videos (förändring X timmar efter uppladdning).
1. Hämta videosids via spellistan från youtube api
2. Hämta de videos från databasen
3. Jämför videoidn och publiceringsdatum för att avgöra om de ska uppdateras
- Om publiceringsdatum <= x; uppdatera
## Uppdatera allt
1. Hämta spellistan från youtube api
2. Paginera och hämta alla ~~önskat antal videoids~~
3. Uppdatera videos
## Borttagning
1. Hämta alla ids via uploads-listan
2. Exportera alla videon från dessa idn
3. Jämför med Ids med de som finns db
4. Om diff, markera videos som bortagna i videodb och insights
## Video
### Video model
```json
{
created: ISODate("2021-01-15"),
updated: ISODate("2021-01-15"),
externalId: "",
externalChannelId: "",
providerId: "",
title: "",
duration: 123,
publishedAt: ISODate("2021-01-15"),
description: "",
views: 321,
likes: 123,
dislikes: 123,
commentCount: 44,
thumbnailUrl: "",
gameId: "",
tags: [],
unavailable: false
}
```
## Insights
### Channel insights
```json
{
channelDataCollected: ISODate("2021-01-15"),
externalChannelId: "",
providerId: "",
subscribers: 123,
views: 123,
channelName: "",
unavailable: false
}
```
### Video insights
```json
{
externalId: "",
externalChannelId: "",
providerId: "",
videoDataCollected: ISODate("2021-01-15"),
title: "",
duration: 123,
publishedAt: ISODate("2021-01-15"),
description: "",
videoViews: 321,
likes: 123,
dislikes: 123,
commentCount: 44,
gameId: "",
tags: [],
analyticsDataCollected: ISODate("2021-01-15"),
estimatedMinutesWatched: 654,
estimatedIncome: 1233,
unavailable: false
}
```