Home Assistant Unofficial Reference 2024.12.1
const.py
Go to the documentation of this file.
1 """Constants for the Jellyfin integration."""
2 
3 import logging
4 from typing import Final
5 
6 from homeassistant.components.media_player import MediaClass, MediaType
7 from homeassistant.const import Platform, __version__ as hass_version
8 
9 DOMAIN: Final = "jellyfin"
10 
11 CLIENT_VERSION: Final = hass_version
12 
13 COLLECTION_TYPE_MOVIES: Final = "movies"
14 COLLECTION_TYPE_MUSIC: Final = "music"
15 COLLECTION_TYPE_TVSHOWS: Final = "tvshows"
16 
17 CONF_AUDIO_CODEC: Final = "audio_codec"
18 CONF_CLIENT_DEVICE_ID: Final = "client_device_id"
19 
20 DEFAULT_NAME: Final = "Jellyfin"
21 
22 ITEM_KEY_COLLECTION_TYPE: Final = "CollectionType"
23 ITEM_KEY_ID: Final = "Id"
24 ITEM_KEY_IMAGE_TAGS: Final = "ImageTags"
25 ITEM_KEY_INDEX_NUMBER: Final = "IndexNumber"
26 ITEM_KEY_MEDIA_SOURCES: Final = "MediaSources"
27 ITEM_KEY_MEDIA_TYPE: Final = "MediaType"
28 ITEM_KEY_NAME: Final = "Name"
29 
30 ITEM_TYPE_ALBUM: Final = "MusicAlbum"
31 ITEM_TYPE_ARTIST: Final = "MusicArtist"
32 ITEM_TYPE_AUDIO: Final = "Audio"
33 ITEM_TYPE_EPISODE: Final = "Episode"
34 ITEM_TYPE_LIBRARY: Final = "CollectionFolder"
35 ITEM_TYPE_MOVIE: Final = "Movie"
36 ITEM_TYPE_SERIES: Final = "Series"
37 ITEM_TYPE_SEASON: Final = "Season"
38 
39 MAX_IMAGE_WIDTH: Final = 500
40 MAX_STREAMING_BITRATE: Final = "140000000"
41 
42 MEDIA_SOURCE_KEY_PATH: Final = "Path"
43 
44 MEDIA_TYPE_AUDIO: Final = "Audio"
45 MEDIA_TYPE_NONE: Final = ""
46 MEDIA_TYPE_VIDEO: Final = "Video"
47 
48 SUPPORTED_COLLECTION_TYPES: Final = [
49  COLLECTION_TYPE_MUSIC,
50  COLLECTION_TYPE_MOVIES,
51  COLLECTION_TYPE_TVSHOWS,
52 ]
53 
54 SUPPORTED_AUDIO_CODECS: Final = ["aac", "mp3", "vorbis", "wma"]
55 
56 PLAYABLE_ITEM_TYPES: Final = [ITEM_TYPE_AUDIO, ITEM_TYPE_EPISODE, ITEM_TYPE_MOVIE]
57 
58 
59 USER_APP_NAME: Final = "Home Assistant"
60 USER_AGENT: Final = f"Home-Assistant/{CLIENT_VERSION}"
61 
62 CONTENT_TYPE_MAP = {
63  "Audio": MediaType.MUSIC,
64  "Episode": MediaType.EPISODE,
65  "Season": MediaType.SEASON,
66  "Series": MediaType.TVSHOW,
67  "Movie": MediaType.MOVIE,
68  "CollectionFolder": "collection",
69  "AggregateFolder": "library",
70  "Folder": "library",
71  "BoxSet": "boxset",
72 }
73 MEDIA_CLASS_MAP = {
74  "MusicAlbum": MediaClass.ALBUM,
75  "MusicArtist": MediaClass.ARTIST,
76  "Audio": MediaClass.MUSIC,
77  "Series": MediaClass.DIRECTORY,
78  "Movie": MediaClass.MOVIE,
79  "CollectionFolder": MediaClass.DIRECTORY,
80  "Folder": MediaClass.DIRECTORY,
81  "BoxSet": MediaClass.DIRECTORY,
82  "Episode": MediaClass.EPISODE,
83  "Season": MediaClass.SEASON,
84 }
85 
86 PLATFORMS = [Platform.MEDIA_PLAYER, Platform.REMOTE, Platform.SENSOR]
87 LOGGER = logging.getLogger(__package__)