[videos] Add Twitch video scrobbling
All checks were successful
build & deploy / test (push) Successful in 1m51s
build & deploy / deploy (push) Successful in 26s

This commit is contained in:
2026-04-01 12:09:05 -04:00
parent 9ce6dd8876
commit ce7128c7ac
4 changed files with 128 additions and 3 deletions

View File

@ -1,6 +1,6 @@
from dataclasses import dataclass
import re
import logging
import re
from dataclasses import dataclass
from typing import Optional
from uuid import uuid4
@ -23,6 +23,7 @@ from videos.metadata import VideoMetadata
from videos.sources.imdb import lookup_video_from_imdb
from videos.sources.tmdb import lookup_video_from_tmdb
from videos.sources.youtube import lookup_video_from_youtube
from vrobbler.apps.scrobbles.dataclasses import BaseLogData, WithPeopleLogData
YOUTUBE_VIDEO_URL = "https://www.youtube.com/watch?v="
@ -56,6 +57,7 @@ class Channel(TimeStampedModel):
options={"quality": 75},
)
youtube_id = models.CharField(max_length=255, **BNULL)
twitch_id = models.CharField(max_length=255, **BNULL)
genre = TaggableManager(through=ObjectWithGenres)
def __str__(self) -> str:
@ -245,6 +247,7 @@ class Video(ScrobblableMixin):
MOVIE = "M", _("Movie")
SKATE_VIDEO = "S", _("Skate Video")
YOUTUBE = "Y", _("YouTube Video")
TWITCH = "T", _("Twitch Video")
video_type = models.CharField(
max_length=1,
@ -281,6 +284,7 @@ class Video(ScrobblableMixin):
tvdb_id = models.CharField(max_length=20, **BNULL)
tmdb_id = models.CharField(max_length=20, **BNULL)
youtube_id = models.CharField(max_length=255, **BNULL)
twitch_id = models.CharField(max_length=255, **BNULL)
plot = models.TextField(**BNULL)
upload_date = models.DateField(**BNULL)