From ed96355a70535aa5ef8dbc003ca8a7f6b6497ebd Mon Sep 17 00:00:00 2001 From: robojerk Date: Thu, 5 Jun 2025 16:12:21 +0000 Subject: [PATCH] Initial commit --- .gitignore | 25 + Docs/tonemapping.md | 76 + docker-compose.override.yml | 44 + docker-compose.override.yml.sample | 34 + docker-compose.yml | 22 + docker_files/amd-apu.transcoding.yml | 28 + docker_files/amd-gpu.transcoding.yml | 28 + docker_files/docker-compose.original | 43 + docker_files/intel-igpu.transcoding.yml | 34 + docker_files/nvidia-transcoding.yml | 29 + docker_files/traefik.yml | 8 + install_plugin.sh | 1026 ++++++++ intel-arc.transcoding.yml | 30 + manage-jellyfin.sh | 13 + plugin_manifests/2025.03.30/9p4's SSO.json | 100 + plugin_manifests/2025.03.30/Ani-Sync.json | 292 +++ plugin_manifests/2025.03.30/Linfor.json | 195 ++ plugin_manifests/2025.03.30/LizardByte.json | 718 ++++++ plugin_manifests/2025.03.30/Official.json | 2113 +++++++++++++++++ plugin_manifests/2025.03.30/ShokoAnime.json | 301 +++ plugin_manifests/2025.03.30/Streamyfin.json | 365 +++ .../2025.03.30/TubeArchivist.json | 141 ++ plugin_manifests/2025.03.30/danieladov.json | 226 ++ plugin_manifests/2025.03.30/dkanada.json | 28 + plugin_manifests/2025.03.30/jellyscrub.json | 125 + plugin_manifests/2025.03.30/k-matti.json | 46 + readme.md | 207 ++ sample.env | 9 + setup_jellyfin.sh | 297 +++ test.sh | 36 + thoughts.md | 44 + 31 files changed, 6683 insertions(+) create mode 100644 .gitignore create mode 100644 Docs/tonemapping.md create mode 100644 docker-compose.override.yml create mode 100644 docker-compose.override.yml.sample create mode 100644 docker-compose.yml create mode 100644 docker_files/amd-apu.transcoding.yml create mode 100644 docker_files/amd-gpu.transcoding.yml create mode 100644 docker_files/docker-compose.original create mode 100644 docker_files/intel-igpu.transcoding.yml create mode 100644 docker_files/nvidia-transcoding.yml create mode 100644 docker_files/traefik.yml create mode 100755 install_plugin.sh create mode 100644 intel-arc.transcoding.yml create mode 100644 manage-jellyfin.sh create mode 100644 plugin_manifests/2025.03.30/9p4's SSO.json create mode 100644 plugin_manifests/2025.03.30/Ani-Sync.json create mode 100644 plugin_manifests/2025.03.30/Linfor.json create mode 100644 plugin_manifests/2025.03.30/LizardByte.json create mode 100644 plugin_manifests/2025.03.30/Official.json create mode 100644 plugin_manifests/2025.03.30/ShokoAnime.json create mode 100644 plugin_manifests/2025.03.30/Streamyfin.json create mode 100644 plugin_manifests/2025.03.30/TubeArchivist.json create mode 100644 plugin_manifests/2025.03.30/danieladov.json create mode 100644 plugin_manifests/2025.03.30/dkanada.json create mode 100644 plugin_manifests/2025.03.30/jellyscrub.json create mode 100644 plugin_manifests/2025.03.30/k-matti.json create mode 100644 readme.md create mode 100644 sample.env create mode 100644 setup_jellyfin.sh create mode 100755 test.sh create mode 100644 thoughts.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..37297dd --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# Environment files +.env +.env.* +!sample.env + +# Configuration directories +config/ +jellyfin_config/ +*_config/ +App/* + +# Cache directories +cache/ +jellyfin_cache/ +*_cache/ + +# Media directories +media/ +movies/ +tv/ +shows/ + +# System files +.DS_Store +Thumbs.db diff --git a/Docs/tonemapping.md b/Docs/tonemapping.md new file mode 100644 index 0000000..5df28af --- /dev/null +++ b/Docs/tonemapping.md @@ -0,0 +1,76 @@ +# Understanding Tonemapping in Jellyfin + +## What is Tonemapping? +Tonemapping converts HDR (High Dynamic Range) videos to look good on non-HDR screens. Think of it like your eyes adjusting when you walk from bright sunlight into a dimmer room - it helps balance bright and dark areas to make everything visible. + +## Why Do I Need It? +If you have HDR content (like 4K HDR movies) but watch them on a non-HDR screen, without tonemapping: +- Bright areas might look washed out +- Dark areas might be too dark to see +- Colors might appear wrong or faded + +## Available Algorithms + +### hable +- **Best for**: Modern GPUs (NVIDIA RTX, AMD RX 6000+, Intel ARC) +- **What it does**: Makes HDR content look natural, similar to how your eyes adjust +- **Good for**: Movies and shows, especially ones with both bright and dark scenes +- **Example**: In a night scene with street lights, you'll see both the dark alleys and the bright lights clearly + +### bt2390 +- **Best for**: Integrated graphics (Intel iGPU, AMD APU) and older GPUs +- **What it does**: Follows TV industry standards for HDR conversion +- **Good for**: Broadcast content and professional productions +- **Example**: Makes your content look similar to how it would appear on a standard TV + +### Other Options + +#### reinhard +- **Pros**: Fast and simple, uses less processing power +- **Cons**: Can make dark scenes too dark +- **Best for**: Older hardware or when performance is a priority + +#### mobius +- **Pros**: Keeps bright areas detailed +- **Cons**: Can make the overall image look flat +- **Best for**: Content with lots of bright scenes + +## Which Should I Choose? + +1. **For Modern GPUs**: + - NVIDIA RTX Series: Use `hable` - excellent performance with good quality + - AMD RX 6000/7000: Use `hable` - works well with modern AMD cards + - Intel ARC: Use `hable` - optimized for ARC architecture + +2. **For Integrated Graphics**: + - AMD Ryzen APU: Use `bt2390` or try `hable` on newer models + - Intel iGPU: Use `bt2390` (or `hable` on 11th gen or newer) + +3. **For Older GPUs**: + - NVIDIA GTX Series: Start with `bt2390`, try `reinhard` if needed + - AMD RX 5000 or older: Use `bt2390` or `reinhard` + - CPU's or Older integrated graphics: Use `reinhard` for best performance + +## Quick Tips +- If videos look too dark: Try switching from bt2390 to hable +- If playback is stuttering: Try reinhard for better performance +- For best results: Enable hardware acceleration and use appropriate drivers: + - NVIDIA: Latest drivers with NVENC support + - AMD: Mesa or AMDGPU-PRO with VA-API + - Intel: Latest drivers with QuickSync support + +## CPU-Only Transcoding +If you're not using hardware acceleration (GPU/iGPU): + +1. **Performance Impact**: Tonemapping is very CPU-intensive without hardware acceleration +2. **Recommended Settings**: + - Use `reinhard` algorithm - it's the most CPU-efficient + - Consider pre-converting HDR content to SDR if possible + - Limit concurrent transcoding sessions +3. **CPU Requirements**: + - Modern CPU (6+ cores recommended) + - Expect high CPU usage during HDR transcoding + - Multiple simultaneous HDR transcodes may not be possible + +**Note**: If you have a modern Intel CPU with integrated graphics (iGPU), enabling hardware +acceleration is strongly recommended, even if you don't have a dedicated GPU. diff --git a/docker-compose.override.yml b/docker-compose.override.yml new file mode 100644 index 0000000..3478da6 --- /dev/null +++ b/docker-compose.override.yml @@ -0,0 +1,44 @@ +# Override file to disable DLNA port and add any local customizations +services: + jellyfin: + # network_mode: 'host' + ports: + - "${JELLYFIN_PORT_HTTP:-8096}:8096" + - "${JELLYFIN_PORT_HTTPS:-8920}:8920" + - "7359:7359/udp" + # DLNA port (1900) removed via override + volumes: + - cifs-volumes_videos:/media:ro + - ./App/config:/config # Contains plugins, metadata, and server configuration + - ./App/cache:/cache + # + # Optional - extra fonts to be used during transcoding with subtitle burn-in + - /usr/share/fonts:/usr/local/share/fonts/custom:ro + # Add device access for hardware transcoding + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card1:/dev/dri/card1 + group_add: + - "${RENDER_GID:-993}" # render group + - "video" # Add video group for card1 access + networks: + npm_network: + aliases: + - jellyfin-backend + environment: + - JELLYFIN_PublishedServerUrl=https://jellyfin.raines.xyz + # Hardware acceleration settings + - JELLYFIN_HardwareAccelerationType=qsv + - JELLYFIN_HardwareDecodingCodecs=["h264", "hevc", "av1", "vp8", "vp9"] + - JELLYFIN_QsvDevice=/dev/dri/renderD128 + # Add Known Proxies for nginx proxy manager + - JELLYFIN_Network__KnownProxies=172.21.0.1 + user: "${PUID}:${PGID}" + +volumes: + cifs-volumes_videos: + external: true + +networks: + npm_network: + external: true \ No newline at end of file diff --git a/docker-compose.override.yml.sample b/docker-compose.override.yml.sample new file mode 100644 index 0000000..c1527ac --- /dev/null +++ b/docker-compose.override.yml.sample @@ -0,0 +1,34 @@ +# Sample override file - Copy to docker-compose.override.yml and adjust as needed +services: + jellyfin: + ports: + - "${JELLYFIN_PORT_HTTP:-8096}:8096" + - "${JELLYFIN_PORT_HTTPS:-8920}:8920" + - "7359:7359/udp" + # DLNA port (1900) removed via override + volumes: + # Mount your media volume - adjust source as needed + - volumes_videos:/media:ro + - volumes_music:/music:ro + - volumes_photos:/photos:ro + - volumes_tv:/tv:ro + - volumes_movies:/movies:ro + # + # Optional - extra fonts for subtitle burn-in + # Uncomment and adjust source path as needed + #- type: bind + # source: /usr/share/fonts + # target: /usr/local/share/fonts/custom + # read_only: true + networks: + - MyNetwork + +volumes: + # External volume for Video files + volumes_videos: + external: true + +networks: + # Network for reverse proxy + MyNetwork: + external: true \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ad4c8a6 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,22 @@ +# Jellyfin Docker Compose file +# Do not edit this file directly, +# instead edit docker-compose.override.yml.sample + +services: + jellyfin: + image: jellyfin/jellyfin:latest + container_name: jellyfin + hostname: jellyfin + restart: unless-stopped + user: ${PUID}:${PGID} + volumes: + - ./App/cache:/cache + - ./App/config:/config + - ./App/media:/media:ro + ports: + - "${JELLYFIN_PORT_HTTP:-8096}:8096" + - "${JELLYFIN_PORT_HTTPS:-8920}:8920" # HTTPS port + - "7359:7359/udp" # Service discovery + - "1900:1900/udp" # DLNA (comment out if DLNA not needed or something else is using port) + environment: + - TZ=${TZ} \ No newline at end of file diff --git a/docker_files/amd-apu.transcoding.yml b/docker_files/amd-apu.transcoding.yml new file mode 100644 index 0000000..f412053 --- /dev/null +++ b/docker_files/amd-apu.transcoding.yml @@ -0,0 +1,28 @@ +# AMD APU (Integrated Graphics) Transcoding +services: + jellyfin: + environment: + # Basic Hardware Acceleration + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableVppTonemapping=true + - JELLYFIN_FFmpeg__EncoderPreset=Auto + + # AMD APU Specific + - JELLYFIN_FFmpeg__HardwareDecodingCodecs=["h264_vaapi","hevc_vaapi","mpeg2_vaapi","vp8_vaapi","vp9_vaapi"] + - JELLYFIN_FFmpeg__EnableHWDecodingForCodecs=["h264","hevc","mpeg2video","vp8","vp9"] + - JELLYFIN_FFmpeg__EnableTonemapping=true + - JELLYFIN_FFmpeg__TonemappingAlgorithm=bt2390 # Tonemapping explained: https://photography.tutsplus.com/what-is-tone-mapping-definition-and-examples--cms-91740 + # bt2390: TV industry standard, like how professional studios convert HDR movies for regular TVs + - JELLYFIN_FFmpeg__VaapiDevice=/dev/dri/renderD128 + + # Driver Configuration + - LIBVA_DRIVER_NAME=radeonsi # Use radeonsi for modern AMD APUs + - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card0:/dev/dri/card0 + group_add: + - "989" # render group (verify this ID on your system) + volumes: + - /usr/lib/x86_64-linux-gnu/libdrm.so.2:/usr/lib/x86_64-linux-gnu/libdrm.so.2:ro diff --git a/docker_files/amd-gpu.transcoding.yml b/docker_files/amd-gpu.transcoding.yml new file mode 100644 index 0000000..f4ae273 --- /dev/null +++ b/docker_files/amd-gpu.transcoding.yml @@ -0,0 +1,28 @@ +# AMD Dedicated GPU Transcoding +services: + jellyfin: + environment: + # Basic Hardware Acceleration + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableVppTonemapping=true + - JELLYFIN_FFmpeg__EncoderPreset=Auto + + # AMD GPU Specific + - JELLYFIN_FFmpeg__HardwareDecodingCodecs=["h264_vaapi","hevc_vaapi","mpeg2_vaapi","vp8_vaapi","vp9_vaapi","av1_vaapi"] + - JELLYFIN_FFmpeg__EnableHWDecodingForCodecs=["h264","hevc","mpeg2video","vp8","vp9","av1"] + - JELLYFIN_FFmpeg__EnableTonemapping=true + - JELLYFIN_FFmpeg__TonemappingAlgorithm=hable # Tonemapping explained: https://photography.tutsplus.com/what-is-tone-mapping-definition-and-examples--cms-91740 + # hable: Natural-looking, like how your eyes adjust to both bright and dark areas in a scene + - JELLYFIN_FFmpeg__VaapiDevice=/dev/dri/renderD128 + + # Driver Configuration + - LIBVA_DRIVER_NAME=radeonsi # Use radeonsi for modern AMD GPUs + - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card0:/dev/dri/card0 + group_add: + - "989" # render group (verify this ID on your system) + volumes: + - /usr/lib/x86_64-linux-gnu/libdrm.so.2:/usr/lib/x86_64-linux-gnu/libdrm.so.2:ro diff --git a/docker_files/docker-compose.original b/docker_files/docker-compose.original new file mode 100644 index 0000000..89ed943 --- /dev/null +++ b/docker_files/docker-compose.original @@ -0,0 +1,43 @@ +version: '3.8' + +services: + jellyfin: + image: jellyfin/jellyfin + container_name: jellyfin + hostname: jellyfin + restart: unless-stopped + user: 1000:1000 + networks: + - npm_network + ports: + - "8096:8096" # HTTP port + - "8920:8920" # HTTPS port + - "7359:7359/udp" # Service discovery + - "1900:1900/udp" # DLNA + environment: + - TZ=America/Los_Angeles + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableIntelLowPowerEncoding=true + - LIBVA_DRIVER_NAME=iHD + - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + group_add: + - "993" # render group + volumes: + - /opt/docker/jellyfin/config:/config + - /mnt/hdd0/jellyfin_trascode/:/cache + - cifs-volumes_videos:/media + - /usr/lib/x86_64-linux-gnu/intel-opencl:/usr/lib/x86_64-linux-gnu/intel-opencl + - /usr/lib/x86_64-linux-gnu/libdrm.so.2:/usr/lib/x86_64-linux-gnu/libdrm.so.2 + - /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1:/usr/lib/x86_64-linux-gnu/libdrm_intel.so.1 + extra_hosts: + - 'host.docker.internal:host-gateway' + +volumes: + cifs-volumes_videos: + external: true + +networks: + npm_network: + external: true diff --git a/docker_files/intel-igpu.transcoding.yml b/docker_files/intel-igpu.transcoding.yml new file mode 100644 index 0000000..5541a7b --- /dev/null +++ b/docker_files/intel-igpu.transcoding.yml @@ -0,0 +1,34 @@ +# Intel iGPU Transcoding +services: + jellyfin: + environment: + # Basic Hardware Acceleration + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableIntelLowPowerEncoding=true + - JELLYFIN_FFmpeg__EnableVppTonemapping=true + - JELLYFIN_FFmpeg__EncoderPreset=Auto + + # iGPU Specific + - JELLYFIN_FFmpeg__HardwareDecodingCodecs=["h264_qsv","hevc_qsv","mpeg2_qsv"] + - JELLYFIN_FFmpeg__EnableHWDecodingForCodecs=["h264","hevc","mpeg2video"] + - JELLYFIN_FFmpeg__EnableTonemapping=true + - JELLYFIN_FFmpeg__TonemappingAlgorithm=bt2390 # Tonemapping explained: https://photography.tutsplus.com/what-is-tone-mapping-definition-and-examples--cms-91740 + # bt2390: TV industry standard, like how professional studios convert HDR movies for regular TVs + - JELLYFIN_FFmpeg__VaapiDevice=/dev/dri/renderD128 + + # Driver Configuration + # Check which driver to use with: ls /usr/lib/x86_64-linux-gnu/dri/*_drv_video.so + # And/or use vainfo to see which driver is working + # iHD: Intel 6th gen or newer + # i965: Intel 5th gen or older + - LIBVA_DRIVER_NAME=iHD # Use i965 for older iGPUs, iHD for newer ones + - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card0:/dev/dri/card0 + group_add: + - "998" # render group (verify this ID on your system) + volumes: + - /usr/lib/x86_64-linux-gnu/intel-opencl:/usr/lib/x86_64-linux-gnu/intel-opencl:ro + - /usr/lib/x86_64-linux-gnu/libdrm.so.2:/usr/lib/x86_64-linux-gnu/libdrm.so.2:ro + - /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1:/usr/lib/x86_64-linux-gnu/libdrm_intel.so.1:ro \ No newline at end of file diff --git a/docker_files/nvidia-transcoding.yml b/docker_files/nvidia-transcoding.yml new file mode 100644 index 0000000..2b60c4c --- /dev/null +++ b/docker_files/nvidia-transcoding.yml @@ -0,0 +1,29 @@ +# NVIDIA GPU Transcoding +services: + jellyfin: + environment: + # Basic Hardware Acceleration + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableVppTonemapping=true + - JELLYFIN_FFmpeg__EncoderPreset=Auto + + # NVIDIA Specific + - JELLYFIN_FFmpeg__HardwareDecodingCodecs=["h264_cuvid","hevc_cuvid","mpeg2_cuvid","vc1_cuvid","vp8_cuvid","vp9_cuvid"] + - JELLYFIN_FFmpeg__EnableHWDecodingForCodecs=["h264","hevc","mpeg2video","vc1","vp8","vp9"] + - JELLYFIN_FFmpeg__EnableTonemapping=true + - JELLYFIN_FFmpeg__TonemappingAlgorithm=hable # Tonemapping explained: https://photography.tutsplus.com/what-is-tone-mapping-definition-and-examples--cms-91740 + # hable: Natural-looking, like how your eyes adjust to both bright and dark areas in a scene + + # NVIDIA Environment + - NVIDIA_VISIBLE_DEVICES=all + - NVIDIA_DRIVER_CAPABILITIES=all + + runtime: nvidia # Requires nvidia-container-runtime + devices: + - /dev/nvidia0:/dev/nvidia0 + - /dev/nvidiactl:/dev/nvidiactl + - /dev/nvidia-modeset:/dev/nvidia-modeset + - /dev/nvidia-uvm:/dev/nvidia-uvm + - /dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools + group_add: + - "989" # render group (verify this ID on your system) diff --git a/docker_files/traefik.yml b/docker_files/traefik.yml new file mode 100644 index 0000000..07b9a6c --- /dev/null +++ b/docker_files/traefik.yml @@ -0,0 +1,8 @@ +# Add traefil labels to the jellyfin service +# Work in progress (WIP) I don't use traefik, so I don't know if this works +services: + jellyfin: + labels: + - traefik.enable=true + - traefik.http.routers.jellyfin.rule=Host(`jellyfin.example.com`) + - traefik.http.services.jellyfin.loadbalancer.server.port=8096 \ No newline at end of file diff --git a/install_plugin.sh b/install_plugin.sh new file mode 100755 index 0000000..5bdfa1e --- /dev/null +++ b/install_plugin.sh @@ -0,0 +1,1026 @@ +#!/bin/bash + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +PLUGIN_DIR="./App/config/plugins" +CACHE_BASE_DIR="./plugin_manifests" # More persistent location +TEMP_DIR="/tmp/jellyfin_plugins" +MANIFEST_CACHE_DIR="${CACHE_BASE_DIR}/$(date +%Y.%m.%d)" + +# Known repositories array +declare -A REPOSITORIES=( + ["Official"]="https://sfo1.mirror.jellyfin.org/files/plugin/manifest.json" + ["9p4's SSO"]="https://raw.githubusercontent.com/9p4/jellyfin-plugin-sso/manifest-release/manifest.json" + ["Ani-Sync"]="https://raw.githubusercontent.com/vosmiic/jellyfin-ani-sync/master/manifest.json" + ["danieladov"]="https://raw.githubusercontent.com/danieladov/JellyfinPluginManifest/master/manifest.json" + ["dkanada"]="https://raw.githubusercontent.com/dkanada/jellyfin-plugin-intros/master/manifest.json" + ["k-matti"]="https://raw.githubusercontent.com/k-matti/jellyfin-plugin-repository/master/manifest.json" + ["Linfor"]="https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/manifest.json" + ["LizardByte"]="https://app.lizardbyte.dev/jellyfin-plugin-repo/manifest.json" + ["ShokoAnime"]="https://raw.githubusercontent.com/ShokoAnime/Shokofin/metadata/stable/manifest.json" + ["TubeArchivist"]="https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/manifest.json" + ["Streamyfin"]="https://raw.githubusercontent.com/streamyfin/jellyfin-plugin-streamyfin/main/manifest.json" + ["jellyscrub"]="https://raw.githubusercontent.com/nicknsy/jellyscrub/main/manifest.json" +# ["Jellyfin Unstable"]="https://repo.jellyfin.org/files/plugin-unstable/manifest.json" +) + +# Function to show usage +show_usage() { + echo -e "${BLUE}Jellyfin Plugin Installer${NC}" + echo "Usage:" + echo " $0 search - Search known repositories for plugins" + echo " $0 install - Install a plugin by name, GUID, or URL" + echo " $0 info - Show detailed information about a specific plugin" + echo " $0 versions - Show latest 10 versions of a plugin" + echo " $0 repos - List known repositories" + echo " $0 update - Update plugin manifests" + echo " $0 upgrade - Check and upgrade installed plugins" + echo " $0 catalog - List plugins from a manifest" + echo + echo "Example manifests:" + echo " https://raw.githubusercontent.com/nicknsy/jellyscrub/main/manifest.json" + echo " https://raw.githubusercontent.com/danieladov/JellyfinPluginManifest/master/manifest.json" +} + +# Function to list repositories +list_repos() { + echo -e "${BLUE}Known Repositories:${NC}" + for repo in "${!REPOSITORIES[@]}"; do + echo -e "${GREEN}$repo${NC}" + echo " ${REPOSITORIES[$repo]}" + done +} + +# Function to add new function to handle manifest caching +fetch_manifests() { + local force=$1 + local today=$(date +%Y.%m.%d) + + # Create base cache directory if it doesn't exist + mkdir -p "$CACHE_BASE_DIR" + + # Check if we should use cached manifests + if [ "$force" != "true" ] && [ -d "$MANIFEST_CACHE_DIR" ]; then + echo -e "${BLUE}Using cached manifests from ${MANIFEST_CACHE_DIR}${NC}" >&2 + return 0 + fi + + # Cleanup old manifest directories (keep last 7 days) + find "$CACHE_BASE_DIR" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; + + # Create fresh cache directory + mkdir -p "$MANIFEST_CACHE_DIR" + + echo -e "${BLUE}Downloading manifests to ${MANIFEST_CACHE_DIR}${NC}" >&2 + + # Download all manifests with dynamic status line + local total=${#REPOSITORIES[@]} + local current=0 + + for repo in "${!REPOSITORIES[@]}"; do + ((current++)) + printf "\rFetching manifests: [%-50s] %d/%d - %s" \ + "$(printf '#%.0s' $(seq 1 $((current * 50 / total))))" \ + "$current" "$total" "$repo" >&2 + + # Download with error checking + if ! curl -s -f "${REPOSITORIES[$repo]}" > "${MANIFEST_CACHE_DIR}/${repo}.json.tmp"; then + continue + fi + + # Validate JSON and move to final location if valid + if jq empty "${MANIFEST_CACHE_DIR}/${repo}.json.tmp" 2>/dev/null; then + mv "${MANIFEST_CACHE_DIR}/${repo}.json.tmp" "${MANIFEST_CACHE_DIR}/${repo}.json" + else + rm "${MANIFEST_CACHE_DIR}/${repo}.json.tmp" + fi + done + printf "\n" >&2 +} + +# Add spinner function at the top with other functions +spinner() { + local pid=$1 + local delay=0.1 + local spinstr='|/-\' + while ps -p $pid > /dev/null; do + local temp=${spinstr#?} + printf "\r%c" "$spinstr" + local spinstr=$temp${spinstr%"$temp"} + sleep $delay + done + printf "\r" +} + +# Function to search repositories +search_repos() { + local search_term="$1" + local force=$2 + local search_term_lower=$(echo "$search_term" | tr '[:upper:]' '[:lower:]') + local found=0 + + # Fetch/update manifests + fetch_manifests "$force" + + # Print header + printf "${BLUE}%-30s %-20s %-15s %-20s %-36s${NC}\n" "Name" "Version" "ABI" "Source" "GUID" + printf "%.s-" {1..121} # Increased for GUID column + printf "\n" + + # Create temp file for results + local results_file=$(mktemp) + + # Run search in background and show spinner + ( + # Search through cached manifests + for repo in "${!REPOSITORIES[@]}"; do + local manifest_file="${MANIFEST_CACHE_DIR}/${repo}.json" + [ ! -f "$manifest_file" ] && continue + + while read -r line; do + if [ -n "$line" ]; then + echo "$line" + found=1 + fi + done < <(jq -r --arg term "$search_term_lower" ' + # Convert input to array if not already + if type == "array" then . else [.] end | + + .[] | + + # Get all searchable fields and ensure guid is included + { + name: (.name // ""), + description: (.description // ""), + overview: (.overview // ""), + category: (.category // ""), + owner: (.owner // ""), + guid: (.guid // "unknown"), # Ensure GUID has a default value + versions: (.versions // []) + } | + + # Convert all fields to lowercase for searching + select( + (.name | ascii_downcase | contains($term)) or + (.description | ascii_downcase | contains($term)) or + (.overview | ascii_downcase | contains($term)) or + (.category | ascii_downcase | contains($term)) or + (.owner | ascii_downcase | contains($term)) + ) | + + # Get latest version info + . as $plugin | + ($plugin.versions | sort_by(.timestamp) | last) as $latest | + + # Format output with guid + "\($plugin.name)|\($latest.version)|\($latest.targetAbi)|\("'"$repo"'")|\($plugin.guid)" + ' "$manifest_file" 2>/dev/null | while IFS='|' read -r name version abi repo guid; do + printf "%-30s %-20s %-15s %-20s %-36s\n" "$name" "$version" "$abi" "$repo" "$guid" >> "$results_file" + done) + done + ) & spinner $! + + # Print results + if [ -s "$results_file" ]; then + cat "$results_file" + echo "" + else + echo -e "\n${RED}No plugins found matching: $search_term${NC}" + fi + + # Cleanup + rm -f "$results_file" +} + +# Function to list plugins from a manifest +list_catalog() { + local manifest_url="$1" + echo -e "${BLUE}Fetching plugin catalog from: ${manifest_url}${NC}" + + # Create temp directory if it doesn't exist + mkdir -p "${TEMP_DIR}" + + # Download and parse manifest + if ! curl -s "${manifest_url}" > "${TEMP_DIR}/manifest.json"; then + echo -e "${RED}Failed to download manifest${NC}" + exit 1 + fi + + # Use jq to parse the manifest if available, otherwise use grep/sed + if command -v jq >/dev/null 2>&1; then + echo -e "\n${GREEN}Available Plugins:${NC}" + jq -r '.[] | "Name: \(.name)\nDescription: \(.description)\nVersions:\n\(.versions[] | " Version: \(.version)\n Download URL: \(.sourceUrl)\n Checksum: \(.checksum)\n Target ABI: \(.targetAbi)\n")---"' "${TEMP_DIR}/manifest.json" + else + echo -e "${RED}jq not found, showing raw manifest:${NC}" + cat "${TEMP_DIR}/manifest.json" + fi +} + +# Function to find plugin by name or GUID +find_plugin() { + local search_term="$1" + local results_file=$(mktemp) + local matches=0 + + for repo in "${!REPOSITORIES[@]}"; do + local manifest_file="${MANIFEST_CACHE_DIR}/${repo}.json" + [ ! -f "$manifest_file" ] && continue + + jq -r --arg term "$search_term" ' + if type == "array" then . else [.] end | + .[] | + select( + (.name == $term) or + (.guid == $term) + ) | + . as $plugin | + ($plugin.versions | sort_by(.timestamp) | last) as $latest | + { + name: $plugin.name, + guid: $plugin.guid, + version: $latest.version, + sourceUrl: $latest.sourceUrl, + checksum: $latest.checksum, + repo: "'"$repo"'" + } | @json + ' "$manifest_file" 2>/dev/null >> "$results_file" + done + + # Count unique matches + matches=$(jq -s 'length' "$results_file") + + if [ "$matches" -eq 0 ]; then + echo -e "${RED}No plugin found matching: $search_term${NC}" >&2 + rm -f "$results_file" + return 1 + elif [ "$matches" -gt 1 ]; then + echo -e "${RED}Multiple plugins found matching: $search_term${NC}" >&2 + echo "Please use the GUID to specify which plugin to install:" >&2 + jq -r '.name + " (" + .guid + ") from " + .repo' "$results_file" >&2 + rm -f "$results_file" + return 1 + else + cat "$results_file" + rm -f "$results_file" + return 0 + fi +} + +# Function to find checksum for a URL +find_checksum_for_url() { + local search_url="$1" + local results_file=$(mktemp) + local found=false + + for repo in "${!REPOSITORIES[@]}"; do + local manifest_file="${MANIFEST_CACHE_DIR}/${repo}.json" + [ ! -f "$manifest_file" ] && continue + + if jq -e --arg url "$search_url" ' + if type == "array" then . else [.] end | + .[] | + (.versions[] | select(.sourceUrl == $url)) | + .checksum + ' "$manifest_file" 2>/dev/null > "$results_file"; then + found=true + break + fi + done + + if [ "$found" = true ]; then + cat "$results_file" + rm -f "$results_file" + return 0 + else + rm -f "$results_file" + return 1 + fi +} + +# Update verify_checksum function +verify_checksum() { + local file="$1" + local expected_checksum="$2" + + # Get directory and filename separately + local dir=$(dirname "$file") + local filename=$(basename "$file") + + # Determine hash length to choose verification method + local checksum_length=${#expected_checksum} + case $checksum_length in + 32) # MD5 + if ! (cd "$dir" && echo "$expected_checksum $filename" | md5sum -c --status); then + return 1 + fi + ;; + 40) # SHA1 + if ! (cd "$dir" && echo "$expected_checksum $filename" | sha1sum -c --status); then + return 1 + fi + ;; + 64) # SHA256 + if ! (cd "$dir" && echo "$expected_checksum $filename" | sha256sum -c --status); then + return 1 + fi + ;; + 128) # SHA512 + if ! (cd "$dir" && echo "$expected_checksum $filename" | sha512sum -c --status); then + return 1 + fi + ;; + *) + echo -e "${YELLOW}Warning: Unknown checksum format, skipping verification${NC}" + return 0 + ;; + esac + return 0 +} + +# Function to download plugin image +download_plugin_image() { + local image_url="$1" + local plugin_dir="$2" + local plugin_name="$3" + + if [ -n "$image_url" ]; then + # Get file extension from URL + local ext=$(echo "$image_url" | grep -oP '\.[^.]+$') + if [ -z "$ext" ]; then + ext=".png" # Default to .png if no extension found + fi + + # Download image + if curl -s -f -L "$image_url" -o "${plugin_dir}/${plugin_name}${ext}"; then + echo -e "${GREEN}Downloaded plugin image${NC}" + else + echo -e "${YELLOW}Failed to download plugin image${NC}" + fi + fi +} + +# Function to generate meta.json +generate_meta_json() { + local plugin_name="$1" + local plugin_version="$2" + local plugin_guid="$3" + local plugin_description="$4" + local plugin_overview="$5" + local plugin_owner="$6" + local plugin_category="$7" + local plugin_timestamp="$8" + local plugin_abi="$9" + local plugin_changelog="${10}" + local plugin_dir="${11}" + local plugin_image_url="${12}" + + # Start building JSON content + local json_content='{ + "category": "'"${plugin_category}"'", + "changelog": "'"${plugin_changelog}"'", + "description": "'"${plugin_description}"'", + "guid": "'"${plugin_guid}"'", + "name": "'"${plugin_name}"'", + "overview": "'"${plugin_overview}"'", + "owner": "'"${plugin_owner}"'", + "targetAbi": "'"${plugin_abi}"'", + "timestamp": "'"${plugin_timestamp}"'", + "version": "'"${plugin_version}"'", + "status": "Active", + "autoUpdate": true' + + # Add imagePath only if image URL exists + if [ -n "$plugin_image_url" ]; then + local ext=$(echo "$plugin_image_url" | grep -oP '\.[^.]+$') + if [ -z "$ext" ]; then + ext=".png" + fi + json_content+=', + "imagePath": "/config/plugins/'"${plugin_name}_${plugin_version}/${plugin_name}_${plugin_version}${ext}"'"' + fi + + # Close the JSON + json_content+=', + "assemblies": [] +}' + + # Write to file + echo "$json_content" > "${plugin_dir}/meta.json" +} + +# Function to find plugin info from URL in manifests +find_plugin_info_from_url() { + local url="$1" + local results_file=$(mktemp) + local found=false + + # Search through cached manifests + for manifest_file in "${MANIFEST_CACHE_DIR}"/*.json; do + if [[ ! -f "$manifest_file" ]]; then + continue + fi + + # Try to find plugin info by matching the URL + if jq -r --arg url "$url" ' + if type == "array" then . else [.] end | + .[] | + . as $plugin | + (.versions[] | select(.sourceUrl == $url)) as $version | + if $version then + { + name: $plugin.name, + guid: $plugin.guid, + description: ($plugin.description // ""), + overview: ($plugin.overview // ""), + owner: ($plugin.owner // ""), + category: ($plugin.category // ""), + imageUrl: ($plugin.imageUrl // ""), + version: $version.version, + timestamp: $version.timestamp, + targetAbi: $version.targetAbi, + changelog: ($version.changelog // ""), + checksum: $version.checksum + } + else + empty + end + ' "$manifest_file" > "$results_file" 2>/dev/null; then + if [ -s "$results_file" ]; then + found=true + break + fi + fi + done + + if [ "$found" = true ]; then + cat "$results_file" + rm -f "$results_file" + return 0 + fi + rm -f "$results_file" + return 1 +} + +# Update install_from_url function +install_from_url() { + local plugin_url="$1" + local checksum="$2" + local plugin_filename=$(basename "${plugin_url}") + local plugin_info + local plugin_name + local plugin_version + + # Try to find plugin info in manifests + if plugin_info=$(find_plugin_info_from_url "$plugin_url"); then + # Use info from manifest + plugin_name=$(echo "$plugin_info" | jq -r '.name') + plugin_version=$(echo "$plugin_info" | jq -r '.version') + + echo -e "${GREEN}Found plugin information in manifests${NC}" + + # Create plugin directory with correct naming convention + local plugin_dir="${PLUGIN_DIR}/${plugin_name}_${plugin_version}" + mkdir -p "$plugin_dir" + + # Download and install plugin + echo -e "${BLUE}Downloading plugin...${NC}" + if ! curl -L -o "${TEMP_DIR}/${plugin_filename}" "${plugin_url}"; then + echo -e "${RED}Failed to download plugin${NC}" + exit 1 + fi + + # Verify checksum + echo -e "${BLUE}Verifying checksum...${NC}" + if ! verify_checksum "${TEMP_DIR}/${plugin_filename}" "$(echo "$plugin_info" | jq -r '.checksum')"; then + echo -e "${RED}Checksum verification failed${NC}" + exit 1 + fi + echo -e "${GREEN}Checksum verified${NC}" + + # Extract plugin + echo -e "${BLUE}Installing plugin...${NC}" + if [[ "${plugin_filename}" == *.zip ]]; then + if ! unzip -o "${TEMP_DIR}/${plugin_filename}" -d "$plugin_dir"; then + echo -e "${RED}Failed to extract plugin${NC}" + exit 1 + fi + else + cp "${TEMP_DIR}/${plugin_filename}" "$plugin_dir/" + fi + + # Generate meta.json with manifest info + generate_meta_json \ + "$(echo "$plugin_info" | jq -r '.name')" \ + "$(echo "$plugin_info" | jq -r '.version')" \ + "$(echo "$plugin_info" | jq -r '.guid')" \ + "$(echo "$plugin_info" | jq -r '.description')" \ + "$(echo "$plugin_info" | jq -r '.overview')" \ + "$(echo "$plugin_info" | jq -r '.owner')" \ + "$(echo "$plugin_info" | jq -r '.category')" \ + "$(echo "$plugin_info" | jq -r '.timestamp')" \ + "$(echo "$plugin_info" | jq -r '.targetAbi')" \ + "$(echo "$plugin_info" | jq -r '.changelog')" \ + "$plugin_dir" \ + "$(echo "$plugin_info" | jq -r '.imageUrl')" + + # Download image if available + local image_url=$(echo "$plugin_info" | jq -r '.imageUrl') + if [ -n "$image_url" ] && [ "$image_url" != "null" ]; then + download_plugin_image "$image_url" "$plugin_dir" "${plugin_name}_${plugin_version}" + fi + else + # No manifest info found - try to extract name and version from filename + echo -e "${YELLOW}No manifest information found for this plugin${NC}" + + # Try to get name and version from filename + plugin_name=$(echo "${plugin_filename%.*}" | sed -E 's/[-_][0-9].*//' | sed 's/\.zip$//') + plugin_version=$(echo "${plugin_filename}" | grep -oP '[\d.]+(?=\.zip)' || echo "1.0.0.0") + + if [ -z "$plugin_version" ]; then + plugin_version="1.0.0.0" + fi + + local plugin_dir="${PLUGIN_DIR}/${plugin_name}_${plugin_version}" + mkdir -p "$plugin_dir" + + # Download and install + echo -e "${BLUE}Downloading plugin...${NC}" + if ! curl -L -o "${TEMP_DIR}/${plugin_filename}" "${plugin_url}"; then + echo -e "${RED}Failed to download plugin${NC}" + exit 1 + fi + + # Extract plugin + echo -e "${BLUE}Installing plugin...${NC}" + if [[ "${plugin_filename}" == *.zip ]]; then + if ! unzip -o "${TEMP_DIR}/${plugin_filename}" -d "$plugin_dir"; then + echo -e "${RED}Failed to extract plugin${NC}" + exit 1 + fi + else + cp "${TEMP_DIR}/${plugin_filename}" "$plugin_dir/" + fi + + # Generate basic meta.json + generate_meta_json \ + "$plugin_name" \ + "$plugin_version" \ + "" \ + "" \ + "" \ + "Unknown" \ + "General" \ + "$(date -u +"%Y-%m-%dT%H:%M:%SZ")" \ + "" \ + "" \ + "$plugin_dir" \ + "" + fi + + # Set correct permissions + if [ -n "${PUID}" ] && [ -n "${PGID}" ]; then + chown -R ${PUID}:${PGID} "$plugin_dir" + fi + + # Cleanup + rm -f "${TEMP_DIR}/${plugin_filename}" + + echo -e "${GREEN}Plugin installed successfully${NC}" + echo "Restart Jellyfin to complete installation:" + echo "docker compose restart jellyfin" +} + +# Update show_plugin_info function to include current version +show_plugin_info() { + local search_term="$1" + local found=0 + local found_repo="" + local results_file=$(mktemp) + + # Fetch manifests if needed + fetch_manifests "false" + + # Search through cached manifests + for repo in "${!REPOSITORIES[@]}"; do + local manifest_file="${MANIFEST_CACHE_DIR}/${repo}.json" + [ ! -f "$manifest_file" ] && continue + + # Search by name or GUID + jq -r --arg term "$search_term" ' + # Convert input to array if not already + if type == "array" then . else [.] end | + + .[] | + select( + (.name == $term) or + (.guid == $term) + ) | + . as $plugin | + ($plugin.versions | sort_by(.timestamp) | last) as $latest | + { + name: $plugin.name, + guid: $plugin.guid, + description: ($plugin.description // "No description available"), + overview: ($plugin.overview // "No overview available"), + owner: ($plugin.owner // "Unknown"), + category: ($plugin.category // "Unknown"), + versions: ($plugin.versions | length | tostring + " version(s) available"), + current: $latest.version + } | + "Name: \(.name)\n" + + "GUID: \(.guid)\n" + + "Owner: \(.owner)\n" + + "Category: \(.category)\n" + + "Description: \(.description)\n" + + "Overview: \(.overview)\n" + + "Versions: \(.versions)\n" + + "Current: \(.current)" + ' "$manifest_file" 2>/dev/null > "$results_file" + + if [ -s "$results_file" ]; then + found=1 + found_repo="$repo" + break + fi + done + + if [ $found -eq 1 ]; then + echo -e "${BLUE}Plugin Information:${NC}" + echo "----------------------------------------" + cat "$results_file" + echo -e "Repository: ${GREEN}${found_repo}${NC}" + echo "----------------------------------------" + else + echo -e "${RED}No plugin found matching: $search_term${NC}" + fi + + rm -f "$results_file" +} + +# Add show_plugin_versions function +show_plugin_versions() { + local search_term="$1" + local found=0 + local results_file=$(mktemp) + + # Fetch manifests if needed + fetch_manifests "false" + + # Search through cached manifests + for repo in "${!REPOSITORIES[@]}"; do + local manifest_file="${MANIFEST_CACHE_DIR}/${repo}.json" + [ ! -f "$manifest_file" ] && continue + + # Search by name or GUID and get version info + jq -r --arg term "$search_term" ' + # Convert input to array if not already + if type == "array" then . else [.] end | + + .[] | + select( + (.name == $term) or + (.guid == $term) + ) | + { + name: .name, + versions: (.versions | sort_by(.timestamp) | reverse | .[0:10]) + } | + "Plugin: \(.name)\n" + + "----------------------------------------\n" + + (.versions[] | + "Timestamp: \(.timestamp)\n" + + "Version: \(.version)\n" + + "Target ABI: \(.targetAbi)\n" + + "Changelog: \(.changelog // "No changelog available")\n" + + "Download URL: \(.sourceUrl)\n" + + "----------------------------------------\n" + ) + ' "$manifest_file" 2>/dev/null > "$results_file" + + if [ -s "$results_file" ]; then + found=1 + break + fi + done + + if [ $found -eq 1 ]; then + echo -e "${BLUE}Latest 10 Versions:${NC}" + cat "$results_file" + else + echo -e "${RED}No plugin found matching: $search_term${NC}" + fi + + rm -f "$results_file" +} + +# Add update_manifests function +update_manifests() { + echo -e "${BLUE}Updating plugin manifests...${NC}" + fetch_manifests "true" # Force refresh + echo -e "${GREEN}Manifests updated successfully${NC}" +} + +# Function to remove old plugin version +remove_old_plugin() { + local plugin_name="$1" + local new_version="$2" + local current_version="$3" + + if [ -n "$current_version" ]; then + local old_dir="$PLUGIN_DIR/${plugin_name}_${current_version}" + if [ -d "$old_dir" ] && [ "$current_version" != "$new_version" ]; then + echo -e "${BLUE}Removing old version: $current_version${NC}" + rm -rf "$old_dir" + fi + fi +} + +# Update install_plugin function to handle cleanup +install_plugin() { + local input="$1" + local force="$2" + local current_version="$3" # Add parameter for current version + local temp_dir="/tmp/jellyfin_plugins" + + # Create temp directory + mkdir -p "$temp_dir" + + # Check if input is a URL + if [[ "$input" =~ ^https?:// ]]; then + echo -e "${BLUE}Installing from URL: $input${NC}" + + # Try to find checksum for this URL + local checksum + if checksum=$(find_checksum_for_url "$input"); then + echo -e "${GREEN}Found matching checksum in manifests${NC}" + else + echo -e "${YELLOW}Warning: No checksum found for this URL${NC}" + read -p "Continue without checksum verification? (y/N) " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo -e "${RED}Installation cancelled${NC}" + exit 1 + fi + fi + + install_from_url "$input" "$checksum" + return + fi + + # If not a URL, treat as GUID or name + # Fetch/update manifests + fetch_manifests "$force" + + # Find plugin in manifests + local found=false + local plugin_name="" + local plugin_version="" + local plugin_url="" + local plugin_checksum="" + local plugin_repo="" + local plugin_guid="" + local plugin_description="" + local plugin_overview="" + local plugin_owner="" + local plugin_category="" + local plugin_timestamp="" + local plugin_abi="" + local plugin_changelog="" + local plugin_image_url="" + + for manifest_file in "${MANIFEST_CACHE_DIR}"/*.json; do + if [[ ! -f "$manifest_file" ]]; then + continue + fi + + # Search for plugin by GUID or name + while IFS='|' read -r name version url checksum repo guid description overview owner category timestamp abi changelog; do + if [[ "$input" == "$guid" ]] || [[ "$input" == "$name" ]]; then + found=true + plugin_name="$name" + plugin_version="$version" + plugin_url="$url" + plugin_checksum="$checksum" + plugin_repo="$repo" + plugin_guid="$guid" + plugin_description="$description" + plugin_overview="$overview" + plugin_owner="$owner" + plugin_category="$category" + plugin_timestamp="$timestamp" + plugin_abi="$abi" + plugin_changelog="$changelog" + plugin_image_url="$(jq -r --arg guid "$guid" '.[] | select(.guid == $guid) | .imageUrl // ""' "$manifest_file")" + break 2 + fi + done < <(jq -r --arg input "$input" ' + .[] | + select(.guid == $input or .name == $input) | + . as $plugin | + ($plugin.versions | sort_by(.timestamp) | last) as $latest | + [ + $plugin.name, + $latest.version, + $latest.sourceUrl, + $latest.checksum, + .owner, + .guid, + (.description // ""), + (.overview // ""), + (.owner // ""), + (.category // ""), + $latest.timestamp, + $latest.targetAbi, + ($latest.changelog // "") + ] | join("|") + ' "$manifest_file") + done + + if [[ "$found" != "true" ]]; then + echo -e "${RED}Plugin not found with ID: $input${NC}" + exit 1 + fi + + echo -e "Found plugin: ${GREEN}$plugin_name${NC} (version $plugin_version) in $plugin_repo" + echo -e "Installing from: ${BLUE}$plugin_url${NC}" + + # Create temp directory + mkdir -p "$temp_dir" + local download_file="$temp_dir/${plugin_name,,}-${plugin_version}.zip" + + # Download plugin + echo "Downloading plugin..." + curl -L "$plugin_url" -o "$download_file" + + # Verify checksum + echo "Verifying checksum..." + if ! verify_checksum "$download_file" "$plugin_checksum"; then + echo -e "${RED}Checksum verification failed${NC}" + rm -f "$download_file" + exit 1 + fi + echo "Checksum verified" + + # Install plugin + echo "Installing plugin..." + + # Create plugin directory with correct naming convention + local plugin_dir="$PLUGIN_DIR/${plugin_name}_${plugin_version}" + mkdir -p "$plugin_dir" + + # Extract to plugin directory + unzip -o "$download_file" -d "$plugin_dir" + + # Generate meta.json + generate_meta_json \ + "$plugin_name" \ + "$plugin_version" \ + "$plugin_guid" \ + "$plugin_description" \ + "$plugin_overview" \ + "$plugin_owner" \ + "$plugin_category" \ + "$plugin_timestamp" \ + "$plugin_abi" \ + "$plugin_changelog" \ + "$plugin_dir" \ + "$plugin_image_url" + + # Download plugin image if available + if [ -n "$plugin_image_url" ]; then + download_plugin_image "$plugin_image_url" "$plugin_dir" "${plugin_name}_${plugin_version}" + fi + + # Set correct permissions + if [ -n "${PUID}" ] && [ -n "${PGID}" ]; then + chown -R ${PUID}:${PGID} "$plugin_dir" + fi + + # Cleanup + rm -f "$download_file" + + # After successful installation and before final message + if [ -n "$current_version" ]; then + remove_old_plugin "$plugin_name" "$plugin_version" "$current_version" + fi + + echo -e "${GREEN}Plugin installed successfully${NC}" + echo "Restart Jellyfin to complete installation:" + echo "docker compose restart jellyfin" +} + +# Update upgrade_plugins function to pass current version +upgrade_plugins() { + # Fetch latest manifests + fetch_manifests "true" + + echo -e "${BLUE}Checking for plugin updates...${NC}" + local updates_found=false + + # Scan plugins directory + for plugin_dir in "$PLUGIN_DIR"/*; do + if [ -f "$plugin_dir/meta.json" ]; then + # Read current plugin info + local current_guid=$(jq -r '.guid' "$plugin_dir/meta.json") + local current_version=$(jq -r '.version' "$plugin_dir/meta.json") + local plugin_name=$(jq -r '.name' "$plugin_dir/meta.json") + + # Search manifests for newer version + for manifest_file in "${MANIFEST_CACHE_DIR}"/*.json; do + if [[ ! -f "$manifest_file" ]]; then + continue + fi + + # Get latest version info + local latest_version=$(jq -r --arg guid "$current_guid" ' + .[] | + select(.guid == $guid) | + .versions | sort_by(.timestamp) | last | + .version // empty + ' "$manifest_file") + + if [ -n "$latest_version" ] && [ "$latest_version" != "$current_version" ]; then + updates_found=true + echo -e "\nUpdate available for ${GREEN}$plugin_name${NC}" + echo "Current version: $current_version" + echo "Latest version: $latest_version" + + read -p "Do you want to upgrade this plugin? (y/N) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + if install_plugin "$current_guid" "true" "$current_version"; then + echo -e "${GREEN}Upgrade successful${NC}" + else + echo -e "${RED}Upgrade failed${NC}" + fi + fi + fi + done + fi + done + + if [ "$updates_found" = false ]; then + echo -e "${GREEN}All plugins are up to date${NC}" + fi +} + +# Update main script to handle info command +case "$1" in + "catalog") + if [ -z "$2" ]; then + show_usage + exit 1 + fi + list_catalog "$2" + ;; + "install") + if [ -z "$2" ]; then + show_usage + exit 1 + fi + install_plugin "$2" + ;; + "search") + if [ -z "$2" ]; then + show_usage + exit 1 + fi + mkdir -p "${TEMP_DIR}" + search_repos "$2" + ;; + "info") + if [ -z "$2" ]; then + show_usage + exit 1 + fi + show_plugin_info "$2" + ;; + "versions") + if [ -z "$2" ]; then + show_usage + exit 1 + fi + show_plugin_versions "$2" + ;; + "repos") + list_repos + ;; + "update") + update_manifests + ;; + "upgrade") + upgrade_plugins + ;; + *) + show_usage + exit 1 + ;; +esac + + + + diff --git a/intel-arc.transcoding.yml b/intel-arc.transcoding.yml new file mode 100644 index 0000000..1d69060 --- /dev/null +++ b/intel-arc.transcoding.yml @@ -0,0 +1,30 @@ +# Intel ARC GPU Transcoding +services: + jellyfin: + environment: + # Basic Hardware Acceleration + - JELLYFIN_FFmpeg__EnableHardwareEncoding=true + - JELLYFIN_FFmpeg__EnableIntelLowPowerEncoding=true + - JELLYFIN_FFmpeg__EnableVppTonemapping=true + - JELLYFIN_FFmpeg__EncoderPreset=Auto + + # ARC Specific + - JELLYFIN_FFmpeg__HardwareDecodingCodecs=["h264_qsv","hevc_qsv","mpeg2_qsv","vp8_qsv","vp9_qsv","av1_qsv"] + - JELLYFIN_FFmpeg__EnableHWDecodingForCodecs=["h264","hevc","mpeg2video","vp8","vp9","av1"] + - JELLYFIN_FFmpeg__EnableTonemapping=true + - JELLYFIN_FFmpeg__TonemappingAlgorithm=hable + - JELLYFIN_FFmpeg__VaapiDevice=/dev/dri/renderD128 + + # Driver Configuration + - LIBVA_DRIVER_NAME=iHD + - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri + + devices: + - /dev/dri/renderD128:/dev/dri/renderD128 + - /dev/dri/card0:/dev/dri/card0 + group_add: + - "993" # render group (verify this ID on your system) + volumes: + - /usr/lib/x86_64-linux-gnu/intel-opencl:/usr/lib/x86_64-linux-gnu/intel-opencl:ro + - /usr/lib/x86_64-linux-gnu/libdrm.so.2:/usr/lib/x86_64-linux-gnu/libdrm.so.2:ro + - /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1:/usr/lib/x86_64-linux-gnu/libdrm_intel.so.1:ro \ No newline at end of file diff --git a/manage-jellyfin.sh b/manage-jellyfin.sh new file mode 100644 index 0000000..0bb4fc3 --- /dev/null +++ b/manage-jellyfin.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# Set PUID and PGID dynamically +export PUID=$(id -u) +export PGID=$(id -g) + +# Load other environment variables +set -a +source .env +set +a + +# Execute docker compose command with proper environment +docker compose "$@" \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/9p4's SSO.json b/plugin_manifests/2025.03.30/9p4's SSO.json new file mode 100644 index 0000000..a55d589 --- /dev/null +++ b/plugin_manifests/2025.03.30/9p4's SSO.json @@ -0,0 +1,100 @@ +[ + { + "category": "Authentication", + "description": "This plugin allows users to sign in through an SSO provider (such as Google, Facebook, or your own provider). This enables one-click signin.\nReview documentation at https://github.com/9p4/jellyfin-plugin-sso\n", + "guid": "505ce9d1-d916-42fa-86ca-673ef241d7df", + "name": "SSO Authentication", + "overview": "Authenticate users against an SSO provider.", + "owner": "9p4", + "versions": [ + { + "changelog": "## What's Changed\r\n* Update version in SSO-Auth.csproj by @lf- in https://github.com/9p4/jellyfin-plugin-sso/pull/169\r\n* update authelia example to authelia v4.38 by @hendrik1120 in https://github.com/9p4/jellyfin-plugin-sso/pull/170\r\n* Update providers.md to include android app keycloak OIDC redirect URI by @tbelway in https://github.com/9p4/jellyfin-plugin-sso/pull/190\r\n* Update plugin to function with Jellyfin 10.9\r\n\r\n## New Contributors\r\n* @lf- made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/169\r\n* @hendrik1120 made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/170\r\n* @tbelway made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/190\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.2.3...v3.5.2.4", + "checksum": "e325bcf4c60c5cae3e0cd4614faae07a", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.2.4/sso-authentication_3.5.2.4.zip", + "targetAbi": "10.9.0.0", + "timestamp": "2024-05-13T13:34:38Z", + "version": "3.5.2.4" + }, + { + "changelog": "## What's Changed\r\n* Remove jellyfin_credentials before loading iframe by @sbogomolov in https://github.com/9p4/jellyfin-plugin-sso/pull/163\r\n* [allow for better endpoint validation](https://github.com/9p4/jellyfin-plugin-sso/commit/d51e5069d6584953e93f93ec161b909388cd7ebe)\r\n\r\n## New Contributors\r\n* @sbogomolov made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/163\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.2.2...v3.5.2.3", + "checksum": "ba6ce744fd21c0b9452b23eeeb99e0e1", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.2.3/sso-authentication_3.5.2.3.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2024-02-21T22:11:24Z", + "version": "3.5.2.3" + }, + { + "changelog": "[allow linking to work with new paths](https://github.com/9p4/jellyfin-plugin-sso/commit/9321c25f2028101cee19f4bf90083aecb60bdba5)\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.2.1...v3.5.2.2", + "checksum": "94d0f6acf8eaead11c25680ee13cde7f", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.2.2/sso-authentication_3.5.2.2.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2024-01-22T21:39:33Z", + "version": "3.5.2.2" + }, + { + "changelog": "Hotfix for https://github.com/9p4/jellyfin-plugin-sso/issues/150", + "checksum": "a2c47db686895bc7cd4594bdda25286e", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.2.1/sso-authentication_3.5.2.1.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2023-10-18T05:12:18Z", + "version": "3.5.2.1" + }, + { + "changelog": "feat: allow overriding redirect scheme\r\n\r\nWow, I'm putting out a lot of releases lately. Sorry about that.\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.1.1...v3.5.2.0", + "checksum": "83b29edbc0c6722606bae9f2de095d88", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.2.0/sso-authentication_3.5.2.0.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2023-08-07T17:17:13Z", + "version": "3.5.2.0" + }, + { + "changelog": "fix: change iframe URL to point to the web UI instead of the root\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.1.0...v3.5.1.1", + "checksum": "c5e6dd973ebef1ef80d7d59ef7ad0815", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.1.1/sso-authentication_3.5.1.1.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2023-08-07T12:44:02Z", + "version": "3.5.1.1" + }, + { + "changelog": "* fix: improve final redirect (#109)\r\n* style: fix configPage style (prettier)\r\n* docs: detail Google requiring disabling of OpenID endpoint validation\r\n* fix: make SAML paths better; improve and add OID discovery defaults\r\n* docs: clarify plugin resetting permissions\r\n* style: fix README.md style\r\n* docs: document how to set login disclaimer (#16)\r\n* feat: clarify redirect paths (#84)\r\n* fix: Remove funding\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.5.0.0...v3.5.1.0", + "checksum": "574ab1a090ba1726a01b0861e990eeb8", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.1.0/sso-authentication_3.5.1.0.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2023-08-06T20:38:07Z", + "version": "3.5.1.0" + }, + { + "changelog": "## What's Changed\r\n* feat: add Live TV management\r\n* fix: make user creation more robust by @fredriklindberg in https://github.com/9p4/jellyfin-plugin-sso/pull/72\r\n* fix: don't include port in redirect URL for 80 and 443 by @fredriklindberg in https://github.com/9p4/jellyfin-plugin-sso/pull/71\r\n* feat: allow configuration of preferred username claim by @9p4 in https://github.com/9p4/jellyfin-plugin-sso/pull/74\r\n* feat: allow for HTTPS to be disabled in OpenID discovery by @9p4 in https://github.com/9p4/jellyfin-plugin-sso/pull/77\r\n* fix: #83 Trim whitespace in user provided strings by @9p4 in https://github.com/9p4/jellyfin-plugin-sso/pull/89\r\n* null check before trim() by @esmondmissen in https://github.com/9p4/jellyfin-plugin-sso/pull/99\r\n* fix: error in logs for #81 by @esmondmissen in https://github.com/9p4/jellyfin-plugin-sso/pull/100\r\n* docs: 📝 add authentik redirect uri step by @adamzvolanek in https://github.com/9p4/jellyfin-plugin-sso/pull/127\r\n* fix: fix null pointer errors in various places\r\n\r\n## New Contributors\r\n* @fredriklindberg made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/72\r\n* @esmondmissen made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/99\r\n* @adamzvolanek made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/127\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.4.0.2...v3.5.0.0", + "checksum": "5621a407cce8907bfa5cad9d3ce52924", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.5.0.0/sso-authentication_3.5.0.0.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2023-08-05T22:55:07Z", + "version": "3.5.0.0" + }, + { + "changelog": "# Self Service: \r\n\r\n* Users can link existing jellyfin accounts to SSO provider accounts\r\n* Users can remove existing links\r\n* Users can configure multiple SSO provider accounts\r\n* Account names no longer have to match across Jellyfin -> SSO provider\r\n * Eg, can link google OIDC, with a `sub` of `asfbeausfahgajsfjasd-ugly-sub` to jellyfin username `matthew`\r\n\r\n## What's Changed\r\n\r\n### Features\r\n\r\n* Implement Canonical Linking + Self Service by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/34\r\n * Account names no longer have to match to be linked\r\n\r\n### Fixes\r\n\r\n* Fix ID Provider incorrectly resetting on login by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/33\r\n\r\n### Documentation\r\n\r\n* Document Provider Specific Configuration, Small Readme Update by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/31\r\n* docs: move build-from-source to contributing section, link vscode config by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/63\r\n* docs: :memo: document new plugin install mechanism by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/56\r\n\r\n### CI / Build\r\n\r\n* Add github action for publishing releases by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/39\r\n* Revert \"Add github action for publishing releases\" by @9p4 in https://github.com/9p4/jellyfin-plugin-sso/pull/40\r\n* Revert \"Revert \"Add github action for publishing releases\"\" by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/46\r\n* pin version of oddstr13/jprm to specific commit by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/48\r\n* ci: pin kevinjil/jprm-action to specific sha by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/50\r\n* ci: ignore prereleases when publishing manifest by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/52\r\n* ci: add checksum to nightly builds by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/53\r\n* ci: only run checksum agaisnt zip files by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/54\r\n* build: ignore .vscode entirely in gitignore by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/62\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.3.0.0...v3.4.0.2", + "checksum": "485d67094e39cc5b11470abea6b46427", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.4.0.2/sso-authentication_3.4.0.0.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2022-08-18T09:10:59Z", + "version": "3.4.0.0" + }, + { + "changelog": "## What's Changed\r\n* Clean up controller by @crobibero in https://github.com/9p4/jellyfin-plugin-sso/pull/12\r\n* Fallback Authentication Provider by @Pfuenzle in https://github.com/9p4/jellyfin-plugin-sso/pull/9\r\n* Add UI Page for OIDC Configuration by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/18\r\n* Add prettier workflow to CI by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/22\r\n* Allow requesting additional scopes in OIDC flows by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/24\r\n* CI: Prettier Workflow: Remove explicit branch ref from checkout by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/25\r\n* CI: lint css files in prettier workflow by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/30\r\n* Improve UX on config page by @matthewstrasiotto in https://github.com/9p4/jellyfin-plugin-sso/pull/27\r\n\r\n## New Contributors\r\n* @matthewstrasiotto made their first contribution in https://github.com/9p4/jellyfin-plugin-sso/pull/18\r\n\r\n**Full Changelog**: https://github.com/9p4/jellyfin-plugin-sso/compare/v3.2.0.0...v3.3.0.0", + "checksum": "79357968612a992e6494167fd065dafb", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/v3.3.0.0/sso-authentication_3.3.0.0.zip", + "targetAbi": "10.8.0.0", + "timestamp": "2022-05-22T16:17:07Z", + "version": "3.3.0.0" + }, + { + "changelog": "Nightly build\n", + "checksum": "f9c78013fa4c5e424a94b58e5d8c81d8", + "sourceUrl": "https://github.com/9p4/jellyfin-plugin-sso/releases/download/nightly/sso-authentication_0.0.0.9000.zip", + "targetAbi": "10.9.0.0", + "timestamp": "2022-07-01T01:20:33Z", + "version": "0.0.0.9000" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/Ani-Sync.json b/plugin_manifests/2025.03.30/Ani-Sync.json new file mode 100644 index 0000000..8d343e7 --- /dev/null +++ b/plugin_manifests/2025.03.30/Ani-Sync.json @@ -0,0 +1,292 @@ +[ + { + "category": "General", + "guid": "c78f11cf-93e6-4423-8c42-d2c255b70e47", + "name": "Ani-Sync", + "description": "Synchronize anime watch status between Jellyfin and anime tracking sites.", + "owner": "vosmiic", + "overview": "Synchronize anime watch status", + "versions": [ + { + "checksum": "9fad2410c7f95144529a4fa6cc5cdabf", + "changelog": "1. Fixed test auth URL 2. Fixed AniList rewatches being marked as watching instead of rewatching 3. Updating Jellyfin packages which fixed a manual sync issue", + "targetAbi": "10.10.3.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v3.7/10.10.3.-.ani-sync_3.7.0.0.zip", + "timestamp": "2024-11-21T00:00:00Z", + "version": "3.7.0.0" + }, + { + "checksum": "862b6ad44f6ee9214b12ee981dc894e7", + "changelog": "1. Fixing Anilist timeout issues 2. Frontend fixes 3. Fix episode offset issues 4. Update Jellyfin packages", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v3.4/10.9.9.-.ani-sync_3.4.0.0.zip", + "timestamp": "2024-08-08T00:00:00Z", + "version": "3.4.0.0" + }, + { + "checksum": "91d4f8731da1317c669c2194061fb9f9", + "changelog": "1. Updated plugin to support Jellyfin version 10.9. 2. Fixed AniList related bugs 3. Fixed Shikimori related bugs 4. Fixed issue with library checks", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v3.2/10.9.0.-.ani-sync_3.2.0.0.zip", + "timestamp": "2024-05-13T00:00:00Z", + "version": "3.2.0.0" + }, + { + "checksum": "37781c18e8150bd932e7760529980696", + "changelog": "1. Fixing issues around marking seasons/episodes as watched. 2. Redirect user on successful auth 3. Shikimori support 4. Anime detection changes", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v3.0/10.8.13.-.ani-sync_3.0.0.0.zip", + "timestamp": "2024-02-21T00:00:00Z", + "version": "3.0.0.0" + }, + { + "checksum": "e3ab7660a6f9a4c1bf283a0812cdbe19", + "changelog": "1. Fixed issue where completing a rewatch did not correctly update the MAL rewatch status.", + "targetAbi": "10.8.10.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.9/10.8.10.-.ani-sync_2.9.0.0.zip", + "timestamp": "2023-05-17T00:00:00Z", + "version": "2.9.0.0" + }, + { + "checksum": "401754db28e8e563ec28ed511062e5cd", + "changelog": "1. Fixed issue where special characters in provider auth password caused bad request. 2. Fixed issue where hitting into fatal addon issue caused the entire Jellyfin app to crash.", + "targetAbi": "10.8.9.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.8/10.8.9.-.ani-sync_2.8.0.0.zip", + "timestamp": "2023-04-10T00:00:00Z", + "version": "2.8.0.0" + }, + { + "checksum": "7eddbd26312c0461b9167c0520b4c7e1", + "changelog": "1. Fixed issue where the user could not save their Annict details if it was the only authenticated API", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.7.1/10.8.8.-.ani-sync_2.7.1.0.zip", + "timestamp": "2023-01-11T00:00:00Z", + "version": "2.7.1.0" + }, + { + "checksum": "4800da9b2300036e7e5f7c79debc8b33", + "changelog": "1. Added Annict support", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.7/10.8.8.-.ani-sync_2.7.0.0.zip", + "timestamp": "2023-01-09T00:00:00Z", + "version": "2.7.0.0" + }, + { + "checksum": "4169dea137f2e1d235addb79a534d5bb", + "changelog": "1. Fixed issue where the plugin would cause Jellyfin to crash when watching live media", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.6/10.8.8.-.ani-sync_2.6.0.0.zip", + "timestamp": "2023-01-01T00:00:00Z", + "version": "2.6.0.0" + }, + { + "checksum": "adeea332b408d517c04341409683238a", + "changelog": "1. Fixed cases where anime-list returned 'a' for the defaulttvdbseason number", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.5/10.8.8.-.ani-sync_2.5.0.0.zip", + "timestamp": "2022-12-13T00:00:00Z", + "version": "2.5.0.0" + }, + { + "checksum": "c10182c769165105ffeca0f3881e515e", + "changelog": "1. Fixed crash on providers IDs not found (thanks Pecomare)", + "targetAbi": "10.8.5.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.4/10.8.5.-.ani-sync_2.4.0.0.zip", + "timestamp": "2022-11-23T00:00:00Z", + "version": "2.4.0.0" + }, + { + "checksum": "309238aa8c12ffc781b92374fdb3e845", + "changelog": "1. Search for Anibd id within Season 2. Updated libraries to latest version", + "targetAbi": "10.8.5.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.3/10.8.5.-.ani-sync_2.3.0.0.zip", + "timestamp": "2022-08-10T00:00:00Z", + "version": "2.3.0.0" + }, + { + "checksum": "c5508cd945f42f466afd438f9bdb1648", + "changelog": "1. Fixed issues with index numbers related to manual sync \n 2. Fixed issues with users libraries not being properly queried when using manual sync", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.2.1/10.8.0.-.ani-sync_2.2.1.0.zip", + "timestamp": "2022-08-03T00:00:00Z", + "version": "2.2.1.0" + }, + { + "checksum": "9c5c424a012d7dacf6a27bfea31c69e4", + "changelog": "1. Added manual sync functionality \n 2. Fixed anime list pathing issues on Windows builds \n 3. Fixed a few bugs", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.2/10.8.0.-.ani-sync_2.2.0.0.zip", + "timestamp": "2022-07-21T00:00:00Z", + "version": "2.2.0.0" + }, + { + "checksum": "6437a17ef149569580ed3e2202f7ba3c", + "changelog": "1. Fixed parameters not showing in the config page by updating the Jellyfin packages", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.1.1/10.8.1.-.ani-sync_2.1.1.0.zip", + "timestamp": "2022-06-27T00:00:00Z", + "version": "2.1.1.0" + }, + { + "checksum": "30107aa68e1e38914edf611c0b52419e", + "changelog": "A few QOL improvements. \n 1. Log fixes \n 2. Update progress of providers when user ticks the anime as watched via the UI \n 3. Fixed OVA detection with new anime detection update. \n 4. Added default anime list save location", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.1/10.8.0.-.ani-sync_2.1.0.0.zip", + "timestamp": "2022-06-16T21:30:00Z", + "version": "2.1.0.0" + }, + { + "checksum": "45067cae878b674af6d16ef5202368b2", + "changelog": "A few QOL improvements. \n 1. Log fixes \n 2. Update progress of providers when user ticks the anime as watched via the UI \n 3. Fixed OVA detection with new anime detection update. \n 4. Added default anime list save location", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.1/10.7.7.-.ani-sync_2.1.0.0.zip", + "timestamp": "2022-06-16T21:30:00Z", + "version": "2.1.0.0" + }, + { + "checksum": "278b33aa150042c694f25b30e81b3d3d", + "changelog": "Hotfix for recent v2 release. Larger update out soon. \n 1. Fixed incorrect season detection when using AniList metadata provider \n 2. Fixed anime save location test error on Windows \n 3. Fixed multiple logging errors.", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.0.1/10.8.0.-.ani-sync_2.0.1.0.zip", + "timestamp": "2022-06-11T14:00:00Z", + "version": "2.0.1.0" + }, + { + "checksum": "b38e72047d2d08d1d306dbe956d63857", + "changelog": "Hotfix for recent v2 release. Larger update out soon. \n 1. Fixed incorrect season detection when using AniList metadata provider \n 2. Fixed anime save location test error on Windows \n 3. Fixed multiple logging errors.", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2.0.1/10.7.7.-.ani-sync_2.0.1.0.zip", + "timestamp": "2022-06-11T14:00:00Z", + "version": "2.0.1.0" + }, + { + "checksum": "80c7b0c1f86a418658de77df1848c59d", + "changelog": "1. Use outside sources to massively improve anime detection - please check your config for a new option to enable these features (this also comes with a new job in the scheduler).\n 2. Further improve anime detection by comparing the title to more synonyms (thanks Pecomare for this). \n 3. Fixed null error when anime could not be found. \n 4. Fixed anime movies not being correctly processed. \n 5. Fixed issues with servers using a non-default base URL.", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2/10.8.0.-.ani-sync_2.0.0.0.zip", + "timestamp": "2022-06-09T21:00:00Z", + "version": "2.0.0.0" + }, + { + "checksum": "2cf72f57459d36fa1b8a0abbba9490b5", + "changelog": "1. Use outside sources to massively improve anime detection - please check your config for a new option to enable these features (this also comes with a new job in the scheduler).\n 2. Further improve anime detection by comparing the title to more synonyms (thanks Pecomare for this). \n 3. Fixed null error when anime could not be found. \n 4. Fixed anime movies not being correctly processed. \n 5. Fixed issues with servers using a non-default base URL.", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v2/10.7.7.-.ani-sync_2.0.0.0.zip", + "timestamp": "2022-06-09T21:00:00Z", + "version": "2.0.0.0" + }, + { + "checksum": "94c7f5b267ee40d9044eda81c2e81d28", + "changelog": "1. Fixed currently airing shows not being updated \n 2. Fixed null reference error causing Jellyfin to crash when API authentication error occurs", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.6/10.8.0.-.ani-sync_1.6.0.0.zip", + "timestamp": "2022-04-18T13:00:00Z", + "version": "1.6.0.0" + }, + { + "checksum": "9742d80b99f36f76f6ab528a988d51a5", + "changelog": "1. Fixed currently airing shows not being updated \n 2. Fixed null reference error causing Jellyfin to crash when API authentication error occurs", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.6/10.7.7.-.ani-sync_1.6.0.0.zip", + "timestamp": "2022-04-18T13:00:00Z", + "version": "1.6.0.0" + }, + { + "checksum": "d63031b95e6db2affe2e568ace1eb79d", + "changelog": "1. Checking Japanese title as well as English title when searching for anime via the provider API", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.5/10.8.0.-.ani-sync_1.5.0.0.zip", + "timestamp": "2022-04-06T16:07:00Z", + "version": "1.5.0.0" + }, + { + "checksum": "8bf61413f8158b34b6a16702c2058207", + "changelog": "1. Checking Japanese title as well as English title when searching for anime via the provider API", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.5/10.7.7.-.ani-sync_1.5.0.0.zip", + "timestamp": "2022-04-06T16:07:00Z", + "version": "1.5.0.0" + }, + { + "checksum": "21ff1b9a92d45bfdf2e8573c7c9101c9", + "changelog": "1. Added 'Generate Callback URL' button on the config page. \n 2. Fixed the API endpoint not being populated on config page load. \n 3. Added Kitsu support (beta) \n 4. Added multi-cour season support \n 5. Fixed crash when attempting to find OVA", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.4/10.8.0.-.ani-sync_1.4.0.0.zip", + "timestamp": "2022-03-28T12:22:00Z", + "version": "1.4.0.0" + }, + { + "checksum": "71698e6a23d2eaa06b61350dff10b005", + "changelog": "1. Added 'Generate Callback URL' button on the config page. \n 2. Fixed the API endpoint not being populated on config page load. \n 3. Added Kitsu support (beta) \n 4. Added multi-cour season support \n 5. Fixed crash when attempting to find OVA", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.4/10.7.7.-.ani-sync_1.4.0.0.zip", + "timestamp": "2022-03-28T12:22:00Z", + "version": "1.4.0.0" + }, + { + "checksum": "39e3413612f58c54a9d28ca05949a35d", + "changelog": "1. Added AniList provider support", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.3/10.8.0.-.ani-sync_1.3.0.0.zip", + "timestamp": "2022-03-13T17:00:00Z", + "version": "1.3.0.0" + }, + { + "checksum": "e509aa07978fabc2e3629dafda58445b", + "changelog": "1. Added AniList provider support.", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.3/10.7.7.-.ani-sync_1.3.0.0.zip", + "timestamp": "2022-03-13T17:00:00Z", + "version": "1.3.0.0" + }, + { + "checksum": "3e6b3850c16bbb372a36189484b0690a", + "changelog": "1. Added OVA/special support \n 2. Restored symbols to query when searching for anime", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.2/10.8.0.-.ani-sync_1.2.0.0.zip", + "timestamp": "2022-02-26T17:00:00Z", + "version": "1.2.0.0" + }, + { + "checksum": "7a3044bda8d14e76c8f73a4f90a9248f", + "changelog": "1. Added OVA/special support \n 2. Restored symbols to query when searching for anime", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.2/10.7.7.-.ani-sync_1.2.0.0.zip", + "timestamp": "2022-02-26T17:00:00Z", + "version": "1.2.0.0" + }, + { + "checksum": "16464e695f5c4480ea284f7f6051453d", + "changelog": "Hotfix - Fixing anime with a name longer than 64 characters causing crashes", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.1/10.8.0.-.ani-sync_1.1.0.0.zip", + "timestamp": "2022-02-24T21:40:38Z", + "version": "1.1.0.0" + }, + { + "checksum": "3d44ac6e26ae04229c789db7fba32f4a", + "changelog": "Hotfix - Fixing anime with a name longer than 64 characters causing crashes", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1.1/10.7.7.-.ani-sync_1.1.0.0.zip", + "timestamp": "2022-02-24T21:40:38Z", + "version": "1.1.0.0" + }, + { + "checksum": "bd90049041dc0768ecb3e7ee60512169", + "changelog": "Initial release", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1/10.8.0.-.ani-sync_1.0.0.0.zip", + "timestamp": "2022-02-21T21:09:38Z", + "version": "1.0.0.0" + }, + { + "checksum": "36759af89cc368bb02d26b5e74c98444", + "changelog": "Initial release", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://github.com/vosmiic/jellyfin-ani-sync/releases/download/v1/10.7.7.-.ani-sync_1.0.0.0.zip", + "timestamp": "2022-02-21T21:09:38Z", + "version": "1.0.0.0" + } + ] + } +] diff --git a/plugin_manifests/2025.03.30/Linfor.json b/plugin_manifests/2025.03.30/Linfor.json new file mode 100644 index 0000000..9127ab2 --- /dev/null +++ b/plugin_manifests/2025.03.30/Linfor.json @@ -0,0 +1,195 @@ +[ + { + "category": "Metadata", + "guid": "0c136f8a-ff77-4f2b-ade5-13462cae6216", + "name": "КиноПоиск", + "overview": "Информация о фильмах и сериалах с КиноПоиска", + "owner": "LinFor & skrashevich", + "description": "Загружает рейтинг, описания, актёров, трейлеры и т.д. с сайта КиноПоиск. Может потребоваться зарегистрировать свой ApiToken, см. информацию в параметрах плагина. Для точного распознавания рекомендуется указывать id фильма с сайта КиноПоиск в имени файла в формате kp-12345 или kp12345. Подробнее см. https://github.com/LinFor/jellyfin-plugin-kinopoisk/blob/master/README.md\n", + "imageUrl": "https://kinopoisk.userecho.com/s/attachments/28876/0/1/25f8c0315e6ccb2aa6c2642e48f2c9e9.png", + "versions": [ + { + "version": "10.9.0.0", + "checksum": "46f29865d6ddb8e66f577ffd93cb8a55", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.9.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.9.0.0.zip", + "timestamp": "2024-05-15T15:11:12Z" + }, + { + "version": "10.8.9.3", + "checksum": "b884a366e1da7e826267e8f13a3c1a09", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://raw.githubusercontent.com/skrashevich/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.8.9.3.zip", + "timestamp": "2023-06-14T22:56:46Z" + }, + { + "version": "10.8.9.2", + "checksum": "8cbefa9f1aa03dc054d0d8a83f49eb6b", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://raw.githubusercontent.com/skrashevich/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.8.9.2.zip", + "timestamp": "2023-02-08T16:42:11Z" + }, + { + "version": "10.8.9.1", + "checksum": "d15934ff981be4d7df861cd35a862971", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://raw.githubusercontent.com/skrashevich/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.8.9.1.zip", + "timestamp": "2023-02-08T16:10:12Z" + }, + { + "version": "10.8.9.1", + "checksum": "3790c3375057977320a77fe004f7c17f", + "changelog": "new release", + "targetAbi": "10.8.0", + "sourceUrl": "https://raw.githubusercontent.com/skrashevich/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.8.9.1.zip", + "timestamp": "2023-02-08T15:37:42Z" + }, + { + "version": "10.7.5.6", + "changelog": "Update to .NET 7\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/skrashevich/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.6.zip", + "checksum": "60310678f450ca7f0da3811642ae2bc4", + "timestamp": "2023-01-22T03:34:00Z" + }, + { + "version": "10.7.5.4", + "changelog": "Search fixed in case of null premiere date\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.4.zip", + "checksum": "2f48bd383e298da975e93a7f84fe3bc1", + "timestamp": "2021-10-17T15:57:00Z" + }, + { + "version": "10.7.5.3", + "changelog": "Results parsing fixes due to upstream service changes (api 2.2)\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.3.zip", + "checksum": "43930ff3db6b6938dcbc23297c53c746", + "timestamp": "2021-09-27T12:09:43Z" + }, + { + "version": "10.7.5.2", + "changelog": "Results parsing fixes due to upstream service changes\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.2.zip", + "checksum": "e35c1942fb8ceda1d351d7307174fab2", + "timestamp": "2021-08-10T16:00:08Z" + }, + { + "version": "10.7.5.1", + "changelog": "Results parsing fixes\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.1.zip", + "checksum": "c41d06954e6c00d8b51f11ac11180cb3", + "timestamp": "2021-06-22T09:27:10Z" + }, + { + "version": "10.7.5.0", + "changelog": "Short: Huge improvement in auto-identifying of movies. Rus: Значительно улучшено авто-привязка фильмов при добавлении в медиатеку. Пытаюсь найти идентификатор кинопоиска по паттерну kp-12345 или kp12345 в имени файла/папки. Пытаюсь найти единственное совпадение на кинопоиске по имени + году. Пытаюсь перебрать все совпадения по имени + сравнение IMDB ID.\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.5.0.zip", + "checksum": "ea7eabac0fc4d1891529616a16a02897", + "timestamp": "2021-05-23T15:30:18Z" + }, + { + "version": "10.7.0.5", + "changelog": "Added trailers filtering: jellyfin-web can only play youtube trailers, not kinopoisk-hosted\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.0.5.zip", + "checksum": "6bdb97ee1e862b0b5657f7b510040148", + "timestamp": "2021-05-22T23:01:09Z" + }, + { + "version": "10.7.0.4", + "changelog": "Added person info, person image, trailers fetching\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.0.4.zip", + "checksum": "28d4972fe0f5e193a8b3051ce5240ffe", + "timestamp": "2021-05-22T22:24:49Z" + }, + { + "version": "10.7.0.3", + "changelog": "Don't provide empty poster Added kinopoisk hyperlink in people info\n", + "targetAbi": "10.7.0", + "sourceUrl": "https://raw.githubusercontent.com/LinFor/jellyfin-plugin-kinopoisk/master/dist/kinopoisk/kinopoisk_10.7.0.3.zip", + "checksum": "d58cdb87e4e93b7ab1b22c14248841e2", + "timestamp": "2021-05-21T16:00:03Z" + }, + { + "checksum": "8d77d5f4de0bdf0abbce76cf8e5a251d", + "changelog": "Fixed rating parsing", + "name": "КиноПоиск", + "targetAbi": "10.7.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.7.0.2.zip", + "filename": "jellyfin-plugin-kinopoisk_10.7.0.2.zip", + "timestamp": "2021-04-06 18:12:00", + "version": "10.7.0.2" + }, + { + "checksum": "9051c982f7846af34249ed9969012c17", + "changelog": "Fixed some actor professions parsing", + "name": "КиноПоиск", + "targetAbi": "10.7.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.7.0.1.zip", + "filename": "jellyfin-plugin-kinopoisk_10.7.0.1.zip", + "timestamp": "2021-03-18 13:31:00", + "version": "10.7.0.1" + }, + { + "checksum": "ec7cfeff6a88f2427057d1bb6fb150b6", + "changelog": "Jellyfin v10.7 compat", + "name": "КиноПоиск", + "targetAbi": "10.7.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.7.0.0.zip", + "filename": "jellyfin-plugin-kinopoisk_10.7.0.0.zip", + "timestamp": "2021-03-16 11:35:00", + "version": "10.7.0.0" + }, + { + "checksum": "50674e215597995b96da17b49ee7ad62", + "changelog": "fix NRE in person provider", + "name": "КиноПоиск", + "targetAbi": "10.6.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.6.0.2.zip", + "filename": "jellyfin-plugin-kinopoisk_10.6.0.2.zip", + "timestamp": "2020-07-09 13:00:00", + "version": "10.6.0.2" + }, + { + "checksum": "a877cde0df7d70266fdb9362b72884c1", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.6.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.6.0.1.zip", + "filename": "jellyfin-plugin-kinopoisk_10.6.0.1.zip", + "timestamp": "2020-07-07 19:00:00", + "version": "10.6.0.1" + }, + { + "checksum": "8f43d3943f5f60293c6fb0ccbe560096", + "changelog": "new release", + "name": "КиноПоиск", + "targetAbi": "10.6.0", + "runtimes": "netframework,netcore", + "sourceUrl": "https://github.com/LinFor/jellyfin-plugin-kinopoisk/raw/master/dist/kinopoisk/jellyfin-plugin-kinopoisk_10.6.0.0.zip", + "filename": "jellyfin-plugin-kinopoisk_10.6.0.0.zip", + "timestamp": "2020-07-07 10:00:00", + "version": "10.6.0.0" + } + ] + } +] diff --git a/plugin_manifests/2025.03.30/LizardByte.json b/plugin_manifests/2025.03.30/LizardByte.json new file mode 100644 index 0000000..c10b66a --- /dev/null +++ b/plugin_manifests/2025.03.30/LizardByte.json @@ -0,0 +1,718 @@ +[ + { + "guid": "e41ef0c4-c413-41ba-b4fa-8c565dc3c969", + "name": "Themerr", + "description": "Automatically add theme songs to movies and tv shows using ThemerrDB", + "overview": "Automatically add theme songs to movies and tv shows using ThemerrDB", + "owner": "LizardByte", + "category": "Metadata", + "image": "themerr-jellyfin.png", + "imageUrl": "https://lizardbyte.github.io/jellyfin-plugin-repo/themerr/themerr-jellyfin.png", + "versions": [ + { + "version": "2024.523.2124.32", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.523.2124.32/themerr-jellyfin.zip", + "checksum": "032f4780aac31526d30a556cbafdfb1f", + "timestamp": "2024-05-23T21:55:01Z" + }, + { + "version": "2024.519.1836.29", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.519.1836.29/themerr-jellyfin.zip", + "checksum": "191891e95d57ba2c63e085634a612224", + "timestamp": "2024-05-19T18:37:41Z" + }, + { + "version": "2024.519.1512.33", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.519.1512.33/themerr-jellyfin.zip", + "checksum": "d7ed00d15338e385b225e8a300e48e2e", + "timestamp": "2024-05-19T15:23:01Z" + }, + { + "version": "2024.518.2054.48", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.2054.48/themerr-jellyfin.zip", + "checksum": "d36f1d416bb5f7f1f36fdda6db837027", + "timestamp": "2024-05-18T20:55:44Z" + }, + { + "version": "2024.518.2043.13", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.2043.13/themerr-jellyfin.zip", + "checksum": "863d2f20a3ece66d2c2087d8d20f3700", + "timestamp": "2024-05-18T20:44:08Z" + }, + { + "version": "2024.518.2031.24", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.2031.24/themerr-jellyfin.zip", + "checksum": "434b82136de3c0e729cac4286a49cf80", + "timestamp": "2024-05-18T20:32:31Z" + }, + { + "version": "2024.518.2019.25", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.2019.25/themerr-jellyfin.zip", + "checksum": "7642ac0637394747c5c03f095ef37f45", + "timestamp": "2024-05-18T20:20:20Z" + }, + { + "version": "2024.518.1833.47", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.1833.47/themerr-jellyfin.zip", + "checksum": "cb6fcef0af70a20e10223b8cf71b494f", + "timestamp": "2024-05-18T18:35:06Z" + }, + { + "version": "2024.518.1505.3", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.518.1505.3/themerr-jellyfin.zip", + "checksum": "703334b02b9760a49c8a79edc673e9fe", + "timestamp": "2024-05-18T18:26:36Z" + }, + { + "version": "2024.515.2109.23", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.515.2109.23/themerr-jellyfin.zip", + "checksum": "ff892d9bfb988d61ba4a47f17db10990", + "timestamp": "2024-05-15T21:10:43Z" + }, + { + "version": "2024.515.232.46", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.515.232.46/themerr-jellyfin.zip", + "checksum": "05f406743b542c55680e3f6c88611665", + "timestamp": "2024-05-15T02:34:10Z" + }, + { + "version": "2024.515.221.18", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.515.221.18/themerr-jellyfin.zip", + "checksum": "ca9e51391e422a84a13c989799653631", + "timestamp": "2024-05-15T02:22:34Z" + }, + { + "version": "2024.514.151.24", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.514.151.24/themerr-jellyfin.zip", + "checksum": "ae16e7fe7d4a1e4b6b5a0e986448ce9c", + "timestamp": "2024-05-14T01:52:22Z" + }, + { + "version": "2024.514.143.19", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.514.143.19/themerr-jellyfin.zip", + "checksum": "bee2ce1519af7cc86a0a081a0df13879", + "timestamp": "2024-05-14T01:44:15Z" + }, + { + "version": "2024.514.137.50", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.514.137.50/themerr-jellyfin.zip", + "checksum": "156ba6fcc2b449130a033eaeda13dbf9", + "timestamp": "2024-05-14T01:39:09Z" + }, + { + "version": "2024.514.129.10", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.514.129.10/themerr-jellyfin.zip", + "checksum": "a086180ca8e2dcfd36b10fb1685305e7", + "timestamp": "2024-05-14T01:30:19Z" + }, + { + "version": "2024.513.2336.57", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.513.2336.57/themerr-jellyfin.zip", + "checksum": "06c18ea3dff6351db6f58a8527b3ea88", + "timestamp": "2024-05-13T23:38:02Z" + }, + { + "version": "2024.511.1724.56", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.511.1724.56/themerr-jellyfin.zip", + "checksum": "d1ca7eb895cb862421f58ec3552531a2", + "timestamp": "2024-05-11T17:26:10Z" + }, + { + "version": "2024.511.34.40", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.511.34.40/themerr-jellyfin.zip", + "checksum": "86197663cf007db6770dbcffa4e7dc3f", + "timestamp": "2024-05-11T00:35:52Z" + }, + { + "version": "2024.510.2327.42", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2327.42/themerr-jellyfin.zip", + "checksum": "c3e6f4758e0cf5b0748e1d10e02af033", + "timestamp": "2024-05-10T23:28:51Z" + }, + { + "version": "2024.510.2320.6", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2320.6/themerr-jellyfin.zip", + "checksum": "38c9efe05fba9814f48104844ef11a5f", + "timestamp": "2024-05-10T23:21:03Z" + }, + { + "version": "2024.510.2258.28", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2258.28/themerr-jellyfin.zip", + "checksum": "8327bc65680fccf88877f60fb7f307ae", + "timestamp": "2024-05-10T22:59:43Z" + }, + { + "version": "2024.510.2226.2", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2226.2/themerr-jellyfin.zip", + "checksum": "d2f85146174b48cedcbfcc5f3ab0f7da", + "timestamp": "2024-05-10T22:26:56Z" + }, + { + "version": "2024.510.2200.22", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2200.22/themerr-jellyfin.zip", + "checksum": "67496aeaff807581ebcbc4744184a043", + "timestamp": "2024-05-10T22:01:35Z" + }, + { + "version": "2024.510.2148.54", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2148.54/themerr-jellyfin.zip", + "checksum": "f4bc4629211cdee5f117a62f2bf1deb2", + "timestamp": "2024-05-10T21:50:03Z" + }, + { + "version": "2024.510.2120.23", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2120.23/themerr-jellyfin.zip", + "checksum": "76ad8c92dcd72025182b6b2b67854a2d", + "timestamp": "2024-05-10T21:21:26Z" + }, + { + "version": "2024.510.2003.50", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.2003.50/themerr-jellyfin.zip", + "checksum": "3c5efb3d5b7218de1aa221bed88acb1b", + "timestamp": "2024-05-10T20:05:03Z" + }, + { + "version": "2024.510.1948.49", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.1948.49/themerr-jellyfin.zip", + "checksum": "29506e8a1f87bdfba3a41df34b6c95dc", + "timestamp": "2024-05-10T19:50:29Z" + }, + { + "version": "2024.510.1932.47", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.510.1932.47/themerr-jellyfin.zip", + "checksum": "d8eca57b890c8bdbd533c5f9577e96d9", + "timestamp": "2024-05-10T19:34:02Z" + }, + { + "version": "2024.504.1503.23", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.504.1503.23/themerr-jellyfin.zip", + "checksum": "bf0719dfc1f56f0b0c3530e64be6092a", + "timestamp": "2024-05-04T15:04:35Z" + }, + { + "version": "2024.419.48.57", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.419.48.57/themerr-jellyfin.zip", + "checksum": "12cce084987a7d3549ce43feeb005c8d", + "timestamp": "2024-04-19T00:50:06Z" + }, + { + "version": "2024.325.1706.30", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.325.1706.30/themerr-jellyfin.zip", + "checksum": "8bba0d74c16aea465379c94d0b62d5a8", + "timestamp": "2024-03-25T17:07:42Z" + }, + { + "version": "2024.324.2113.53", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.2113.53/themerr-jellyfin.zip", + "checksum": "752e4f174598f06d9593db53316a5b51", + "timestamp": "2024-03-24T21:14:53Z" + }, + { + "version": "2024.324.1956.40", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1956.40/themerr-jellyfin.zip", + "checksum": "2053ba6adb29c23935b1a68de09bc4eb", + "timestamp": "2024-03-24T19:57:44Z" + }, + { + "version": "2024.324.1949.50", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1949.50/themerr-jellyfin.zip", + "checksum": "f04b51a12b591b5a1ce60a4a498aece7", + "timestamp": "2024-03-24T19:50:55Z" + }, + { + "version": "2024.324.1933.37", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1933.37/themerr-jellyfin.zip", + "checksum": "81777235766ae4ab931fef585f18d8db", + "timestamp": "2024-03-24T19:34:39Z" + }, + { + "version": "2024.324.1924.50", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1924.50/themerr-jellyfin.zip", + "checksum": "a871893d1041c8ec60632f9c917c8b86", + "timestamp": "2024-03-24T19:25:49Z" + }, + { + "version": "2024.324.1904.42", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1904.42/themerr-jellyfin.zip", + "checksum": "87e9b775c23e6e84c0af731fb56566c1", + "timestamp": "2024-03-24T19:05:39Z" + }, + { + "version": "2024.324.1744.11", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1744.11/themerr-jellyfin.zip", + "checksum": "6621db4a7bd1f26bc1d360b8d026749f", + "timestamp": "2024-03-24T17:45:06Z" + }, + { + "version": "2024.324.1720.15", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1720.15/themerr-jellyfin.zip", + "checksum": "ef7957df49e2c0bb0543df09dd4c5ea1", + "timestamp": "2024-03-24T17:21:13Z" + }, + { + "version": "2024.324.1710.53", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.1710.53/themerr-jellyfin.zip", + "checksum": "372c78cb7ebb528167f11ac280e96017", + "timestamp": "2024-03-24T17:11:51Z" + }, + { + "version": "2024.324.233.40", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.324.233.40/themerr-jellyfin.zip", + "checksum": "2276f4c85539f990826b045addf0a7e8", + "timestamp": "2024-03-24T02:34:38Z" + }, + { + "version": "2024.323.2314.44", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.323.2314.44/themerr-jellyfin.zip", + "checksum": "d5a3896f93755eef1efc38780e00cb45", + "timestamp": "2024-03-23T23:16:13Z" + }, + { + "version": "2024.210.232.20", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.210.232.20/themerr-jellyfin.zip", + "checksum": "ab726f1939a016fb40ade8eb72c72b74", + "timestamp": "2024-02-10T02:33:27Z" + }, + { + "version": "2024.201.1515.56", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.201.1515.56/themerr-jellyfin.zip", + "checksum": "357eb95e01663c202f1ce0db4d1496b5", + "timestamp": "2024-02-01T15:17:13Z" + }, + { + "version": "2024.201.1507.40", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.201.1507.40/themerr-jellyfin.zip", + "checksum": "60952b73b8fdf30097715143b8500644", + "timestamp": "2024-02-01T15:09:13Z" + }, + { + "version": "2024.201.1449.56", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.201.1449.56/themerr-jellyfin.zip", + "checksum": "18a5dadcb02f06a45840c81a65f2985a", + "timestamp": "2024-02-01T15:06:06Z" + }, + { + "version": "2024.113.1544.53", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.113.1544.53/themerr-jellyfin.zip", + "checksum": "aace32dbe6b86ecf41d86b27dda52165", + "timestamp": "2024-01-13T15:46:11Z" + }, + { + "version": "2024.113.351.4", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.113.351.4/themerr-jellyfin.zip", + "checksum": "33e352c5a0192c724ff9b5d61ae890e9", + "timestamp": "2024-01-13T03:52:28Z" + }, + { + "version": "2024.113.341.39", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.113.341.39/themerr-jellyfin.zip", + "checksum": "1ada7d44122d56aa24abd2a14accc9e2", + "timestamp": "2024-01-13T03:43:04Z" + }, + { + "version": "2024.113.327.29", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.113.327.29/themerr-jellyfin.zip", + "checksum": "5bf15d87e98fb816bd86c827beae1d71", + "timestamp": "2024-01-13T03:28:48Z" + }, + { + "version": "2024.112.1746.25", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.112.1746.25/themerr-jellyfin.zip", + "checksum": "d5642486e5ec93090946cfeaade6eca8", + "timestamp": "2024-01-12T17:47:59Z" + }, + { + "version": "2024.112.249.37", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2024.112.249.37/themerr-jellyfin.zip", + "checksum": "77bd1cd16c7eda686329f7995f08350b", + "timestamp": "2024-01-12T02:50:55Z" + }, + { + "version": "2023.1226.2254.10", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1226.2254.10/themerr-jellyfin.zip", + "checksum": "562f22059f196dc0fae2d7de83dfd667", + "timestamp": "2023-12-26T22:55:22Z" + }, + { + "version": "2023.1226.2220.18", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1226.2220.18/themerr-jellyfin.zip", + "checksum": "5aa7562b2333b62db6c4e822c9fd7208", + "timestamp": "2023-12-26T22:21:29Z" + }, + { + "version": "2023.1226.2207.46", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1226.2207.46/themerr-jellyfin.zip", + "checksum": "653d3cced65ad7967e9a1f91baa1389a", + "timestamp": "2023-12-26T22:09:03Z" + }, + { + "version": "2023.1226.2114.6", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1226.2114.6/themerr-jellyfin.zip", + "checksum": "12c3f809c33f59fa8ee1084e66f0f3c1", + "timestamp": "2023-12-26T21:15:19Z" + }, + { + "version": "2023.1222.58.35", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1222.58.35/themerr-jellyfin.zip", + "checksum": "d00f7c42ade44eae468cebf3db104ac5", + "timestamp": "2023-12-22T00:59:55Z" + }, + { + "version": "2023.1221.2316.50", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1221.2316.50/themerr-jellyfin.zip", + "checksum": "aacba2db3465b8c38e74b363b261ad22", + "timestamp": "2023-12-21T23:17:55Z" + }, + { + "version": "2023.1221.2211.0", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1221.2211.0/themerr-jellyfin.zip", + "checksum": "bf1c2c1f23be6389885c6b12a3ae2d4a", + "timestamp": "2023-12-21T22:14:02Z" + }, + { + "version": "2023.1221.347.52", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1221.347.52/themerr-jellyfin.zip", + "checksum": "a39eb7a05052837aa476d4491e4800e6", + "timestamp": "2023-12-21T03:48:56Z" + }, + { + "version": "2023.1220.2206.28", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1220.2206.28/themerr-jellyfin.zip", + "checksum": "0365a24ee21a8a2df3cbd55e644d3471", + "timestamp": "2023-12-20T22:07:48Z" + }, + { + "version": "2023.1220.18.5", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1220.18.5/themerr-jellyfin.zip", + "checksum": "3455f10a1a483e787cae77eb16362756", + "timestamp": "2023-12-20T00:21:07Z" + }, + { + "version": "2023.1219.1658.23", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1219.1658.23/themerr-jellyfin.zip", + "checksum": "87a9bf415f018fd566ab8b6bbbaec607", + "timestamp": "2023-12-19T17:00:11Z" + }, + { + "version": "2023.1219.355.10", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1219.355.10/themerr-jellyfin.zip", + "checksum": "f0f7a7519265043a7a112d4b9d6547b1", + "timestamp": "2023-12-19T03:56:41Z" + }, + { + "version": "2023.1217.1356.39", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1217.1356.39/themerr-jellyfin.zip", + "checksum": "22cb22bf2d89cb16b0562f792c02a7be", + "timestamp": "2023-12-17T13:57:50Z" + }, + { + "version": "2023.1216.556.16", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1216.556.16/themerr-jellyfin.zip", + "checksum": "350d208cafcf387bf1b01622059aa61a", + "timestamp": "2023-12-16T05:57:35Z" + }, + { + "version": "2023.1215.2259.6", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1215.2259.6/themerr-jellyfin.zip", + "checksum": "81340accae45f2ba31742e5fcf325a9a", + "timestamp": "2023-12-15T23:34:28Z" + }, + { + "version": "2023.1215.317.17", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1215.317.17/themerr-jellyfin.zip", + "checksum": "66984acd8b1b3875102a1a7c23078c92", + "timestamp": "2023-12-15T03:18:36Z" + }, + { + "version": "2023.1215.251.32", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1215.251.32/themerr-jellyfin.zip", + "checksum": "c28159d66d1c9c736825208bc8d2846d", + "timestamp": "2023-12-15T02:52:39Z" + }, + { + "version": "2023.1215.241.3", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1215.241.3/themerr-jellyfin.zip", + "checksum": "60cfa83e4d5512bd11c89a9e2d5a1123", + "timestamp": "2023-12-15T02:43:56Z" + }, + { + "version": "2023.1215.221.13", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1215.221.13/themerr-jellyfin.zip", + "checksum": "6f2604e7f881a165c5f8cbc71042c480", + "timestamp": "2023-12-15T02:23:02Z" + }, + { + "version": "2023.1214.436.9", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1214.436.9/themerr-jellyfin.zip", + "checksum": "4de037af126746757be49828cf959bad", + "timestamp": "2023-12-14T04:37:42Z" + }, + { + "version": "2023.1212.418.27", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1212.418.27/themerr-jellyfin.zip", + "checksum": "ee130b648bcb7c74fae9fec70c9ec4cc", + "timestamp": "2023-12-12T04:19:50Z" + }, + { + "version": "2023.1211.1611.20", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.1611.20/themerr-jellyfin.zip", + "checksum": "ef2fdca5f7bd88493e93a58029d8418a", + "timestamp": "2023-12-11T16:30:54Z" + }, + { + "version": "2023.1211.245.52", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.245.52/themerr-jellyfin.zip", + "checksum": "b7f2637db3a4694955ed4bbcd4c9c19b", + "timestamp": "2023-12-11T02:47:11Z" + }, + { + "version": "2023.1211.237.12", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.237.12/themerr-jellyfin.zip", + "checksum": "e8b1a241737eb39eff36ebc0fc906c44", + "timestamp": "2023-12-11T02:38:26Z" + }, + { + "version": "2023.1211.225.23", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.225.23/themerr-jellyfin.zip", + "checksum": "0bf48136fc530c98563469a960e4c19e", + "timestamp": "2023-12-11T02:30:44Z" + }, + { + "version": "2023.1211.214.5", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.214.5/themerr-jellyfin.zip", + "checksum": "b1d522b82d1ff61011d6ab5eb608c8e5", + "timestamp": "2023-12-11T02:28:41Z" + }, + { + "version": "2023.1211.149.9", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.149.9/themerr-jellyfin.zip", + "checksum": "5545765d4ecdef53a4bb10a691a610ed", + "timestamp": "2023-12-11T01:50:10Z" + }, + { + "version": "2023.1211.105.6", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.105.6/themerr-jellyfin.zip", + "checksum": "525009c41a0e4ef93f7ff5a200aae942", + "timestamp": "2023-12-11T01:06:15Z" + }, + { + "version": "2023.1211.31.24", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1211.31.24/themerr-jellyfin.zip", + "checksum": "99c8fcdac073a054cb192afc45508702", + "timestamp": "2023-12-11T00:32:36Z" + }, + { + "version": "2023.1210.1448.35", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1210.1448.35/themerr-jellyfin.zip", + "checksum": "db79880e1f6677c04c781c61fc1f82f9", + "timestamp": "2023-12-10T14:54:13Z" + }, + { + "version": "2023.1210.504.40", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1210.504.40/themerr-jellyfin.zip", + "checksum": "dbb35091db3cfdf05c7634133eb2a3bd", + "timestamp": "2023-12-10T05:11:52Z" + }, + { + "version": "2023.1210.439.17", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1210.439.17/themerr-jellyfin.zip", + "checksum": "cc1f884e88631547f0b085a9558ef616", + "timestamp": "2023-12-10T04:48:47Z" + }, + { + "version": "2023.1207.247.13", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v2023.1207.247.13/themerr-jellyfin.zip", + "checksum": "681123ff1d0cfb3230e935aad8516bcf", + "timestamp": "2023-12-07T02:49:10Z" + }, + { + "version": "0.0.2.0", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v0.0.2/themerr-jellyfin.zip", + "checksum": "49230bec10db39e175c3771566f5a623", + "timestamp": "2023-12-07T02:33:16Z" + }, + { + "version": "0.0.1.0", + "changelog": "see LizardByte/Themerr-jellyfin on GitHub", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/LizardByte/Themerr-jellyfin/releases/download/v0.0.1/themerr-jellyfin.zip", + "checksum": "d8956c51cd8d13cdda03cbeda0f41fac", + "timestamp": "2023-02-04T15:21:57Z" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/Official.json b/plugin_manifests/2025.03.30/Official.json new file mode 100644 index 0000000..7eee2d5 --- /dev/null +++ b/plugin_manifests/2025.03.30/Official.json @@ -0,0 +1,2113 @@ +[ + { + "guid": "9c4e63f1-031b-4f25-988b-4f7d78a8b53e", + "name": "Bookshelf", + "description": "Supports several different metadata providers and options for organizing your collection.\n", + "overview": "Manage your books", + "owner": "jellyfin", + "category": "Metadata", + "versions": [ + { + "version": "12.0.0.0", + "changelog": "- Fix nullability for 10.10 (#116) @crobibero\n- Update opf and add ISBN (#108) @AshleyDeo\n- Add Comic Vine Person provider (#85) @Pithaya\n\n### New features and improvements ###\n- Add support for covers from .cbt, .cb7 and .cbr (#112) @oddstr13\n\n### Dependency updates ###\n- Update dependency Microsoft.NET.Test.Sdk to 17.11.1 (#106) @renovate\n- Update xunit-dotnet monorepo (#84) @renovate\n- Update dependency Microsoft.Extensions.Http to 8.0.1 - autoclosed (#115) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/bookshelf/bookshelf_12.0.0.0.zip", + "checksum": "973b5e8fda39304a04bbe53011c0aedd", + "timestamp": "2024-10-26T17:57:49Z" + }, + { + "version": "11.0.0.0", + "changelog": "- Unstable (#103) @crobibero\n- Improve cover image extraction from epub files (#102) @unfedorg\n\n### Dependency updates ###\n- Update dependency coverlet.collector to v6.0.2 (#101) @renovate\n- Update dependency coverlet.collector to v6.0.1 (#98) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/bookshelf/bookshelf_11.0.0.0.zip", + "checksum": "923b0929a850b65d34615ea67c020630", + "timestamp": "2024-05-11T19:23:08Z" + }, + { + "version": "10.0.0.0", + "changelog": "- Add Unit tests for ComicInfo and ComicBookInfo formats (#70) @carif\n\n### New features and improvements ###\n- Add Comic Vine metadata provider (#81) @Pithaya\n- Add Google Books external id (#80) @Pithaya\n- Add unit tests for the Google Books providers (#78) @Pithaya\n- Improve title handling of epub files (#75) @carif\n\n### Bug Fixes ###\n- Update EpubMetadataImageProvider.cs (#66) @wuyu8512\n\n### Documentation updates ###\n- Fix typo and improve README formatting (#74) @carif\n\n### Dependency updates ###\n- Update xunit-dotnet monorepo to v2.5.3 (#82) @renovate", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_10.0.0.0.zip", + "checksum": "769e4e19f4dde09a882797427dafe5f8", + "timestamp": "2024-01-18T00:55:20Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Add development setup for Visual Studio Code (#64) @MinecraftPlaye\n- Use JsonSerializer.Deserialize overload that accepts a string (#65) @Bond-009\n\n### Dependency updates ###\n- chore(deps): update dependency sharpcompress to v0.32.2 (#62) @renovate\n- chore(deps): update dependency sharpcompress to v0.32.0 (#61) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#58) @h1dden-da3m0n", + "targetAbi": "10.8.3.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_9.0.0.0.zip", + "checksum": "f505fcc1a9cee9d173cc5d9893c9e08a", + "timestamp": "2022-08-07T12:43:43Z" + }, + { + "version": "8.0.0.0", + "changelog": "- chore(deps): bump release-drafter/release-drafter from 5.15.0 to 5.17.5 (#46) @dependabot\n- chore(deps): bump sharpcompress from 0.30.0 to 0.30.1 (#43) @dependabot\n- Add analyzers to project (#28) @crobibero\n\n### New features and improvements ###\n- Read date and language information from opf (#47) @MinecraftPlaye\n- Add ComicBookInfo metadata provider (#38) @MinecraftPlaye\n\n### Bug Fixes ###\n- Use proper NormalziationForm (#44) @crobibero\n\n### Code or Repo Maintenance ###\n- Update supported metadata providers and file types (#55) @MinecraftPlaye\n- Use meta ci (#54) @crobibero\n- Refactor opf metadata reader for readability (#45) @MinecraftPlaye\n- Update ruleset and fix build (#42) @crobibero\n\n### Documentation updates ###\n- Update supported metadata providers and file types (#55) @MinecraftPlaye\n\n### CI & build changes ###\n- Use meta ci (#54) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_8.0.0.0.zip", + "checksum": "01d46c5beb845257feee76f856079e60", + "timestamp": "2022-03-28T00:01:28Z" + }, + { + "version": "7.0.0.0", + "changelog": "- 10.8 support (#33) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_7.0.0.0.zip", + "checksum": "4f9577d2e8741b292e179e1e7c43cd31", + "timestamp": "2022-01-08T17:22:13Z" + }, + { + "version": "6.0.0.0", + "changelog": "### New features and improvements ### - Expand ComicInfo support and add support for comic covers (#34) @MinecraftPlaye - Use System.Text.Json (#29) @daullmer ### Dependency updates ### - chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#32) @dependabot ### CI & build changes ### - chore(ci): builds, releas drafter and more (#31) @h1dden-da3m0n\n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_6.0.0.0.zip", + "checksum": "0158783c8fba5044791263fba762907a", + "timestamp": "2021-10-31T02:05:24Z" + }, + { + "version": "5.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_5.0.0.0.zip", + "checksum": "2063fb8ab317b8d77b200fde41eb5e1e", + "timestamp": "2020-12-05T22:03:13Z" + }, + { + "version": "4.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/bookshelf/bookshelf_4.0.0.0.zip", + "checksum": "fc9f76c0815d766491e5b0f30ede55ed", + "timestamp": "2020-07-20T01:30:33Z" + } + ] + }, + { + "guid": "170a157f-ac6c-437a-abdd-ca9c25cebd39", + "name": "Fanart", + "description": "Scrape poster images for movies, shows, and artists in your library.", + "overview": "Scrape poster images from Fanart", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-fanart.png", + "versions": [ + { + "version": "12.0.0.0", + "changelog": "- Use latest API 3.2 (#49) @enter-a-random-username", + "targetAbi": "10.9.10.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/fanart/fanart_12.0.0.0.zip", + "checksum": "d12b79bf9c4d8d06c9d84747699373ab", + "timestamp": "2024-09-02T17:23:26Z" + }, + { + "version": "11.0.0.0", + "changelog": "- 10.9 (#47) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/fanart/fanart_11.0.0.0.zip", + "checksum": "2d38d1b5e02ab36876136ae8f61d99f5", + "timestamp": "2024-05-11T19:35:38Z" + }, + { + "version": "10.0.0.0", + "changelog": "- chore(deps): update dependency microsoft.extensions.http to v6 (#41) @renovate\n\n### Bug Fixes ###\n- fix tv series no data (#38) @kdays\n\n### CI & build changes ###\n- fix: meta ci workflows (#39) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_10.0.0.0.zip", + "checksum": "2c4c47db79ff8189f5798e1fd563eb52", + "timestamp": "2022-06-12T13:52:36Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Bug Fixes ###\n- Extract DTOs and fix album parsing (#37) @Shadowghost\n\n### Code or Repo Maintenance ###\n- Use meta ci (#35) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#35) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_9.0.0.0.zip", + "checksum": "6bdf8ed85c46172e500dd6e43b2b3d1c", + "timestamp": "2022-04-26T13:33:43Z" + }, + { + "version": "8.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#30) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_8.0.0.0.zip", + "checksum": "285e6097dc350d9655eb1fefa844094b", + "timestamp": "2022-01-08T17:22:44Z" + }, + { + "version": "7.0.0.0", + "changelog": "- Remove jQuery and update to es6 (#26) @grafixeyehero\n- chore(ci): builds, releas drafter and more (#22) @h1dden-da3m0n\n- Use System.Text.Json (#21) @Ullmie02\n\n### New features and improvements ###\n- chore: plugin images (#25) @h1dden-da3m0n\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#23) @dependabot\n\n### CI & build changes ###\n- Update ci (#27) @h1dden-da3m0n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_7.0.0.0.zip", + "checksum": "9c778b54acc3a5f0f0cccb020b63e02b", + "timestamp": "2021-09-03T18:30:22Z" + }, + { + "version": "6.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_6.0.0.0.zip", + "checksum": "ee4360bfcc8722d5a3a54cfe7eef640f", + "timestamp": "2020-12-05T22:25:43Z" + }, + { + "version": "5.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/fanart/fanart_5.0.0.0.zip", + "checksum": "f842f7d65d23f377761c907d40b89647", + "timestamp": "2020-07-20T01:30:48Z" + } + ] + }, + { + "guid": "e29621a5-fa9e-4330-982e-ef6e54c0cad2", + "name": "IMVDb", + "description": "Get Music Video metadata from IMVDb\n", + "overview": "Get Music Video metadata from IMVDb", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-imvdb.png", + "versions": [ + { + "version": "4.0.0.0", + "changelog": "- 10.9 (#21) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#20) @methbkts\n\n### Dependency updates ###\n- chore(deps): update dependency stylecop.analyzers to v1.2.0-beta.435 (#16) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#14) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/imvdb/imvdb_4.0.0.0.zip", + "checksum": "750393a6d618f6b7ac329fb3fb0753b4", + "timestamp": "2024-05-11T19:35:00Z" + }, + { + "version": "3.0.0.0", + "changelog": "- Use meta ci (#8) @crobibero\n\n### Code or Repo Maintenance ###\n- 10.8 support (#11) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/imvdb/imvdb_3.0.0.0.zip", + "checksum": "6848365c5e53f29854c12e7313220655", + "timestamp": "2022-03-28T00:02:33Z" + } + ] + }, + { + "guid": "771e19d6-5385-4caf-b35c-28a0e865cf63", + "name": "Kodi Sync Queue", + "description": "This plugin will track all media changes while Kodi clients are offline to decrease sync times.", + "overview": "Sync all media changes with Kodi clients", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-kodisyncqueue.png", + "versions": [ + { + "version": "14.0.0.0", + "changelog": "### Bug Fixes ###\n- Implement a database upgrade system, properly migrate ItemId to Guid (#107) @Insprill", + "targetAbi": "10.10.5.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kodi-sync-queue/kodi-sync-queue_14.0.0.0.zip", + "checksum": "7c2c37048cb92593e4395456c72067cc", + "timestamp": "2025-02-05T20:18:00Z" + }, + { + "version": "13.0.0.0", + "changelog": "- Properly add 10.10 support (#100) @crobibero", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kodi-sync-queue/kodi-sync-queue_13.0.0.0.zip", + "checksum": "a9833ed3fd9e54d75c0aec8e2ba1814f", + "timestamp": "2024-10-29T23:40:33Z" + }, + { + "version": "12.0.0.0", + "changelog": "- 10.10 support (#97) @crobibero", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kodi-sync-queue/kodi-sync-queue_12.0.0.0.zip", + "checksum": "5f749b6e1c279294d06da8264eb2f6d2", + "timestamp": "2024-10-26T18:44:35Z" + }, + { + "version": "11.0.0.0", + "changelog": "- Downgrade LiteDB to 5.0.15 (#85) @oddstr13", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kodi-sync-queue/kodi-sync-queue_11.0.0.0.zip", + "checksum": "85e7c0ec3517841a302056b3f1210a29", + "timestamp": "2024-05-15T13:26:45Z" + }, + { + "version": "10.0.0.0", + "changelog": "- 10.9 (#82) @crobibero\n\n### New features and improvements ###\n- Implement IDisposable (#75) @crobibero\n\n### Documentation updates ###\n- Fix openapi generation issues (#81) @crobibero\n\n### Dependency updates ###\n- chore(deps): update dependency litedb to v5.0.19 (#78) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kodi-sync-queue/kodi-sync-queue_10.0.0.0.zip", + "checksum": "85feb6ea40568e59cfd6f2e6ec72082d", + "timestamp": "2024-05-11T19:43:58Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix the scheduled task section name (part of #71) @Shadowghost\n\n### Code or Repo Maintenance ###\n- Cleanup logging and naming (#71) @Shadowghost\n\n### Dependency updates ###\n- Upgrades LiteDB to v5 (part of #71) @Shadowghost\n\n### CI & build changes ###\n- fix: meta ci workflows (#68) @h1dden-da3m0n", + "targetAbi": "10.8.3.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kodi-sync-queue/kodi-sync-queue_9.0.0.0.zip", + "checksum": "02c26bfa57c7daa0b302bc83a4e11ddf", + "timestamp": "2022-08-07T12:57:13Z" + }, + { + "version": "8.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#66) @crobibero\n- Use meta ci (#62) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#62) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kodi-sync-queue/kodi-sync-queue_8.0.0.0.zip", + "checksum": "095ebbdcf0f36bf43bb91b7e89c7f610", + "timestamp": "2022-03-27T20:27:42Z" + }, + { + "version": "7.0.0.0", + "changelog": "### New features and improvements ###\n- chore: plugin images (#42) @h1dden-da3m0n\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#43) @dependabot\n\n### CI & build changes ###\n- Update ci (#47) @h1dden-da3m0n\n- Add pre-commit config (#41) @oddstr13\n- Add release drafter (#40) @oddstr13\n- Add workflows for code testing (#38) @oddstr13\n- Add analyzers and fix warnings (#37) @oddstr13\n\n### Code or Repo Maintenance ###\n- 10.8 support (#51) @crobibero\n- Split scripts and update to es6 (#46) @grafixeyehero\n- Use System.Text.Json (#34) @daullmer", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kodi-sync-queue/kodi-sync-queue_7.0.0.0.zip", + "checksum": "e452370cae79462762f69f2506e77fe1", + "timestamp": "2022-01-08T17:23:13Z" + }, + { + "version": "6.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kodi-sync-queue/kodi-sync-queue_6.0.0.0.zip", + "checksum": "787c856c0d2ad2224cdd8b3094cf0329", + "timestamp": "2020-12-05T22:10:37Z" + }, + { + "version": "5.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kodi-sync-queue/kodi-sync-queue_5.0.0.0.zip", + "checksum": "08285397aecd93ea64a4f15d38b1bd7b", + "timestamp": "2020-07-20T01:31:22Z" + } + ] + }, + { + "guid": "958aad66-3784-4d2a-b89a-a7b6fab6e25c", + "name": "LDAP Authentication", + "description": "Authenticate your Jellyfin users against an LDAP database, and optionally create users who do not yet exist automatically.\n\nAllows the administrator to customize most aspects of the LDAP authentication process, including customizable search attributes, username attribute, and a search filter for administrative users (set on user creation). The user, via the \"Manual Login\" process, can enter any valid attribute value, which will be mapped back to the specified username attribute automatically as well.\n", + "overview": "Authenticate users against an LDAP database", + "owner": "jellyfin", + "category": "Authentication", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-ldapauth.png", + "versions": [ + { + "version": "20.0.0.0", + "changelog": "- Added ProfileImageFormat support (#174) @CEbbinghaus\n- Removed jpegphoto attribute when photo sync isn't enabled (#168) @CEbbinghaus\n\n### New features and improvements ###\n- Implement Password Modify Extended Operation (#172) @Zeault", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/ldap-authentication/ldap-authentication_20.0.0.0.zip", + "checksum": "0d553624e7d83ba3e13ea2658212559f", + "timestamp": "2025-03-14T01:43:55Z" + }, + { + "version": "19.0.0.0", + "changelog": "- Updates for 10.9 (#158) @crobibero\n\n### New features and improvements ###\n- Add profile image synchronization (#154) @SanseroGames", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/ldap-authentication/ldap-authentication_19.0.0.0.zip", + "checksum": "d9adecb7fce769d0094f09792d7d7033", + "timestamp": "2024-05-11T19:29:34Z" + }, + { + "version": "18.0.0.0", + "changelog": "- Implement proper input sanitization to prevent LDAP injection attacks (#153) @tam1m\n\n### New features and improvements ###\n- Added (#147) @sdimovv\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#150) @methbkts\n\n### Documentation updates ###\n- Fix \"build\" shields badge (#152) @Radiicall", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_18.0.0.0.zip", + "checksum": "1f8ca7c9242d43002af18ff2a71cdcf5", + "timestamp": "2023-12-05T04:54:29Z" + }, + { + "version": "17.0.0.0", + "changelog": "### New features and improvements ###\n- Rework search flow to minimize LDAP search results (#140) @joshuaboniface\n- admin memberUid feature flag (#138) @cyberb\n- Expand certificate support for LDAP authentication (#135) @JoshuaHassler\n\n### Bug Fixes ###\n- Rework search flow to minimize LDAP search results (#140) @joshuaboniface", + "targetAbi": "10.8.9.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_17.0.0.0.zip", + "checksum": "0d5b00de3a796bc7bcc45015580afcc9", + "timestamp": "2023-03-02T18:38:22Z" + }, + { + "version": "16.0.0.0", + "changelog": "### New features and improvements ###\n- Feature: LDAP Password Change with Toggle (#115) @mstrhakr\n\n### Bug Fixes ###\n- Fix PasswordResetUrl value in config page script (#117) @robobenklein\n\n### CI & build changes ###\n- fix: meta ci workflows (#122) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_16.0.0.0.zip", + "checksum": "edc68cdfdc2052e1a1bf4fb7e698c973", + "timestamp": "2022-06-16T22:46:41Z" + }, + { + "version": "15.0.0.0", + "changelog": "### Major bug fixes ###\n- Fix searching for admin (#114) @crobibero\n\n### New features and improvements ###\n- OpenLDAP admin memberUid support (#113) @cyberb\n- Add ability to use LDAP as password reset provider (#106) @crobibero\n\n### Code or Repo Maintenance ###\n- Use meta ci (#110) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#110) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_15.0.0.0.zip", + "checksum": "9824889c766a8142c9ed13ded36ce456", + "timestamp": "2022-04-15T15:34:39Z" + }, + { + "version": "14.0.0.0", + "changelog": "### New features and improvements ###\n- Add User Settings Tests (#101) @1337joe\n- Add Settings Tests (#100) @1337joe\n- Changing the LDAP Admin filter can change existing LDAP authenticating users (#96) @jketreno\n- Add 'Enable All Folders' or selected folder list for LDAP user create (#90) @jketreno\n\n### Bug Fixes ###\n- Fix #92 - Re-registering of \"pageshow\" handler (#93) @jketreno", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_14.0.0.0.zip", + "checksum": "ee7baaf848be121f45b5177b65289cf7", + "timestamp": "2022-01-08T17:23:40Z" + }, + { + "version": "13.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#89) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_13.0.0.0.zip", + "checksum": "72cae2785f838f563b22d5d773866189", + "timestamp": "2021-11-01T20:59:09Z" + }, + { + "version": "12.0.0.0", + "changelog": "### Bug Fixes ###\n- Enable automatic referral following (#86) @gtbuchanan\n- fix admin lookup condition (#82) @Bobonium\n\n### CI & build changes ###\n- Update ci (#83) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- chore: plugin images (#79) @h1dden-da3m0n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_12.0.0.0.zip", + "checksum": "8a68b30bcf98eee76110c508d1cbefaf", + "timestamp": "2021-09-06T17:20:15Z" + }, + { + "version": "11.0.0.0", + "changelog": "Fix case-sensitive username check\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_11.0.0.0.zip", + "checksum": "4da8f87c4746cba13f8103dfb974ca70", + "timestamp": "2021-04-15T09:03:43Z" + }, + { + "version": "10.0.0.0", + "changelog": "Update for 10.7 support\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_10.0.0.0.zip", + "checksum": "62e7e1cd3ffae0944c14750a3c90df4f", + "timestamp": "2020-12-05T19:48:10Z" + }, + { + "version": "9.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_9.0.0.0.zip", + "checksum": "7f2f83587a65a43ebf168e4058421463", + "timestamp": "2020-07-22T15:42:57Z" + }, + { + "version": "8.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/ldap-authentication/ldap-authentication_8.0.0.0.zip", + "checksum": "8af8cee62717d63577f8b1e710839415", + "timestamp": "2020-07-20T01:31:30Z" + } + ] + }, + { + "guid": "9574ac10-bf23-49bc-949f-924f23cfa48f", + "name": "NextPVR", + "description": "Provides access to live TV, program guide, and recordings from NextPVR.\n", + "overview": "Live TV plugin for NextPVR", + "owner": "jellyfin", + "category": "LiveTV", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-nextpvr.png", + "versions": [ + { + "version": "11.0.0.0", + "changelog": "- Recording enhancements (#53) @emveepee", + "targetAbi": "10.9.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/nextpvr/nextpvr_11.0.0.0.zip", + "checksum": "01b5fd627eb01c546f2e324a38179709", + "timestamp": "2024-06-14T13:39:12Z" + }, + { + "version": "10.0.0.0", + "changelog": "- Allow dynamic recording URLs (#49) @emveepee", + "targetAbi": "10.9.2.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/nextpvr/nextpvr_10.0.0.0.zip", + "checksum": "df94a563505ca94fc656cb218289aa93", + "timestamp": "2024-05-25T15:34:38Z" + }, + { + "version": "9.0.0.0", + "changelog": "- Initial changes for 10.9.1 (#48) @emveepee\n\n### CI & build changes ###\n- fix: meta ci workflows (#41) @h1dden-da3m0n", + "targetAbi": "10.9.2.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/nextpvr/nextpvr_9.0.0.0.zip", + "checksum": "8be758d457b5fd4a1628659f3f38c321", + "timestamp": "2024-05-21T21:09:33Z" + }, + { + "version": "8.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- More changes for 10.8 beta (#39) @emveepee\n- Use meta ci (#36) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#36) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/nextpvr/nextpvr_8.0.0.0.zip", + "checksum": "85709b313b176172fd76054509a528fb", + "timestamp": "2022-04-07T21:31:11Z" + }, + { + "version": "7.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Changes for 10.8 alpha2 (#31) @emveepee\n- Use System.Text.Json (#17) @daullmer", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/nextpvr/nextpvr_7.0.0.0.zip", + "checksum": "eb204fc362b43bad171407832fed0459", + "timestamp": "2022-01-08T17:23:55Z" + }, + { + "version": "6.0.0.0", + "changelog": "### New features and improvements ###\n- chore: plugin images (#24) @h1dden-da3m0n\n- Increase sid security (#19) @emveepee\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#22) @dependabot\n\n### CI & build changes ###\n- Update ci (#26) @h1dden-da3m0n\n- chore(ci): builds, releas drafter and more (#21) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- remove jQuery and update to es6 (#25) @grafixeyehero", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/nextpvr/nextpvr_6.0.0.0.zip", + "checksum": "85b692a6d0c3cf897867cbae31dffcaa", + "timestamp": "2021-07-20T20:56:25Z" + }, + { + "version": "5.0.0.0", + "changelog": "Updated to use NextPVR API v5, no longer compatable with API v4.\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/nextpvr/nextpvr_5.0.0.0.zip", + "checksum": "d70f694d14bf9462ba2b2ebe110068d3", + "timestamp": "2020-12-05T22:24:03Z" + }, + { + "version": "4.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/nextpvr/nextpvr_4.0.0.0.zip", + "checksum": "b15949d895ac5a8c89496581db350478", + "timestamp": "2020-07-20T01:31:38Z" + } + ] + }, + { + "guid": "4b9ed42f-5185-48b5-9803-6ff2989014c4", + "name": "Open Subtitles", + "description": "Download subtitles from the internet to use with your media files. (Requires configuration)", + "overview": "Download subtitles for your media", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-opensubtitles.png", + "versions": [ + { + "version": "20.0.0.0", + "changelog": "- 10.9 (#145) @crobibero\n\n### Dependency updates ###\n- chore(deps): update xunit-dotnet monorepo (#117) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/open-subtitles/open-subtitles_20.0.0.0.zip", + "checksum": "75ec03097d286fd33630552725ef5bb5", + "timestamp": "2024-05-11T19:23:04Z" + }, + { + "version": "19.0.0.0", + "changelog": "### New features and improvements ###\n- Add automatic invalidation of credentials (#128) @MBR-0001\n- Add handling for .strm files (#124) @MBR-0001\n\n### Bug Fixes ###\n- Add automatic invalidation of credentials (#128) @MBR-0001\n\n### CI & build changes ###\n- fix: meta ci workflows (#106) @h1dden-da3m0n", + "targetAbi": "10.8.10.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_19.0.0.0.zip", + "checksum": "432c09f99efe166e07fe605da052096a", + "timestamp": "2023-07-02T17:31:26Z" + }, + { + "version": "18.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix pagination (#92) @MBR-0001\n\n### Tests ###\n- Minor improvements (#90) @Bond-009\n\n### Code or Repo Maintenance ###\n- Use meta ci (#101) @crobibero\n- chore(deps): bump Microsoft.NET.Test.Sdk from 16.11.0 to 17.0.0 (#91) @dependabot\n- Minor improvements (#90) @Bond-009\n- Replace %20 with + in SearchSubtitlesAsync (#89) @MBR-0001\n- Implement Bad Gateway handling & code cleanup (#87) @MBR-0001\n\n### Dependency updates ###\n- chore(deps): bump Microsoft.NET.Test.Sdk from 16.11.0 to 17.0.0 (#91) @dependabot\n\n### CI & build changes ###\n- Use meta ci (#101) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_18.0.0.0.zip", + "checksum": "9154f9a36248a2e8dead09e52291206a", + "timestamp": "2022-03-28T00:04:24Z" + }, + { + "version": "17.0.0.0", + "changelog": "### Bug Fixes ###\n- Move OpenSubtitlesHandler project to folder (#85) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_17.0.0.0.zip", + "checksum": "a4adafc1c813f720773ffe7cc4455645", + "timestamp": "2022-01-08T17:24:29Z" + }, + { + "version": "12.0.0.0", + "changelog": "### Bug Fixes ###\n- Fixes, language improvements, code cleanup & error logging (#67) @MBR-0001", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_12.0.0.0.zip", + "checksum": "3244dc49e494bfcf66b783660b7a5a17", + "timestamp": "2021-10-21T04:49:46Z" + }, + { + "version": "11.0.0.0", + "changelog": "### Major features and improvements ###\n- Switch to new API (#54) @MBR-0001\n\n### New features and improvements ###\n- chore: plugin images (#50) @h1dden-da3m0n\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#45) @dependabot\n\n### CI & build changes ###\n- Update ci (#55) @h1dden-da3m0n\n- chore(ci): builds, releas drafter and more (#42) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- Add analyzers, remove all warnings (#61) @crobibero\n- Remove jquery and update to es6 (#51) @grafixeyehero\n- Add analyzers (#44) @crobibero", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_11.0.0.0.zip", + "checksum": "30b5ae5d6e0deab03364d1d861cdd911", + "timestamp": "2021-08-28T18:42:32Z" + }, + { + "version": "10.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_10.0.0.0.zip", + "checksum": "ed99d03ec463bf15fca1256a113f57b4", + "timestamp": "2020-12-05T21:56:19Z" + }, + { + "version": "9.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/open-subtitles/open-subtitles_9.0.0.0.zip", + "checksum": "16789b26497cea0509daf6b18c579340", + "timestamp": "2020-07-20T01:32:00Z" + } + ] + }, + { + "guid": "5c534381-91a3-43cb-907a-35aa02eb9d2c", + "name": "Playback Reporting", + "description": "Collect and show user play statistics", + "overview": "Collect and show user play statistics", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-playbackreporting.png", + "versions": [ + { + "version": "15.0.0.0", + "changelog": "- Added horizontal scrolling to all report pages (#85) @meister-eder\n\n### Bug Fixes ###\n- Use LastUpdated Time Instead of Current Time for missing Stop event (#87) @speatzle", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/playback-reporting/playback-reporting_15.0.0.0.zip", + "checksum": "7f37c9f0062537880fbe42dce7715bf4", + "timestamp": "2024-07-17T17:06:50Z" + }, + { + "version": "14.0.0.0", + "changelog": "- 10.9 (#82) @crobibero\n\n### New features and improvements ###\n- Order default query usefully & checkbox by default (#66) @michaelkrieger\n\n### Bug Fixes ###\n- Fix DirectoryBrowser (#76) @MBR-0001", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/playback-reporting/playback-reporting_14.0.0.0.zip", + "checksum": "44152a3b26154fa8a9bc9c94ee6574e6", + "timestamp": "2024-05-11T19:34:26Z" + }, + { + "version": "13.0.0.0", + "changelog": "### Bug Fixes ###\n- Added support for decimal timezones (#64) @theKAKAN\n- Keep all avatars the same dimension (#62) @sambartik\n\n### CI & build changes ###\n- fix: meta ci workflows (#60) @h1dden-da3m0n", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_13.0.0.0.zip", + "checksum": "9249ad025297bed2f7a1808f30cd34b2", + "timestamp": "2022-07-10T12:47:28Z" + }, + { + "version": "12.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#59) @crobibero\n- Use meta ci (#57) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#57) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_12.0.0.0.zip", + "checksum": "6282c85380c4ab75bded1a2f0850fba6", + "timestamp": "2022-03-27T20:34:12Z" + }, + { + "version": "11.0.0.0", + "changelog": "- chore(deps): bump SQLitePCL.pretty.netstandard from 2.1.0 to 2.2.0 (#40) @dependabot\n\n### New features and improvements ###\n- chore: plugin images (#41) @h1dden-da3m0n\n\n### CI & build changes ###\n- Update ci (#45) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- 10.8 (#49) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_11.0.0.0.zip", + "checksum": "d750a6b41799142370fa2f40c70fea9d", + "timestamp": "2022-01-08T17:24:44Z" + }, + { + "version": "10.0.0.0", + "changelog": "* Fix query to PlayActivity endpoint on User Playback Report (#35) @Stampede10343 * Feature/client timezone awareness (#37) @Stampede10343\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_10.0.0.0.zip", + "checksum": "b56ad6715336a363d4477eb40d668491", + "timestamp": "2021-04-12T14:12:57Z" + }, + { + "version": "9.0.0.0", + "changelog": "Add authentication to plugin endpoints\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_9.0.0.0.zip", + "checksum": "ca323b3dcb2cb86cc2e72a7a0f1eee22", + "timestamp": "2020-12-05T22:15:48Z" + }, + { + "version": "8.0.0.0", + "changelog": "Add authentication to plugin endpoints\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_8.0.0.0.zip", + "checksum": "58644c505586542ef0b8b65e2f704bd1", + "timestamp": "2020-11-18T03:01:51Z" + }, + { + "version": "7.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/playback-reporting/playback-reporting_7.0.0.0.zip", + "checksum": "6a361ef33bca97f9155856d02ff47380", + "timestamp": "2020-07-20T01:32:09Z" + } + ] + }, + { + "guid": "d4312cd9-5c90-4f38-82e8-51da566790e8", + "name": "Reports", + "description": "Generate reports of your media library", + "overview": "Generate reports of your media library", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-reports.png", + "versions": [ + { + "version": "17.0.0.0", + "changelog": "- put that thing in the correct place (#85) @crobibero\n\n### Bug Fixes ###\n- add reference to SixLabors.Fonts.dll (#84) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/reports/reports_17.0.0.0.zip", + "checksum": "dda70ae635dc8364f5154edae0c577af", + "timestamp": "2024-05-11T20:36:28Z" + }, + { + "version": "16.0.0.0", + "changelog": "- 10.9 (#82) @crobibero\n\n### New features and improvements ###\n- Add XLSX Excel As Export Option (#74) @mwildgoose\n\n### Dependency updates ###\n- chore(deps): update dependency closedxml to v0.97.0 (#76) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/reports/reports_16.0.0.0.zip", + "checksum": "8f97501398dca6b7f7e9fd5147d67850", + "timestamp": "2024-05-11T19:34:15Z" + }, + { + "version": "15.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix CSV Export Format (#73) @mwildgoose\n\n### Code or Repo Maintenance ###\n- Use meta ci (#66) @crobibero\n- Performance improvements (#59) @Bond-009\n- Style fixes, enable analysis and nullable (#57) @Bond-009\n\n### CI & build changes ###\n- fix: meta ci workflows (#68) @h1dden-da3m0n\n- Use meta ci (#66) @crobibero", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_15.0.0.0.zip", + "checksum": "4ebde0325f5157f5a7623c203236a6e6", + "timestamp": "2022-07-16T12:47:59Z" + }, + { + "version": "14.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Use BaseItemKind (#52) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_14.0.0.0.zip", + "checksum": "b7586cc3ef692576f425a303e9d398ee", + "timestamp": "2022-01-08T17:24:56Z" + }, + { + "version": "12.0.0.0", + "changelog": "Fix Jellyfin 10.7 compatibility\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_12.0.0.0.zip", + "checksum": "cb16b92a8e0dc19f92eb0f46b3a64936", + "timestamp": "2021-06-19T17:23:15Z" + }, + { + "version": "11.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_11.0.0.0.zip", + "checksum": "d71bc6a4c008e58ee70ad44c83bfd310", + "timestamp": "2020-12-05T22:00:46Z" + }, + { + "version": "10.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_10.0.0.0.zip", + "checksum": "3917e75839337475b42daf2ba0b5bd7b", + "timestamp": "2020-10-19T19:30:41Z" + }, + { + "version": "9.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/reports/reports_9.0.0.0.zip", + "checksum": "5b5ad8d885616a21e8d1e8eecf5ea979", + "timestamp": "2020-10-16T23:52:37Z" + } + ] + }, + { + "guid": "bc4aad2e-d3d0-4725-a5e2-fd07949e5b42", + "name": "TMDb Box Sets", + "description": "Automatically create movie box sets based on TMDb collections", + "overview": "Automatically create movie box sets based on TMDb collections", + "owner": "jellyfin", + "category": "Metadata", + "versions": [ + { + "version": "11.0.0.0", + "changelog": "- 10.9 (#79) @crobibero\n\n### Bug Fixes ###\n- Only add primary versions to collections (#69) @lordwelch\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#77) @methbkts\n\n### CI & build changes ###\n- fix: meta ci workflows (#70) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/tmdb-box-sets/tmdb-box-sets_11.0.0.0.zip", + "checksum": "fa6d4b4d90375535502987bd326bedc5", + "timestamp": "2024-05-11T19:34:33Z" + }, + { + "version": "10.0.0.0", + "changelog": "- chore(deps): bump release-drafter/release-drafter from 5.15.0 to 5.17.6 (#59) @dependabot\n\n### Code or Repo Maintenance ###\n- 10.8 support (#68) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#67) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tmdb-box-sets/tmdb-box-sets_10.0.0.0.zip", + "checksum": "0a4054c838d9c407e22fdc3f0bc7f698", + "timestamp": "2022-03-28T00:06:42Z" + }, + { + "version": "9.0.0.0", + "changelog": "- Use BaseItemKind (#56) @crobibero\n\n### Bug Fixes ###\n- Update TMDbBoxSetManager.cs (#49) @WWWesten", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tmdb-box-sets/tmdb-box-sets_9.0.0.0.zip", + "checksum": "402e47f4f1c13ad1aa52f8bae6f29fc0", + "timestamp": "2022-01-08T17:25:18Z" + }, + { + "version": "8.0.0.0", + "changelog": "- 10.8 support (#47) @crobibero\n- Fix #36: Save button has wrong text (#40) @danimart1991\n\n### New features and improvements ###\n- Strip Collection string multilanguage (#43) @danimart1991\n- Fix #38: NullReferenceException on Collection Name (#41) @danimart1991\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#39) @dependabot\n\n### CI & build changes ###\n- chore(ci): builds, releas drafter and more (#34) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tmdb-box-sets/tmdb-box-sets_8.0.0.0.zip", + "checksum": "a45b5384f3bb81a86f7b4fd4da18a644", + "timestamp": "2021-11-01T21:03:17Z" + }, + { + "version": "7.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tmdb-box-sets/tmdb-box-sets_7.0.0.0.zip", + "checksum": "1551792e6af4d36f2cead01153c73cf0", + "timestamp": "2020-12-05T22:07:21Z" + }, + { + "version": "6.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tmdb-box-sets/tmdb-box-sets_6.0.0.0.zip", + "checksum": "b92b68a922c5fcbb8f4d47b8601b01b6", + "timestamp": "2020-07-20T01:32:58Z" + } + ] + }, + { + "guid": "4fe3201e-d6ae-4f2e-8917-e12bda571281", + "name": "Trakt", + "description": "Record your watched media with Trakt.\n", + "overview": "Record your watched media with Trakt", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-trakt.png", + "versions": [ + { + "version": "26.0.0.0", + "changelog": "- 10.10 support (#238) @crobibero\n\n### Dependency updates ###\n- Update dependency Microsoft.Extensions.Http to v8 (#187) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/trakt/trakt_26.0.0.0.zip", + "checksum": "222b61706a4b56adde19e81c359b9342", + "timestamp": "2024-10-26T18:15:06Z" + }, + { + "version": "25.0.0.0", + "changelog": "- 10.9 (#233) @crobibero\n\n### Dependency updates ###\n- Update dependency StyleCop.Analyzers to v1.2.0-beta.556 (#214) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/trakt/trakt_25.0.0.0.zip", + "checksum": "7d48cd4ef9af7e4de5f7a8613a19cd38", + "timestamp": "2024-05-11T19:34:21Z" + }, + { + "version": "24.0.0.0", + "changelog": "### New features and improvements ###\n- Use history api for importing episodes from trakt (#205) @h3llrais3r\n\n### Bug Fixes ###\n- Fix duplicate watched entries (#224) @buthed010203\n- Fix pagination when no items are present (#215) @kade-robertson\n\n### Code or Repo Maintenance ###\n- Code cleanup (#225) @crobibero\n\n### Documentation updates ###\n- Typo - Update trakt.html (#206) @Awolize\n- small correction to trakt.html (#202) @veloute", + "targetAbi": "10.8.12.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_24.0.0.0.zip", + "checksum": "421565044bb0165e7f1ee4049a65c51e", + "timestamp": "2023-11-27T13:15:03Z" + }, + { + "version": "23.0.0.0", + "changelog": "### New features and improvements ###\n- Added config parameter Don't remove items from trakt (#196) @addamanth\n\n### Bug Fixes ###\n- Sync if not set locally (#201) @blackwind\n- Fix episode last played date syncing (#199) @Shadowghost", + "targetAbi": "10.8.9.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_23.0.0.0.zip", + "checksum": "ad39a1011f4ceaa94baa6cb93b4b0471", + "timestamp": "2023-02-10T23:21:39Z" + }, + { + "version": "22.0.0.0", + "changelog": "- Update README.md (#188) @methbkts\n\n### New features and improvements ###\n- Fix episode matching for sync from trakt task (#191) @h3llrais3r\n\n### Bug Fixes ###\n- Fix episode matching for sync from trakt task (#191) @h3llrais3r", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_22.0.0.0.zip", + "checksum": "063bdd794a775adfaa61dc9afe20e532", + "timestamp": "2022-12-28T16:26:21Z" + }, + { + "version": "21.0.0.0", + "changelog": "### New features and improvements ###\n- Do not hammer the API (#175) @Shadowghost\n\n### Bug Fixes ###\n- Do not hammer the API (#175) @Shadowghost\n- Prevent setting local item as unwatched on sync (#169) @Shadowghost\n\n### Code or Repo Maintenance ###\n- Add more info to debug logs (#171) @sambartik", + "targetAbi": "10.8.5.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_21.0.0.0.zip", + "checksum": "dec8c2b84fab06de7c4cb14e77d5cc27", + "timestamp": "2022-10-20T14:21:35Z" + }, + { + "version": "20.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix unauthorized users not being skipped (#154) @Shadowghost\n- Fix MediaType metadata (#154) @Shadowghost\n- Don't fail tasks if one user fails (#154) @Shadowghost\n### Features ###\n- Implement HDR metadata (#154) @Shadowghost\n - Implement metadata for episodes (#154) @Shadowghost\n- Switch to GUIDs (this requires reauthentication of all users) (#154) @Shadowghost", + "targetAbi": "10.8.4.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_20.0.0.0.zip", + "checksum": "7e3212b10f381a7d488f518f9e26a06f", + "timestamp": "2022-09-02T13:12:51Z" + }, + { + "version": "19.0.0.0", + "changelog": "### Bug Fixes ###\n- Properly handle 404 API responses (#144) @Shadowghost\n\n### Dependency updates ###\n- chore(deps): bump StyleCop.Analyzers from 1.2.0-beta.406 to 1.2.0-beta.435 (#139) @dependabot\n\n### CI & build changes ###\n- fix: meta ci workflows (#145) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_19.0.0.0.zip", + "checksum": "4286ad59d87aa66d220fb7ff98d49430", + "timestamp": "2022-05-28T17:17:20Z" + }, + { + "version": "18.0.0.0", + "changelog": "### Bug Fixes ###\n- Various Fixes (#136) @Shadowghost\n- Fix live watched state sync (#134) @Shadowghost\n- Fix metadata enums and mapping (#132) @Shadowghost", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_18.0.0.0.zip", + "checksum": "744dbee8d07aaf60113290d8fa894315", + "timestamp": "2022-05-04T20:52:15Z" + }, + { + "version": "17.0.0.0", + "changelog": "### Bug Fixes ###\n- Various Fixes (#136) @Shadowghost\n- Fix live watched state sync (#134) @Shadowghost\n- Fix metadata enums and mapping (#132) @Shadowghost", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_17.0.0.0.zip", + "checksum": "679c7e556a0cc897a464694248143acf", + "timestamp": "2022-05-04T19:13:04Z" + }, + { + "version": "16.0.0.0", + "changelog": "### New features and improvements ###\n- Implement handling of update events and progress sync, fix scheduled tasks (#120) @Shadowghost\n- Add pagination to scheduled tasks (#111) @crobibero\n- Implement deauth (#114) @Shadowghost\n- Sync Pause and Resume, enable analyzers (#112) @Shadowghost\n\n### Bug Fixes ###\n- Implement handling of update events and progress sync, fix scheduled tasks (#120) @Shadowghost\n- Send pause instead of stop on uncompleted playback to prevent scrobble (#117) @Shadowghost\n- Require success response before deserializing (#115) @crobibero\n\n### Code or Repo Maintenance ###\n- Switch to native episode number check and datetime string conversion (#124) @Shadowghost\n- Fix codeql warnings (#123) @crobibero\n- Use file-scoped namespace everywhere (#122) @crobibero\n- Migrate API to use enums, update properties (#118) @Shadowghost\n- Update .Net version in readme (#119) @sambartik", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_16.0.0.0.zip", + "checksum": "8c0a8bc57b23eee3299cf4018b6abb76", + "timestamp": "2022-04-24T19:31:08Z" + }, + { + "version": "15.0.0.0", + "changelog": "### Bug Fixes ###\n- Retry episode scrobble without IDs if episode was not found by trakt (#102) @SenorSmartyPants\n- Fix episodes with IDs (#100) @SenorSmartyPants\n\n### Code or Repo Maintenance ###\n- 10.8 support (#110) @crobibero\n- Use meta ci (#108) @crobibero\n\n### CI & build changes ###\n- Use meta ci (#108) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_15.0.0.0.zip", + "checksum": "3f92c4f7d5350a2aced3cfe273a75ec2", + "timestamp": "2022-03-27T20:44:42Z" + }, + { + "version": "14.0.0.0", + "changelog": "### New features and improvements ###\n- Handle TV show rewatches (#97) @dulli\n- Don't treat TVDB Id specially for episodes (#93) @SenorSmartyPants\n\n### Code or Repo Maintenance ###\n- Use BaseItemKind (#98) @crobibero\n- Remove all warnings in project (#96) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_14.0.0.0.zip", + "checksum": "82e41d5c0ecf59743627fac10d27a080", + "timestamp": "2022-01-08T17:25:30Z" + }, + { + "version": "13.0.0.0", + "changelog": "### CI & build changes ###\n- Update ci (#85) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- 10.8 support (#91) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_13.0.0.0.zip", + "checksum": "408b38f1335ee1f947890752004cb017", + "timestamp": "2021-11-01T21:03:41Z" + }, + { + "version": "12.0.0.0", + "changelog": "- remove jQuery and update to es6 (#78) @grafixeyehero\n- Use Trakt last watched date when importing (#63) @netpok\n- Use System.Text.Json (#61) @Ullmie02\n- chore: plugin images (#76) @h1dden-da3m0n\n- Fix save button label (#72) @Vagab0nd\n- Fix AUTHED_API_POST_LIMIT (#65) @dgalli1\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#68) @dependabot\n- chore(ci): builds, releas drafter and more (#66) @h1dden-da3m0n\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_12.0.0.0.zip", + "checksum": "f910593ca1ad68f1a90a08fa255281b7", + "timestamp": "2021-06-14T05:27:08Z" + }, + { + "version": "11.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_11.0.0.0.zip", + "checksum": "2257ccde1e39114644a27e0966a0bf2d", + "timestamp": "2020-12-05T19:56:12Z" + }, + { + "version": "10.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/trakt/trakt_10.0.0.0.zip", + "checksum": "ab67e6b59ea2e7860a6a3ff7b8452759", + "timestamp": "2020-07-20T01:33:06Z" + } + ] + }, + { + "guid": "3fd018e5-5e78-4e58-b280-a0c068febee0", + "name": "TVHeadend", + "description": "Manage TVHeadend from Jellyfin", + "overview": "Manage TVHeadend from Jellyfin", + "owner": "jellyfin", + "category": "LiveTV", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-tvheadend.png", + "versions": [ + { + "version": "12.0.0.0", + "changelog": "- Fixed TV Recording channel for 10.9 (#81) @lomion0815\n- Fix live stream not working with 10.9 (#80) @lomion0815\n- Update for 10.9 - Step 1 (#78) @lomion0815\n- Stop Async connection handler threads if remote host has closed the connection. (#74) @Charlese2", + "targetAbi": "10.9.2.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/tvheadend/tvheadend_12.0.0.0.zip", + "checksum": "6fd285450f7837d590e76707d95e7f76", + "timestamp": "2024-05-20T13:16:24Z" + }, + { + "version": "11.0.0.0", + "changelog": "### New features and improvements ###\n- Added Pre-Padding and Post-Padding to settings. (#57) @lomion0815\n\n### Bug Fixes ###\n- Fix DLNA streaming (#46) @jkellerer\n\n### Code or Repo Maintenance ###\n- Use meta ci (#55) @crobibero\n\n### CI & build changes ###\n- fix: meta ci workflows (#56) @h1dden-da3m0n\n- Use meta ci (#55) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_11.0.0.0.zip", + "checksum": "a8255ffbd1839faeaa477377887331c2", + "timestamp": "2022-06-14T11:11:54Z" + }, + { + "version": "10.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#42) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_10.0.0.0.zip", + "checksum": "2e11b1af9c3c92b4bc70f537cda8f0a5", + "timestamp": "2022-01-08T17:25:55Z" + }, + { + "version": "9.0.0.0", + "changelog": "### New features and improvements ###\n- chore: plugin images (#37) @h1dden-da3m0n\n\n### CI & build changes ###\n- Update ci (#39) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- reduce log spam and clean up log messages (#41) @Shadowghost\n- Remove jquery (#38) @grafixeyehero", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_9.0.0.0.zip", + "checksum": "a5bd2c65ae2b2b3398ae2bbfd5d92b47", + "timestamp": "2021-09-03T11:05:07Z" + }, + { + "version": "8.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_8.0.0.0.zip", + "checksum": "64be4d0b4118e0a59a290c187338b4f0", + "timestamp": "2021-04-15T08:56:26Z" + }, + { + "version": "7.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_7.0.0.0.zip", + "checksum": "1abbfce737b6962f4b1b2255dc63e932", + "timestamp": "2021-01-05T16:20:33Z" + }, + { + "version": "6.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvheadend/tvheadend_6.0.0.0.zip", + "checksum": "143c34fd70d7173b8912cc03ce4b517d", + "timestamp": "2020-07-20T01:33:15Z" + } + ] + }, + { + "guid": "8119f3c6-cfc2-4d9c-a0ba-028f1d93e526", + "name": "Cover Art Archive", + "description": "This plugin provides images from the Cover Art Archive https://musicbrainz.org/doc/Cover_Art_Archive and depends on the MusicBrainz metadata provider to know what images belong where\n", + "overview": "MusicBrainz Cover Art Archive", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-coverartarchive.png", + "versions": [ + { + "version": "8.0.0.0", + "changelog": "- 10.9 (#35) @crobibero\n\n### Bug Fixes ###\n- Check if the Types is flagged as 'Front' (#33) @GaaH\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#34) @methbkts\n- Use meta ci (#27) @crobibero\n\n### Dependency updates ###\n- chore(deps): update dependency metabrainz.common.json to v5.1.0 (#30) @renovate\n\n### CI & build changes ###\n- fix: ci bumps (#29) @h1dden-da3m0n\n- Use meta ci (#27) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/cover-art-archive/cover-art-archive_8.0.0.0.zip", + "checksum": "306eca2d767c1995bcc2d724039dca04", + "timestamp": "2024-05-11T19:36:57Z" + }, + { + "version": "7.0.0.0", + "changelog": "### Bug Fixes ###\n- fix client string (#19) @Shadowghost\n\n### Code or Repo Maintenance ###\n- Fix readme (#20) @Shadowghost", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_7.0.0.0.zip", + "checksum": "005e308e111b3b3b068e67c9ec6c6e1e", + "timestamp": "2022-01-08T17:22:30Z" + }, + { + "version": "6.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix contact uri (#17) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_6.0.0.0.zip", + "checksum": "b4d5687142ae4210d43262ae6d9d92c7", + "timestamp": "2022-01-08T11:43:13Z" + }, + { + "version": "5.0.0.0", + "changelog": "### Major features and improvements ###\n- Remove configuration page and migrate to MetaBrainz.MusicBrainz.CoverArt (#12) @MrTimscampi\n\n### Dependency updates ###\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#14) @dependabot", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_5.0.0.0.zip", + "checksum": "ccc0878e5fc9b03cd1d828f74fe91ead", + "timestamp": "2022-01-07T21:16:19Z" + }, + { + "version": "4.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#13) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_4.0.0.0.zip", + "checksum": "4dccac26c6470cebc25cb8d6e4201b4d", + "timestamp": "2021-11-01T20:57:28Z" + }, + { + "version": "3.0.0.0", + "changelog": "### New features and improvements ###\n- chore: plugin images (#5) @h1dden-da3m0n\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#4) @dependabot\n\n### CI & build changes ###\n- Update ci (#9) @h1dden-da3m0n\n- Create release prep PR on release draft update (#7) @oddstr13\n- Add analyzers and remove all warnings (#3) @crobibero\n- Let there be CI (#2) @oddstr13", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_3.0.0.0.zip", + "checksum": "ca0ae1e2575cae9cb8d9f0164b8ab92c", + "timestamp": "2021-07-28T20:36:41Z" + }, + { + "version": "2.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_2.0.0.0.zip", + "checksum": "bea8fa4a37b3e7ed74e22266e7597a68", + "timestamp": "2020-12-06T02:51:03Z" + }, + { + "version": "1.0.0.3", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/cover-art-archive/cover-art-archive_1.0.0.3.zip", + "checksum": "c502a5c54b168810614c1c40709b9598", + "timestamp": "2020-08-06T21:21:22Z" + } + ] + }, + { + "guid": "a677c0da-fac5-4cde-941a-7134223f14c8", + "name": "TheTVDB", + "description": "Get TV metadata from TheTvdb\n", + "overview": "Get TV metadata from TheTvdb", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-tvdb.png", + "versions": [ + { + "version": "19.0.0.0", + "changelog": "- Improved null handling for tvdb provider (#207) @systemcrash\n\n### New features and improvements ###\n- Added missing season type 'alttwo' (#200) @Kianda\n\n### Bug Fixes ###\n- Handle empty ParentIndexNumber (#209) @Shadowghost", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_19.0.0.0.zip", + "checksum": "81cf892de2c6803f7e90da407b694492", + "timestamp": "2025-02-25T03:41:03Z" + }, + { + "version": "18.0.0.0", + "changelog": "### Bug Fixes ###\n- Increase robustness of retrieving tmdb id (again) (#194) @scampower3\n- Fix orphaned episodes deletion (#195) @scampower3\n- Queue refresh after adding child (#196) @scampower3", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_18.0.0.0.zip", + "checksum": "8c809397e621a1d0622f6c2f3594ed7f", + "timestamp": "2024-11-03T15:14:50Z" + }, + { + "version": "17.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix update task (#193) @scampower3\n- Moves includeOriginalCountryInTags to the correct setting group. (#191) @scampower3", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_17.0.0.0.zip", + "checksum": "53533ea6b2284ea5129f85e0dc902102", + "timestamp": "2024-10-30T14:37:53Z" + }, + { + "version": "16.0.0.0", + "changelog": "- Fix 10.10 nullability (#186) @crobibero\n\n### New features and improvements ###\n- Remove All Missing Episodes On Refresh (#176) @scampower3\n- Add original countries of series or movies as tags (#184) @scampower3\n- Move to IExternalUrlProvider (#179) @scampower3\n- Add people provider (#173) @scampower3\n\n### Bug Fixes ###\n- Only generate url when there is externalId for season (#190) @scampower3\n- Update Season provider to use SeriesDisplayOrder field (#180) @scampower3\n- Filter for Movie Ids in remote id search (#187) @scampower3\n- Fix IsMatch logic (#188) @scampower3\n- Update all items returned from GetItemList (#178) @scampower3\n\n### Code or Repo Maintenance ###\n- Use Named Tuple (#177) @scampower3\n- Remove MaxSearchResults (#174) @scampower3\n\n### Dependency updates ###\n- Update dependency Microsoft.Extensions.Http to 8.0.1 (#181) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_16.0.0.0.zip", + "checksum": "3d4b4139faaf54abb81605d95616706a", + "timestamp": "2024-10-29T23:40:31Z" + }, + { + "version": "15.0.0.0", + "changelog": "### Bug Fixes ###\n- Set ContentRatings list to be nullable (#171) @scampower3", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_15.0.0.0.zip", + "checksum": "88ab211743cb3137f7ce7d41f8d15a67", + "timestamp": "2024-08-05T15:05:15Z" + }, + { + "version": "14.0.0.0", + "changelog": "### Major features and improvements ###\n- Add Movie support (#164) @scampower3\n\n### New features and improvements ###\n- Add support for movie and season for check for metadata update task. Add additional configurations. (#169) @scampower3\n- Season support with extended season client (#165) @scampower3\n- Add Tvdb Collection Ids (#162) @scampower3\n\n### Bug Fixes ###\n- Fix movie remote id ProviderName (#167) @scampower3\n- Skip Characters with person name is null / Handle null RemoteIds (#160) @scampower3\n- Add season url (#161) @scampower3\n- Add option to fallback to original language (#156) @scampower3\n\n### Dependency updates ###\n- Update dependency Tvdb.Sdk to v4.7.10 (#158) @renovate", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_14.0.0.0.zip", + "checksum": "29985fb6c99b25dc177380eee5158c69", + "timestamp": "2024-08-05T13:22:09Z" + }, + { + "version": "13.0.0.0", + "changelog": "- Simplify Series Handling in Missing Episode Provider (#151) @scampower3\n- Use official instead of default (#149) @scampower3\n\n### Bug Fixes ###\n- Fix Specials being added during season refresh when IncludeMissingSpecials is disabled (#152) @scampower3\n- Set DeleteFileLocation = false (#153) @scampower3\n- Fix Language mapping for unique cases (#145) @scampower3\n- Get season id according to selected display order. (#147) @scampower3", + "targetAbi": "10.9.5.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_13.0.0.0.zip", + "checksum": "45cfe2c675736d5597c09bfd993f3788", + "timestamp": "2024-06-06T12:49:14Z" + }, + { + "version": "12.0.0.0", + "changelog": "### New features and improvements ###\n- Adds a option to include specials for missing episode provider (#144) @scampower3\n- Add support for regional, alternate, altdvd orders (#139) @scampower3\n- Add support for different display order for missing episode provider (#140) @scampower3\n- Add support for clearart and clearlogo for series images (#138) @scampower3\n- Add fallback languages (#136) @rlauuzo\n\n### Bug Fixes ###\n- Display order change fix, Cache collision fix, restrict airsbefore/after to aired display order (#143) @scampower3\n- Fix retrieval of episode num for virtual episode. (#142) @scampower3\n\n### Documentation updates ###\n- Bump .NET version in docs (#135) @scampower3\n\n### Dependency updates ###\n- Update dependency Microsoft.Extensions.Http to v8 (#81) @renovate", + "targetAbi": "10.9.2.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_12.0.0.0.zip", + "checksum": "1bcc5b7aa8c2a3ee9322b7e261a2ec28", + "timestamp": "2024-05-22T13:44:32Z" + }, + { + "version": "11.0.0.0", + "changelog": "- 10.9 (#134) @crobibero\n- Use ILocalizationManager instead of forming own country and iso6392 lists (#128) @scampower3\n- Don't retrieve tvdbId for episode if there is tvdbid already provided (#127) @scampower3\n- Prevent images with no language tag to have same priority as matched language (#126) @scampower3\n- Grab non alias name instead of first one that matches the language (#125) @scampower3\n- Fixes some cache key clashes and other improvements. (#123) @scampower3\n- Fixes some poorly named variables and label \"for\" tag fixes (#122) @scampower3\n- Remove required from the input for API key (#121) @scampower3\n- Add cache time configurations (#120) @scampower3\n- Add Caching for api calls (#118) @scampower3\n- Fix: Combine original titles for multi episode files (#117) @scampower3\n- Fixes issues retrieving episode metadata (#116) @scampower3\n- Improvements and fixes tvdb sdk 4.7.9.1 + PR #112 (#115) @BobSilent\n\n### Major features and improvements ###\n- Tvdb v4 migration (#93) @scampower3\n\n### New features and improvements ###\n- Feat: Add a polling task to check for update via the update api endpoint (#124) @scampower3\n\n### Bug Fixes ###\n- Update to Tvdb sdk 4.7.9.1 (#113) @scampower3\n- Fix duplicate entries Missing and not Missing (#106) @BobSilent\n- Fixes for tvdb v4 migration (#110) @BobSilent\n- Don't require user pin (#108) @crobibero\n\n### Code or Repo Maintenance ###\n- Make Tvdb Client usage more resilient and robust (#112) @BobSilent\n- Add the project's api key (#107) @crobibero\n- Update link to Jellyfin website (#103) @methbkts", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/thetvdb/thetvdb_11.0.0.0.zip", + "checksum": "42a42a1d50886556960e774083b75629", + "timestamp": "2024-05-11T19:29:00Z" + }, + { + "version": "10.0.0.0", + "changelog": "- Reduce log noise (#85) @IDisposable\n- Enriched Logging with series name (#84) @JPVenson\n\n### New features and improvements ###\n- Combine Title and Overview of combined episodes. (#86) @haydenstith", + "targetAbi": "10.8.10.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_10.0.0.0.zip", + "checksum": "e01c639fcbe9a5c3e76944819a8bb66d", + "timestamp": "2023-06-19T20:21:14Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix GetAllEpisodes breaking library scan on missing Episode Data (#83) @Hayajiro\n\n### Code or Repo Maintenance ###\n- Use meta ci (#67) @crobibero\n\n### CI & build changes ###\n- fix: meta ci workflows (#72) @h1dden-da3m0n\n- Use meta ci (#67) @crobibero", + "targetAbi": "10.8.8.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_9.0.0.0.zip", + "checksum": "0d2585a599b2a0deb0c614577bc3a175", + "timestamp": "2023-01-16T03:36:51Z" + }, + { + "version": "8.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Use BaseItemKind (#59) @crobibero\n- update ruleset (#55) @crobibero\n\n### Dependency updates ###\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#54) @dependabot", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_8.0.0.0.zip", + "checksum": "5b9ee28119c60dffeff67952d67ba67a", + "timestamp": "2022-01-08T17:25:42Z" + }, + { + "version": "7.0.0.0", + "changelog": "- 10.8 support (#52) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_7.0.0.0.zip", + "checksum": "7ae213ac5c4d86ee968a0b7c69755393", + "timestamp": "2021-11-01T21:04:06Z" + }, + { + "version": "6.0.0.0", + "changelog": "### Bug Fixes ###\n- Changed NormalizationForm to FormC (#45) @sushilicious\n\n### CI & build changes ###\n- Update ci (#42) @h1dden-da3m0n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_6.0.0.0.zip", + "checksum": "0d2bcfa13da7e10efa8874b445f92ba6", + "timestamp": "2021-08-07T21:24:50Z" + }, + { + "version": "5.0.0.0", + "changelog": "* fix catching exceptions\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_5.0.0.0.zip", + "checksum": "ad07e5890042799642e4056ebf5620c0", + "timestamp": "2021-05-14T12:01:21Z" + }, + { + "version": "4.0.0.0", + "changelog": "Fix getting metadata\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_4.0.0.0.zip", + "checksum": "97e82c193bf8c70c28158bdd4abb638d", + "timestamp": "2021-04-18T19:10:58Z" + }, + { + "version": "3.0.0.0", + "changelog": "Fix getting metadata", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_3.0.0.0.zip", + "checksum": "108bb40691f7b08ebd28f78afd7d196f", + "timestamp": "2021-03-11T05:41:03Z" + }, + { + "version": "2.0.0.0", + "changelog": "Remove from Jellyfin core.\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_2.0.0.0.zip", + "checksum": "e46cee334476a1b475e5c553171c4cb6", + "timestamp": "2020-12-16T20:03:28Z" + }, + { + "version": "1.0.0.0", + "changelog": "Remove from Jellyfin core.\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/thetvdb/thetvdb_1.0.0.0.zip", + "checksum": "5a3dca5c0db4824d83bfd4e7e2b7bf11", + "timestamp": "2020-12-06T02:56:40Z" + } + ] + }, + { + "guid": "a2b2a7ed-aa28-4521-a64a-63d86901f246", + "name": "AniDB", + "description": "AniDB metadata provider\n", + "overview": "AniDB metadata provider", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-anidb.png", + "versions": [ + { + "version": "10.0.0.0", + "changelog": "- Fallback on empty ParentIndexNumber (#75) @Shadowghost", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anidb/anidb_10.0.0.0.zip", + "checksum": "b334e0a1c3855d6918fd6f4c13d78ab7", + "timestamp": "2025-02-25T03:40:44Z" + }, + { + "version": "9.0.0.0", + "changelog": "- Map tag \"18 restricted\" to parental rating NC-17 (#48) @nalsai\n- Strip the year from the name for finding matches (#55) @nalsai\n- Add n-apostrophe replacement (#56) @nalsai\n- Add wo replacement (#57) @nalsai", + "targetAbi": "10.9.4.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anidb/anidb_9.0.0.0.zip", + "checksum": "d01c8da806aae5e0f65d96552e4063e4", + "timestamp": "2024-06-02T14:10:34Z" + }, + { + "version": "8.0.0.0", + "changelog": "- 10.9 (#64) @crobibero\n\n### New features and improvements ###\n- Make series.xml cache age user configurable (#44) @Scholars-Mate\n\n### Bug Fixes ###\n- Detect api errors and throw exception (#42) @nalsai\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#62) @methbkts", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anidb/anidb_8.0.0.0.zip", + "checksum": "bc9683dd6fbe76c60d2e984e39873918", + "timestamp": "2024-05-11T19:36:21Z" + }, + { + "version": "7.0.0.0", + "changelog": "### New features and improvements ###\n- Add AniDbExternalEpisodeId (#32) @Nalsai\n- Add support for \"Mahoutsukai\" and fix \"Gekijyouban\" (#31) @Nalsai\n\n### Bug Fixes ###\n- Fix automatically detecting Movies (#38) @Nalsai\n- Add support for \"Mahoutsukai\" and fix \"Gekijyouban\" (#31) @Nalsai\n\n### CI & build changes ###\n- fix: meta ci workflows (#35) @h1dden-da3m0n", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_7.0.0.0.zip", + "checksum": "91be4332cc5ab9705574379560a60600", + "timestamp": "2022-07-09T15:23:50Z" + }, + { + "version": "6.0.0.0", + "changelog": "- Fix episode metadata & improve series metadata (#29) @Nalsai\n\n### New features and improvements ###\n- Add original title metadata (#26) @Nalsai\n\n### Bug Fixes ###\n- Use proper normalization form (#19) @crobibero\n- Improve AniDB ID searching and matching (#27) @Nalsai\n\n### Code or Repo Maintenance ###\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#15) @dependabot\n- Improve AniDB ID searching and matching (#27) @Nalsai\n- Use meta ci (#30) @crobibero\n\n### Dependency updates ###\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#15) @dependabot\n\n### CI & build changes ###\n- Use meta ci (#30) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_6.0.0.0.zip", + "checksum": "921e7e417e97f60c6d275d0373add6a0", + "timestamp": "2022-03-28T00:00:21Z" + }, + { + "version": "5.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#13) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_5.0.0.0.zip", + "checksum": "8bcfbf425f9c2d4c6f38edb8c4f05377", + "timestamp": "2022-01-08T17:20:54Z" + }, + { + "version": "4.0.0.0", + "changelog": "### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#8) @dependabot\n\n### CI & build changes ###\n- Update ci (#10) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- chore: plugin images (#9) @h1dden-da3m0n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_4.0.0.0.zip", + "checksum": "e8957962ec6d3a3e811b1804c608b294", + "timestamp": "2021-09-07T21:31:08Z" + }, + { + "version": "3.0.0.0", + "changelog": "* Explicit decompress no longer needed (#4) @oddstr13 * Let there be CI (#3) @oddstr13\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_3.0.0.0.zip", + "checksum": "574104cf6f64989214dbc1680861fa71", + "timestamp": "2021-03-12T23:32:20Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Split out from the Anime plugin - Unpin patch version of DependencyInjection\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anidb/anidb_2.0.0.0.zip", + "checksum": "9b69500943308d01e0e2e97432343468", + "timestamp": "2021-03-10T19:43:49Z" + } + ] + }, + { + "guid": "1bd22884-44be-40f3-ad95-fc4a7834ba2c", + "name": "AniList", + "description": "AniList metadata provider\n", + "overview": "AniList metadata provider", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-anilist.png", + "versions": [ + { + "version": "11.0.0.0", + "changelog": "- Cleanup (#91) @Shadowghost\n\n### New features and improvements ###\n- Added a setting to make only animation studio appear as metadata (with fixes) (#88) @sjorge", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anilist/anilist_11.0.0.0.zip", + "checksum": "b81d83d025ca1498f730a72599b80fa4", + "timestamp": "2025-02-25T03:40:36Z" + }, + { + "version": "10.0.0.0", + "changelog": "- Support for retreiving Person metadata (#75) @HansLehnert\n\n### Dependency updates ###\n- Update dotnet monorepo to 8.0.1 (#80) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anilist/anilist_10.0.0.0.zip", + "checksum": "958d69fa904b6a7cf4f75d429be9ea79", + "timestamp": "2024-10-26T18:44:42Z" + }, + { + "version": "9.0.0.0", + "changelog": "- Limit amount of people in metadata search result (#68) @AkaTenshi\n- Feature: Decouples VA filter from the title language, and moves to the new Anilist StaffLanguage API key (#65) @mmshivesh\n\n### Dependency updates ###\n- Update dependency AnitomySharp.NET6 to v0.5.1 (#64) @renovate", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anilist/anilist_9.0.0.0.zip", + "checksum": "ab3635512a988b02e01f8f3e8ac5aa35", + "timestamp": "2024-05-13T13:24:15Z" + }, + { + "version": "8.0.0.0", + "changelog": "- force change for 10.9 (#62) @crobibero\n- Unstable (#61) @crobibero\n\n### Bug Fixes ###\n- Fix genre settings not being applied to movies (#52) @HansLehnert", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anilist/anilist_8.0.0.0.zip", + "checksum": "a348cda6e7162c908e01210812e2190d", + "timestamp": "2024-05-11T20:26:02Z" + }, + { + "version": "7.0.0.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anilist/anilist_7.0.0.0.zip", + "checksum": "935a485454872488f1a1d1ec793c11a5", + "timestamp": "2024-05-11T19:55:03Z" + }, + { + "version": "6.0.0.0", + "changelog": "### New features and improvements ###\n- Optionally use the AnitomySharp library to extract media titles (#9) @MisterMcDuck\n- Change banner to backdrop (#37) @nielsvanvelzen\n\n### Bug Fixes ###\n- Filter out non-japanese VAs for romaji titles (#40) @rzk3\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#44) @methbkts\n- Use meta ci (#25) @crobibero\n\n### Dependency updates ###\n- chore(deps): update dotnet monorepo to v7 (major) (#35) @renovate\n- chore(deps): update dependency microsoft.extensions.dependencyinjection to v6.0.0 (#30) @renovate\n- chore(deps): update dependency microsoft.extensions.http to v6 (#31) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#29) @h1dden-da3m0n\n- Use meta ci (#25) @crobibero", + "targetAbi": "10.8.12.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anilist/anilist_6.0.0.0.zip", + "checksum": "2038e03fd92e877095be82839ee268e4", + "timestamp": "2023-11-09T01:10:28Z" + }, + { + "version": "5.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#18) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anilist/anilist_5.0.0.0.zip", + "checksum": "e9cac399791004a163eec2aeb5a4d11b", + "timestamp": "2022-01-08T17:21:07Z" + }, + { + "version": "4.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix Genre settings (#15) @CommandStorm5\n\n### CI & build changes ###\n- ci: set ABI version and more repo automation (#17) @h1dden-da3m0n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anilist/anilist_4.0.0.0.zip", + "checksum": "0c9335b5ac2c873473446ef5ab91b2be", + "timestamp": "2021-09-21T20:16:23Z" + }, + { + "version": "3.0.0.0", + "changelog": "### New features and improvements ###\n- Add original title preference option (#7) @robertgzr\n- Add native Japanese title to the original title field (#4) @ayyu\n- Add option to hide tags that are marked as spoilers (#5) @sqlstatement\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#6) @dependabot\n\n### CI & build changes ###\n- Update ci (#11) @h1dden-da3m0n\n- Let there be CI (#3) @oddstr13\n\n### Code or Repo Maintenance ###\n- chore: plugin images (#8) @h1dden-da3m0n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anilist/anilist_3.0.0.0.zip", + "checksum": "276831fbfb1c12f60feb978e74384157", + "timestamp": "2021-09-07T21:33:18Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Split out from the Anime plugin - Unpin patch version of DependencyInjection\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anilist/anilist_2.0.0.0.zip", + "checksum": "3d3ab2231231e981f42f46745dd4a3fd", + "timestamp": "2021-03-10T19:47:04Z" + } + ] + }, + { + "guid": "776d9158-b91f-49d9-82c5-dacce63d63b8", + "name": "AniSearch", + "description": "AniSearch metadata provider\n", + "overview": "AniSearch metadata provider", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-anisearch.png", + "versions": [ + { + "version": "5.0.0.0", + "changelog": "- 10.9 (#22) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#21) @methbkts\n- Use meta ci (#13) @crobibero\n\n### Dependency updates ###\n- chore(deps): update dependency microsoft.extensions.http to v6 (#17) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#16) @h1dden-da3m0n\n- Use meta ci (#13) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/anisearch/anisearch_5.0.0.0.zip", + "checksum": "e6870dc7d6256fbc343e5d5eff7e4056", + "timestamp": "2024-05-11T19:36:42Z" + }, + { + "version": "4.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#7) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anisearch/anisearch_4.0.0.0.zip", + "checksum": "f4296b98d7cadd0f0d42f9c7ca63fba4", + "timestamp": "2022-01-08T17:21:39Z" + }, + { + "version": "3.0.0.0", + "changelog": "### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#3) @dependabot\n\n### CI & build changes ###\n- Update ci (#5) @h1dden-da3m0n\n- Let there be CI (#2) @oddstr13\n\n### Code or Repo Maintenance ###\n- chore: plugin images (#4) @h1dden-da3m0n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anisearch/anisearch_3.0.0.0.zip", + "checksum": "de566977fe80a8d75475b7de937c8734", + "timestamp": "2021-09-07T21:31:55Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Split out from the Anime plugin - Remove dependency on DependencyInjection\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/anisearch/anisearch_2.0.0.0.zip", + "checksum": "761b4c98926541c79ed2d24be04f4a1f", + "timestamp": "2021-03-10T19:54:53Z" + } + ] + }, + { + "guid": "88d809e2-056b-47f4-9911-073949b9963f", + "name": "Kitsu", + "description": "Kitsu metadata provider\n", + "overview": "Kitsu metadata provider", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-kitsu.png", + "versions": [ + { + "version": "6.0.0.0", + "changelog": "- Fallback on empty ParentIndexNumber (#36) @Shadowghost\n- Update kitsu domain (#34) @pikami", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kitsu/kitsu_6.0.0.0.zip", + "checksum": "e64954a083d4a66722244724aa588b5a", + "timestamp": "2025-02-25T03:40:50Z" + }, + { + "version": "5.0.0.0", + "changelog": "- 10.9 (#29) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#26) @methbkts", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/kitsu/kitsu_5.0.0.0.zip", + "checksum": "4941f0939f3d4345e7f42fcbfe620d60", + "timestamp": "2024-05-11T19:36:19Z" + }, + { + "version": "4.0.0.0", + "changelog": "### New features and improvements ###\n- Added Series/Episode Image Providers (#22) @pikami\n- Get episode metadata from seriesId+episodeNumber instead of provider episode id (#21) @pikami\n- Add support for identifying using kitsu id (#23) @pikami\n\n### Bug Fixes ###\n- Round community rating to single decimal place (#18) @pikami\n\n### CI & build changes ###\n- fix: meta ci workflows (#17) @h1dden-da3m0n\n- Use meta ci (#14) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kitsu/kitsu_4.0.0.0.zip", + "checksum": "17ba01c1c0fe1c5a8ca2b84410407b82", + "timestamp": "2022-06-13T22:15:32Z" + }, + { + "version": "3.0.0.0", + "changelog": "### New features and improvements ###\n- chore: plugin images (#5) @h1dden-da3m0n\n\n### Dependency updates ###\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#4) @dependabot\n\n### CI & build changes ###\n- Update ci (#6) @h1dden-da3m0n\n- Let there be CI (#2) @oddstr13\n\n### Code or Repo Maintenance ###\n- 10.8 support (#9) @crobibero\n\n### Documentation updates ###\n- chore(doc): doc and editorconf update (#3) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kitsu/kitsu_3.0.0.0.zip", + "checksum": "97bffe423d3f090db13f086f204c807c", + "timestamp": "2022-01-08T17:22:57Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Split out from the Anime plugin - Remove dependency on DependencyInjection\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/kitsu/kitsu_2.0.0.0.zip", + "checksum": "0989ef4483639edb9a4ec266905f386a", + "timestamp": "2021-03-10T20:00:06Z" + } + ] + }, + { + "guid": "a4a488d0-17a3-4919-8d82-7f3de4f6b209", + "name": "TVmaze", + "description": "Get TV metadata from TVmaze\n", + "overview": "Get TV metadata from TVmaze", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-tvmaze.png", + "versions": [ + { + "version": "12.0.0.0", + "changelog": "- Fallback on empty ParentIndexNumber (#54) @Shadowghost\n- Should provide identifying info in its exception (#47) @michaelkrieger\n- Add basic handling for specials (#23) @Smith00101010", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/tvmaze/tvmaze_12.0.0.0.zip", + "checksum": "e778f22bc4295aefa159ee327b89dbfe", + "timestamp": "2025-02-25T03:40:35Z" + }, + { + "version": "11.0.0.0", + "changelog": "- 10.9 (#50) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#49) @methbkts\n- Use meta ci (#42) @crobibero\n\n### CI & build changes ###\n- fix: meta ci workflows (#44) @h1dden-da3m0n\n- Use meta ci (#42) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/tvmaze/tvmaze_11.0.0.0.zip", + "checksum": "0295801c211760a2ea01bd2a7b9f1ff0", + "timestamp": "2024-05-11T19:36:43Z" + }, + { + "version": "10.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Fix build (#36) @crobibero\n\n### Dependency updates ###\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#33) @dependabot", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvmaze/tvmaze_10.0.0.0.zip", + "checksum": "7a1bb4eccc01169f9bf31e5276c8d61e", + "timestamp": "2022-01-08T17:26:09Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Bug Fixes ###\n- tv-maze -> tvmaze in release-drafter config (#28) @oddstr13\n\n### Code or Repo Maintenance ###\n- 10.8 support (#32) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvmaze/tvmaze_9.0.0.0.zip", + "checksum": "2fa1bbe23392945f56f8ed716c8bb932", + "timestamp": "2021-11-01T21:04:34Z" + }, + { + "version": "8.0.0.0", + "changelog": "- chore(deps): bump TvMaze.Api.Client from 0.1.71 to 0.1.72 (#21) @dependabot\n\n### CI & build changes ###\n- Update ci (#24) @h1dden-da3m0n\n\n### Code or Repo Maintenance ###\n- chore: plugin images (#22) @h1dden-da3m0n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvmaze/tvmaze_8.0.0.0.zip", + "checksum": "cd7944e30bd7e6237279cb8458777fc0", + "timestamp": "2021-09-06T17:25:48Z" + }, + { + "version": "7.0.0.0", + "changelog": "Update api client\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tvmaze/tvmaze_7.0.0.0.zip", + "checksum": "01454308f6db571b1db6017394789108", + "timestamp": "2021-04-12T20:38:30Z" + }, + { + "version": "5.0.0.0", + "changelog": "Get additional image types\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tv-maze/tv-maze_5.0.0.0.zip", + "checksum": "509a85e40b1d1ac36eef45673deaf606", + "timestamp": "2020-12-06T02:51:56Z" + }, + { + "version": "4.0.0.0", + "changelog": "Get additional image types\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tv-maze/tv-maze_4.0.0.0.zip", + "checksum": "58ee9ab3f129151bdfff033ad889ad87", + "timestamp": "2020-11-24T14:44:37Z" + }, + { + "version": "3.0.0.0", + "changelog": "Remove unused dependencies \n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tv-maze/tv-maze_3.0.0.0.zip", + "checksum": "f3b2c70b3e136fb15c917e4420f4fdec", + "timestamp": "2020-11-09T14:32:56Z" + }, + { + "version": "2.0.0.0", + "changelog": "Remove unused dependencies \n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tv-maze/tv-maze_2.0.0.0.zip", + "checksum": "c7662ae8ae52ce8a4e8d685d55f36e80", + "timestamp": "2020-11-09T02:33:11Z" + }, + { + "version": "1.0.0.0", + "changelog": "Initial release.\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/tv-maze/tv-maze_1.0.0.0.zip", + "checksum": "c90eee48c12f2c07880b4b28e507fd14", + "timestamp": "2020-11-08T19:05:32Z" + } + ] + }, + { + "guid": "71552a5a-5c5c-4350-a2ae-ebe451a30173", + "name": "Webhook", + "description": "Sends notifications to destinations via webhooks.\n", + "overview": "Sends notifications.", + "owner": "jellyfin", + "category": "Notifications", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-webhook.png", + "versions": [ + { + "version": "17.0.0.0", + "changelog": "- Update Ntfy.handlebars (#298) @Sk4lli\n- ntfy.sh: Template Optimizations Pt. 3 (#297) @v3DJG6GL\n\n### New features and improvements ###\n- feat: add url_encode helper (#314) @armanckeser", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/webhook/webhook_17.0.0.0.zip", + "checksum": "dc5633cf3b48b21e0d413eafdd95ba37", + "timestamp": "2025-02-22T17:59:11Z" + }, + { + "version": "15.0.0.0", + "changelog": "- Fix test badge typo (#257) @RyanMelena\n- Fix test status badge (#256) @RyanMelena\n- Make \"Original Aspect Ratio\" property available to WebHooks (#249) @RyanMelena\n\n### Breaking changes ###\n- Allow smtp connection without SSL (#258) @RyanMelena\n\n### Bug Fixes ###\n- Allow smtp connection without SSL (#258) @RyanMelena\n\n### Dependency updates ###\n- chore(deps): update dependency mailkit to v4.7.0 (#174) @renovate\n- chore(deps): update dependency mqttnet.extensions.managedclient to v4.3.6.1152 (#246) @renovate", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/webhook/webhook_15.0.0.0.zip", + "checksum": "0def08b5a1709aa4c4edec45c71f26fb", + "timestamp": "2024-10-26T18:18:20Z" + }, + { + "version": "14.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix AuthenticationFailureNotifier, AuthenticationSuccessNotifier (#238) @crobibero\n- Actually register hosted services (#233) @crobibero\n\n### Dependency updates ###\n- chore(deps): update dependency mqttnet.extensions.managedclient to v4.3.4.1084 (#187) @renovate", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/webhook/webhook_14.0.0.0.zip", + "checksum": "1097b179029bfc0242446efc7099f3e4", + "timestamp": "2024-05-17T16:51:02Z" + }, + { + "version": "13.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix registering helpers during plugin initialization (#230) @crobibero", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/webhook/webhook_13.0.0.0.zip", + "checksum": "80717245cf09947e3c1c81027fbc416c", + "timestamp": "2024-05-13T23:39:55Z" + }, + { + "version": "12.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Fix scheduled task (#106) @crobibero\n- chore(deps): bump Handlebars.Net from 2.0.10 to 2.1.0 (#101) @dependabot\n- chore(deps): bump MailKit from 3.1.0 to 3.1.1 (#102) @dependabot\n- chore(deps): bump MailKit from 3.0.0 to 3.1.0 (#95) @dependabot\n\n### Dependency updates ###\n- chore(deps): bump Handlebars.Net from 2.0.10 to 2.1.0 (#101) @dependabot\n- chore(deps): bump MailKit from 3.1.0 to 3.1.1 (#102) @dependabot\n- chore(deps): bump MailKit from 3.0.0 to 3.1.0 (#95) @dependabot\n\n### CI & build changes ###\n- fix: wrong name in ci workflows (#104) @h1dden-da3m0n\n- ci: migrate to centralized Plugin CI workflows (#94) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/webhook/webhook_12.0.0.0.zip", + "checksum": "360760d637a92e88273373ba31956300", + "timestamp": "2024-05-11T19:15:42Z" + }, + { + "version": "11.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Fix scheduled task (#106) @crobibero\n- chore(deps): bump Handlebars.Net from 2.0.10 to 2.1.0 (#101) @dependabot\n- chore(deps): bump MailKit from 3.1.0 to 3.1.1 (#102) @dependabot\n- chore(deps): bump MailKit from 3.0.0 to 3.1.0 (#95) @dependabot\n\n### Dependency updates ###\n- chore(deps): bump Handlebars.Net from 2.0.10 to 2.1.0 (#101) @dependabot\n- chore(deps): bump MailKit from 3.1.0 to 3.1.1 (#102) @dependabot\n- chore(deps): bump MailKit from 3.0.0 to 3.1.0 (#95) @dependabot\n\n### CI & build changes ###\n- fix: wrong name in ci workflows (#104) @h1dden-da3m0n\n- ci: migrate to centralized Plugin CI workflows (#94) @h1dden-da3m0n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_11.0.0.0.zip", + "checksum": "adcd796f3c83498a3577c1f6380324e3", + "timestamp": "2022-03-28T00:08:01Z" + }, + { + "version": "10.0.0.0", + "changelog": "### Bug Fixes ###\n- Pull correct ServerName (#85) @crobibero\n\n### Code or Repo Maintenance ###\n- Update ruleset, fix new warnings (#82) @crobibero\n\n### Dependency updates ###\n- chore(deps): update Microsoft.Extensions.Http requirement from 5.* to 6.* (#80) @dependabot\n- chore(deps): bump Handlebars.Net from 2.0.9 to 2.0.10 (#92) @dependabot\n- chore(deps): bump MailKit from 2.15.0 to 3.0.0 (#91) @dependabot", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_10.0.0.0.zip", + "checksum": "51de0e95b9c74c17cccd9f81c0674780", + "timestamp": "2022-01-08T17:26:30Z" + }, + { + "version": "9.0.0.0", + "changelog": "### Bug Fixes ###\n- Don't filter on userId for UserCreated notification type (#76) @crobibero\n\n### Code or Repo Maintenance ###\n- Fix CI (#79) @crobibero\n- 10.8 support (#69) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_9.0.0.0.zip", + "checksum": "7346b010d59f3833b5f5920ab503063c", + "timestamp": "2021-11-01T14:32:52Z" + }, + { + "version": "8.0.0.0", + "changelog": "### New features and improvements ###\n- Add UserDataSaved event handler (#70) @crobibero", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_8.0.0.0.zip", + "checksum": "8a84683a9b52090229b2da2dabcd3d91", + "timestamp": "2021-09-27T01:38:21Z" + }, + { + "version": "7.0.0.0", + "changelog": "### New features and improvements ###\n- Add tagline as available parameter (#68) @crobibero\n- Add Form Post support (#65) @crobibero\n\n### Bug Fixes ###\n- Fix Discord.handlebars template (#66) @crobibero\n- Fix string conversion for unbound properties (#62) @crobibero", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_7.0.0.0.zip", + "checksum": "8d0a350aa9cd4fcc7f25cadcc0406286", + "timestamp": "2021-09-16T20:39:37Z" + }, + { + "version": "6.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix string conversion in HandlebarsFunctionHelpers (#61) @crobibero\n- Actually fix sending username (#58) @crobibero", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_6.0.0.0.zip", + "checksum": "778537d266aaa8b453398e6fcf21ae3b", + "timestamp": "2021-09-15T11:44:50Z" + }, + { + "version": "5.0.0.0", + "changelog": "### Bug Fixes ###\n- Update Username parameter to be NotificationUsername (#57) @crobibero\n\n### CI & build changes ###\n- ci: set ABI version and more repo automation (#52) @h1dden-da3m0n", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_5.0.0.0.zip", + "checksum": "d09416808acd1b47e1efefdde36cebc8", + "timestamp": "2021-09-14T00:18:12Z" + }, + { + "version": "4.0.0.0", + "changelog": "- Update ci (#42) @h1dden-da3m0n\n\n### New features and improvements ###\n- Improve HTTP Request Error Logging (#51) @mark-monteiro\n\n### Bug Fixes ###\n- Fix loading of selected media types (#46) @crobibero\n\n### Dependency updates ###\n- chore(deps): bump MailKit from 2.14.0 to 2.15.0 (#50) @dependabot\n- chore(deps): bump Handlebars.Net from 2.0.8 to 2.0.9 (#49) @dependabot\n- chore(deps): bump MailKit from 2.13.0 to 2.14.0 (#48) @dependabot\n\n### Code or Repo Maintenance ###\n- chore(deps): bump MailKit from 2.14.0 to 2.15.0 (#50) @dependabot\n- chore(deps): bump Handlebars.Net from 2.0.8 to 2.0.9 (#49) @dependabot\n- chore(deps): bump MailKit from 2.13.0 to 2.14.0 (#48) @dependabot", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_4.0.0.0.zip", + "checksum": "37a37b69fab5ccd8181a8c4af8d5dc7b", + "timestamp": "2021-08-30T11:30:18Z" + }, + { + "version": "3.0.0.0", + "changelog": "- No changes", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/webhook/webhook_3.0.0.0.zip", + "checksum": "ad3b18dd68bedf4c49b634d630eb3146", + "timestamp": "2021-07-10T02:06:09Z" + } + ] + }, + { + "guid": "f30880ae-3365-449e-b9e6-bf133c8401b0", + "name": "OPDS", + "description": "Provides an OPDS feed for book browsing.\n", + "overview": "Provides an OPDS book feed", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-opds.png", + "versions": [ + { + "version": "6.0.0.0", + "changelog": "- 10.10 fixes (#44) @crobibero\n\n### New features and improvements ###\n- Add more descriptive feed name (#25) @crobibero\n\n### Bug Fixes ###\n- fix: Support different query parameter names in search (#41) @rluetzner\n\n### Dependency updates ###\n- chore(deps): update dependency stylecop.analyzers to v1.2.0-beta.556 - autoclosed (#34) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/opds/opds_6.0.0.0.zip", + "checksum": "182d6e847b8632af968f2bfea728c541", + "timestamp": "2024-10-26T18:10:14Z" + }, + { + "version": "5.0.0.0", + "changelog": "- 10.9 (#39) @crobibero\n\n### New features and improvements ###\n- Set Content-Disposition header when downloading book (#24) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#36) @methbkts\n- Minor update to include authenticated feeds. (#21) @adamshand\n\n### Dependency updates ###\n- chore(deps): update dependency stylecop.analyzers to v1.2.0-beta.435 (#30) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#28) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/opds/opds_5.0.0.0.zip", + "checksum": "7a69bd5f0221576dff14bbd352dcb87c", + "timestamp": "2024-05-11T19:35:40Z" + }, + { + "version": "4.0.0.0", + "changelog": "### New features and improvements ###\n- Add WWW-Authenticate header to unauthorized response (#14) @crobibero\n- Add Favorites, RecentlyAdded (#12) @crobibero\n\n### CI & build changes ###\n- ci: migrate to centralized Plugin CI workflows (#15) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/opds/opds_4.0.0.0.zip", + "checksum": "43b7de66b3352c17b4e120ce4ef47411", + "timestamp": "2022-02-27T22:02:50Z" + }, + { + "version": "3.0.0.0", + "changelog": "### New features and improvements ###\n- Add Genre search (#9) @crobibero\n- Use Request.PathBase to get actual baseUrl (#8) @crobibero\n\n### Code or Repo Maintenance ###\n- Use BaseItemKind (#10) @crobibero\n- Update ruleset, fix build, fix ordering (#3) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/opds/opds_3.0.0.0.zip", + "checksum": "d1677ceedf02785cd67d497d158aca1a", + "timestamp": "2022-01-08T17:24:12Z" + }, + { + "version": "2.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- 10.8 support (#1) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/opds/opds_2.0.0.0.zip", + "checksum": "2ee42cc03d0e4f754fabb1321b005a5a", + "timestamp": "2021-11-01T20:51:30Z" + }, + { + "version": "1.0.0.0", + "changelog": "", + "targetAbi": "10.7.7.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/opds/opds_1.0.0.0.zip", + "checksum": "717b7a03366af88d39a987610406cfb5", + "timestamp": "2021-09-20T23:41:41Z" + } + ] + }, + { + "guid": "ec9e2a74-1311-4a14-b302-158e3d95fd1d", + "name": "Session Cleaner", + "description": "Removes old sessions (devices).\n", + "overview": "Removes old sessions (devices).", + "owner": "jellyfin", + "category": "General", + "versions": [ + { + "version": "4.0.0.0", + "changelog": "- Fixes for Jellyfin 10.9.9 (#21) @crobibero", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/session-cleaner/session-cleaner_4.0.0.0.zip", + "checksum": "d47e1eb912fdd346501b1d2079494ba6", + "timestamp": "2024-08-05T13:39:43Z" + }, + { + "version": "3.0.0.0", + "changelog": "- 10.9 (#19) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#17) @methbkts\n- chore(deps): bump StyleCop.Analyzers from 1.2.0-beta.406 to 1.2.0-beta.435 (#11) @dependabot\n\n### Dependency updates ###\n- chore(deps): bump StyleCop.Analyzers from 1.2.0-beta.406 to 1.2.0-beta.435 (#11) @dependabot\n- chore(deps): update dependency stylecop.analyzers to v1.2.0-beta.435 (#14) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#12) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/session-cleaner/session-cleaner_3.0.0.0.zip", + "checksum": "b8bcc8968b82d14745b37e968fb2dd7d", + "timestamp": "2024-05-11T19:36:44Z" + }, + { + "version": "2.0.0.0", + "changelog": "10.8 support\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/session-cleaner/session-cleaner_2.0.0.0.zip", + "checksum": "4dcc754c5d93782a8549422f222425c5", + "timestamp": "2022-03-27T20:37:51Z" + } + ] + }, + { + "guid": "44616595-5798-47ad-8658-3c09f3030505", + "name": "VGMdb", + "description": "Adds support for VGMdb to music libraries. Can provide both images and metadata for artists and albums.\n", + "overview": "Adds support for VGMdb to music libraries. Can provide both images and metadata for artists and albums.", + "owner": "jellyfin", + "category": "Metadata", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-vgmdb.png", + "versions": [ + { + "version": "4.0.0.0", + "changelog": "- 10.9 (#23) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/vgmdb/vgmdb_4.0.0.0.zip", + "checksum": "7b765ba1cd95ebbf262399fbac18878f", + "timestamp": "2024-05-11T19:36:32Z" + }, + { + "version": "3.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix double slash in API URL's causing the plugin to never work (#20) @nielsvanvelzen\n\n### Dependency updates ###\n- chore(deps): update dependency stylecop.analyzers to v1.2.0-beta.435 (#15) @renovate\n\n### CI & build changes ###\n- fix: meta ci workflows (#13) @h1dden-da3m0n", + "targetAbi": "10.8.13.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/vgmdb/vgmdb_3.0.0.0.zip", + "checksum": "98833a260b7a90e992248659f492e59a", + "timestamp": "2023-12-21T21:44:35Z" + }, + { + "version": "2.0.0.0", + "changelog": "- chore(deps): bump StyleCop.Analyzers from 1.2.0-beta.376 to 1.2.0-beta.406 (#11) @dependabot\n- Use meta ci (#8) @crobibero\n\n### Code or Repo Maintenance ###\n- Clean up folder structure, remove warnings (#9) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/vgmdb/vgmdb_2.0.0.0.zip", + "checksum": "7543fe69a7701abe645c8590d5b92e2f", + "timestamp": "2022-03-27T21:08:11Z" + } + ] + }, + { + "guid": "07caef58-a94b-4211-a62c-f9774e04ebdb", + "name": "Simkl", + "description": "Scrobble your watched Movies, TV Shows and Anime to Simkl and share your progress with friends!\n", + "overview": "Scrobble to Simkl", + "owner": "crobibero", + "category": "General", + "versions": [ + { + "version": "6.0.0.0", + "changelog": "- Fix 10.9 support (#34) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/simkl/simkl_6.0.0.0.zip", + "checksum": "074abcfa9baa1b7879191b577b6e8f47", + "timestamp": "2024-05-12T19:48:56Z" + }, + { + "version": "5.0.0.0", + "changelog": "- 10.9 (#32) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/simkl/simkl_5.0.0.0.zip", + "checksum": "9eba0e759fa543fd6a88e5f2f4b66275", + "timestamp": "2024-05-11T19:36:09Z" + }, + { + "version": "4.0.0.0", + "changelog": "### New features and improvements ###\n- fixed json case + added episode ids + empty response error (#25) @ekleop\n\n### Bug Fixes ###\n- fixed json case + added episode ids + empty response error (#25) @ekleop", + "targetAbi": "10.8.11.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/simkl/simkl_4.0.0.0.zip", + "checksum": "c6c6420ac5a2fe62a119af7142b6f651", + "timestamp": "2023-11-21T14:20:46Z" + }, + { + "version": "3.0.0.0", + "changelog": "### Bug Fixes ###\n- Fix auth against Simkl api (#17) @crobibero\n\n### CI & build changes ###\n- fix: meta ci workflows (#15) @h1dden-da3m0n", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/simkl/simkl_3.0.0.0.zip", + "checksum": "5a2f9b5ddc2023809780bae3a2dc3e62", + "timestamp": "2022-07-05T08:03:01Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Use meta ci (#10) @crobibero\n- 10.8 support (#5) @crobibero", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/simkl/simkl_2.0.0.0.zip", + "checksum": "c3092a2b46487fa1e3ec16e47c6df60a", + "timestamp": "2022-03-28T00:06:17Z" + } + ] + }, + { + "guid": "cd893c24-b59e-4060-87b2-184070e1bf68", + "name": "Subtitle Extract", + "description": "Extracts embedded subtitles.\n", + "overview": "Extracts Subtitles.", + "owner": "jellyfin", + "category": "General", + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-subtitleextract.png", + "versions": [ + { + "version": "4.0.0.0", + "changelog": "### Code or Repo Maintenance ###\n- Downgrade log level to reduce spam (#27) @crobibero\n- Fix extracting subtitles, fix memory leak @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/subtitle-extract/subtitle-extract_4.0.0.0.zip", + "checksum": "e6076f4a618829408114b105a6a0692c", + "timestamp": "2024-05-12T18:22:29Z" + }, + { + "version": "3.0.0.0", + "changelog": "- 10.9 (#24) @crobibero\n\n### New features and improvements ###\n- Allow for subtitles to be extracted for new media (#14) @Kakoluz\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#16) @methbkts", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/subtitle-extract/subtitle-extract_3.0.0.0.zip", + "checksum": "4fd85c8603fcb5a92f7abb7b83a003ee", + "timestamp": "2024-05-11T19:23:24Z" + }, + { + "version": "2.0.0.0", + "changelog": "### Bug Fixes ###\n- Catch exception when extracting (#1) @crobibero", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/subtitle-extract/subtitle-extract_2.0.0.0.zip", + "checksum": "8a4a41cc8462d67e5f9df7a96c3ce711", + "timestamp": "2022-09-12T22:53:29Z" + }, + { + "version": "1.0.0.0", + "changelog": "", + "targetAbi": "10.8.1.0", + "sourceUrl": "https://repo.jellyfin.org/releases/plugin/subtitle-extract/subtitle-extract_1.0.0.0.zip", + "checksum": "74ff9ab8f7936c43d591d3c071458d60", + "timestamp": "2022-09-08T04:43:17Z" + } + ] + }, + { + "guid": "4ce89c27-d3a1-4e4b-8f5f-4bd9191c857e", + "name": "Discogs", + "description": "Get music metadata from Discogs\n", + "overview": "Get music metadata from Discogs", + "owner": "jellyfin", + "category": "Metadata", + "versions": [ + { + "version": "1.0.0.0", + "changelog": "- 10.9 (#7) @crobibero\n- Update dependency StyleCop.Analyzers to v1.2.0-beta.556 (#1) @renovate\n- Update workflows (#3) @crobibero", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/discogs/discogs_1.0.0.0.zip", + "checksum": "175e1fdccd21819b1f4f0e32f6d9851a", + "timestamp": "2024-05-11T19:28:18Z" + } + ], + "imageUrl": "https://repo.jellyfin.org/releases/plugin/images/jellyfin-plugin-discogs.png" + }, + { + "guid": "7871d3b1-f1b9-4318-9c27-f35998ffbbcc", + "name": "Artwork", + "description": "Downloads artwork from a repository for various media types.\n", + "overview": "Download artwork", + "owner": "jellyfin", + "category": "Metadata", + "versions": [ + { + "version": "1.0.0.0", + "changelog": "- 10.9 (#21) @crobibero\n- Use meta ci (#14) @crobibero\n- chore(deps): bump Microsoft.Extensions.Http from 5.0.0 to 6.0.0 (#6) @dependabot\n- update ruleset (#7) @crobibero\n- 10.8 support (#4) @crobibero\n- chore(deps): bump release-drafter/release-drafter from v5.14.0 to v5.15.0 (#2) @dependabot\n- Fix url image template (#1) @crobibero\n\n### Code or Repo Maintenance ###\n- Update link to Jellyfin website (#19) @methbkts\n\n### CI & build changes ###\n- fix: meta ci workflows (#15) @h1dden-da3m0n", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/artwork/artwork_1.0.0.0.zip", + "checksum": "4e7471e17995d57400d3041b4299703a", + "timestamp": "2024-05-11T19:35:04Z" + } + ] + }, + { + "guid": "07d86795-01f2-4d22-b174-cdc6056c3e7c", + "name": "Local Intros", + "description": "Select a flashy pre-roll from local storage to run before any video content. The video details are loaded from disk after a video is played from the library from the beginning of the video. A random video is selected, and all videos in the local directory are enabled by default. Specific videos can be enabled or disabled as necessary. After videos are loaded for the first time, additional videos found in the directory are not enabled by default.\n", + "overview": "Display flashy intros before movies and other videos", + "owner": "Jellyfin", + "category": "Other", + "versions": [ + { + "version": "3.0.0.0", + "changelog": "- 10.9 (#38) @crobibero\n- Add org workflows (#29) @crobibero\n- Added code to order detected videos by name. (#16) @BrianCArnold\n\n### New features and improvements ###\n- added ability to only show intros for movies (#32) @Terence-D\n- Added code to handle repeating date ranges in backend. (#15) @BrianCArnold\n\n### Documentation updates ###\n- Update config Discord link (#31) @anthonylavado", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/local-intros/local-intros_3.0.0.0.zip", + "checksum": "bf5161c2cb0b82ba8449aed8f60e6dd2", + "timestamp": "2024-05-11T19:59:28Z" + } + ] + }, + { + "guid": "33eba9cd-7da1-4720-967f-dd7dae7b74a1", + "name": "DLNA", + "description": "Adds DLNA capability to Jellyfin\n", + "overview": "DLNA Service", + "owner": "jellyfin", + "category": "General", + "imageUrl": "", + "versions": [ + { + "version": "8.0.0.0", + "changelog": "- Revert collection expression (#132) @crobibero", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_8.0.0.0.zip", + "checksum": "9424fec869f91fa3de4844a06226f852", + "timestamp": "2025-03-17T03:03:55Z" + }, + { + "version": "7.0.0.0", + "changelog": "- Fix: ChildCount When Viewing Folders in Directory (GetBrowse) (#128) @tfink419\n- Add rules, fix issues and cleanup (#96) @Shadowghost\n- Disable DirectStream for video playback (#124) @ACertainCoder", + "targetAbi": "10.10.6.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_7.0.0.0.zip", + "checksum": "720670a424cfa32bca014a0179d64027", + "timestamp": "2025-03-12T19:16:10Z" + }, + { + "version": "6.0.0.0", + "changelog": "- fix: add the icons to the compiled resources (#109) (#114) @FelixPetriconi\n- fix: adjusted typo in configuration page title (#112) @shindai\n- Only split user agent if it can be split (#95) @Shadowghost", + "targetAbi": "10.10.3.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_6.0.0.0.zip", + "checksum": "f553041c6685d619d4eeb8927bd85c14", + "timestamp": "2024-12-19T22:17:07Z" + }, + { + "version": "5.0.0.0", + "changelog": "- Fix Bigscreen compatibility issues (#83) @Nullcaller\n- Add additional profile logging (#93) @disgustipated\n- Fix TTL not following SsdpConstants (#88) @Nullcaller", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_5.0.0.0.zip", + "checksum": "4f40f49f8b402a13ff90dc5f1aea5abd", + "timestamp": "2024-11-03T15:14:46Z" + }, + { + "version": "4.0.0.0", + "changelog": "- Fixes for 10.10 (#84) @crobibero\n- Standardize bind IPs in ssdp and dlnahost (#82) @disgustipated\n- Revert lg profile friendly name (#77) @disgustipated\n- Add baseurl to descriptoruri (#75) @disgustipated\n\n### Dependency updates ###\n- Update dotnet monorepo (#79) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_4.0.0.0.zip", + "checksum": "c4cfe0a8b24f1a60224b4dec56b380a8", + "timestamp": "2024-10-27T13:15:22Z" + }, + { + "version": "3.0.0.0", + "changelog": "- restore video transcoding (#68) @flashka07\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.8 (#54) @renovate\n- Set publisher uri to http (#62) @disgustipated\n- Remove . from friendlyname for identifying LG TVs (#60) @disgustipated", + "targetAbi": "10.9.10.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_3.0.0.0.zip", + "checksum": "2b88fb8b370650f1cedca0a3a6d4a050", + "timestamp": "2024-10-26T22:25:45Z" + }, + { + "version": "2.0.0.0", + "changelog": "- Fixed ListenToSocketInternal so it works after Jellyfin 10.9.2 (#51) @ms-afk\n\n### Dependency updates ###\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.5 (#47) @renovate\n- Update dependency Microsoft.AspNetCore.Authorization to v8.0.4 (#37) @renovate", + "targetAbi": "10.9.2.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_2.0.0.0.zip", + "checksum": "2d5352445ed378318fee7aec39e12d15", + "timestamp": "2024-05-26T20:40:15Z" + }, + { + "version": "1.0.0.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/dlna/dlna_1.0.0.0.zip", + "checksum": "0c8214c6350767f03de192602916313f", + "timestamp": "2024-05-11T20:08:01Z" + } + ] + }, + { + "guid": "a0444c3b-fe1c-4258-9e0f-a139fc093949", + "name": "Transcode Killer", + "description": "Kills transcoded streams.\n", + "overview": "Kills transcoded streams.", + "owner": "jellyfin", + "category": "General", + "versions": [ + { + "version": "3.0.0.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/transcode-killer/transcode-killer_3.0.0.0.zip", + "checksum": "8099dd988580c379d0eba1a79e98acba", + "timestamp": "2024-05-12T01:25:13Z" + }, + { + "version": "2.0.0.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/transcode-killer/transcode-killer_2.0.0.0.zip", + "checksum": "eae7cdd6f82d1fe1b54b990cb64e64b6", + "timestamp": "2024-05-12T01:21:54Z" + } + ] + }, + { + "guid": "698b6f33-14ca-49b5-9d79-fc3c0ab941f5", + "name": "Chapter Segments Provider", + "description": "Create media segments based on chapters.\n", + "overview": "Create media segments based on chapters.", + "owner": "jellyfin", + "category": "General", + "versions": [ + { + "version": "3.0.0.0", + "changelog": "", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/chapter-segments-provider/chapter-segments-provider_3.0.0.0.zip", + "checksum": "04c5162ab035f72fc52fb678aa75a9e0", + "timestamp": "2024-10-26T18:20:41Z" + } + ] + }, + { + "guid": "d106ebe6-9ca8-4fbc-9cd1-a92a213da9f9", + "name": "LrcLib", + "description": "Download lyrics from https://lrclib.net/\n", + "overview": "Download lyrics from https://lrclib.net/", + "owner": "jellyfin", + "category": "Metadata", + "versions": [ + { + "version": "2.0.0.0", + "changelog": "### Dependency updates ###\n- Update dependency Microsoft.Extensions.Http to 8.0.1 (#8) @renovate", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://repo.jellyfin.org/files/plugin/lrclib/lrclib_2.0.0.0.zip", + "checksum": "f329ab0dc589c0ac1aa82522e278d49e", + "timestamp": "2024-10-29T00:27:05Z" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/ShokoAnime.json b/plugin_manifests/2025.03.30/ShokoAnime.json new file mode 100644 index 0000000..434557d --- /dev/null +++ b/plugin_manifests/2025.03.30/ShokoAnime.json @@ -0,0 +1,301 @@ +[ + { + "guid": "5216ccbf-d24a-4eb3-8a7e-7da4230b7052", + "name": "Shoko", + "description": "A Jellyfin plugin to integrate [Jellyfin](https://jellyfin.org/docs/) with [Shoko Server](https://shokoanime.com/downloads/shoko-server/).\n## Read this before installing\n**This plugin requires that you have already set up and are using Shoko Server**, and that the files you intend to include in Jellyfin are **indexed** (and optionally managed) by Shoko Server. **Otherwise, the plugin won't be able to provide metadata for your files**, since there is no metadata to find for them.\n", + "overview": "Manage your anime from Jellyfin using metadata from Shoko", + "owner": "ShokoAnime", + "category": "Metadata", + "imageUrl": "https://raw.githubusercontent.com/ShokoAnime/Shokofin/metadata/banner.png", + "versions": [ + { + "version": "5.0.2.0", + "changelog": "", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v5.0.2/shoko_5.0.2.0.zip", + "checksum": "c133a233327ec07b7ff1a1485925ef3e", + "timestamp": "2025-01-21T07:02:31Z" + }, + { + "version": "5.0.1.0", + "changelog": "", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v5.0.1/shoko_5.0.1.0.zip", + "checksum": "85774b7b451cd4f8e2aaf1aa9f9def5b", + "timestamp": "2025-01-21T02:42:21Z" + }, + { + "version": "5.0.0.0", + "changelog": "", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v5.0.0/shoko_5.0.0.0.zip", + "checksum": "f93033bfd1961f72e3c4d9ae8cec8d0d", + "timestamp": "2024-10-27T12:44:41Z" + }, + { + "version": "4.2.2.0", + "changelog": "", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.2.2/shoko_4.2.2.0.zip", + "checksum": "90edc740aedb051e63b9c3de0bd53e87", + "timestamp": "2024-10-27T11:54:31Z" + }, + { + "version": "4.2.1.0", + "changelog": "", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.2.1/shoko_4.2.1.0.zip", + "checksum": "eb5e494cd27f5fa51da107fcd484404d", + "timestamp": "2024-10-22T19:18:22Z" + }, + { + "version": "4.2.0.0", + "changelog": "", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.2.0/shoko_4.2.0.0.zip", + "checksum": "1d65a2b1fe9d8e3f8a88cb44c530d5e3", + "timestamp": "2024-10-10T03:42:48Z" + }, + { + "version": "4.1.1.0", + "changelog": "", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.1.1/shoko_4.1.1.0.zip", + "checksum": "03364768f7370f2cb2c9163e821ff077", + "timestamp": "2024-07-16T16:59:06Z" + }, + { + "version": "4.1.0.0", + "changelog": "", + "targetAbi": "10.9.7.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.1.0/shoko_4.1.0.0.zip", + "checksum": "b057c3f2e08be1a8148763ca549914ce", + "timestamp": "2024-07-14T19:28:24Z" + }, + { + "version": "4.0.1.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.0.1/shoko_4.0.1.0.zip", + "checksum": "54dfe0986436216acc24f5dcec1c402f", + "timestamp": "2024-07-07T14:59:13Z" + }, + { + "version": "4.0.0.0", + "changelog": "", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/v4.0.0/shoko_4.0.0.0.zip", + "checksum": "064e34d70a74e81e45c317557e3e232d", + "timestamp": "2024-07-04T12:48:19Z" + }, + { + "version": "3.0.1.0", + "changelog": "NA\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/3.0.1/shoko_3.0.1.0.zip", + "checksum": "8bfa1dc2c430c07c0659bbbc757dbf8e", + "timestamp": "2023-04-20T15:44:36Z" + }, + { + "version": "3.0.0.0", + "changelog": "NA\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/3.0.0/shoko_3.0.0.0.zip", + "checksum": "c02b32abb548eb3d2153ac957ad88f80", + "timestamp": "2023-03-29T17:54:57Z" + }, + { + "version": "2.0.1.0", + "changelog": "NA\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/2.0.1/shoko_2.0.1.0.zip", + "checksum": "f6b1520a57381f9425935b10b4048398", + "timestamp": "2022-07-02T10:17:43Z" + }, + { + "version": "1.7.3.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.7.3/shoko_1.7.3.0.zip", + "checksum": "4329184a94c68c621a4c944bee7d7f9d", + "timestamp": "2022-04-21T10:23:21Z" + }, + { + "version": "1.7.2.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.7.2/shoko_1.7.2.0.zip", + "checksum": "38dd48745750756abbe6850d5527e694", + "timestamp": "2022-01-23T20:55:00Z" + }, + { + "version": "1.7.1.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.7.1/shoko_1.7.1.0.zip", + "checksum": "c748f37e301aaa891da7e01842d02a87", + "timestamp": "2022-01-21T18:10:49Z" + }, + { + "version": "1.7.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.7.0/shoko_1.7.0.0.zip", + "checksum": "e6604c4c9729b2f8a82bb9d4dfb0bfab", + "timestamp": "2022-01-12T19:27:09Z" + }, + { + "version": "1.6.3.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.6.3/shoko_1.6.3.0.zip", + "checksum": "e4edc60e6ca8ecc9ca83627c37cb0109", + "timestamp": "2021-10-22T13:53:49Z" + }, + { + "version": "1.6.2.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.6.2/shoko_1.6.2.0.zip", + "checksum": "92d76c12c13245a8c67dba3b6a532471", + "timestamp": "2021-10-22T12:45:39Z" + }, + { + "version": "1.6.1.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.6.1/shoko_1.6.1.0.zip", + "checksum": "d574380d64ff9fcc1a532f4b4f00dd82", + "timestamp": "2021-10-18T17:23:28Z" + }, + { + "version": "1.6.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.6.0/shoko_1.6.0.0.zip", + "checksum": "18dfd06489b5c77ba7e3d310ac255a3d", + "timestamp": "2021-10-11T14:11:13Z" + }, + { + "version": "1.5.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.5.0/shokofin_1.5.0.0.zip", + "checksum": "1619ade0f980553dbc056fc414ad6243", + "timestamp": "2021-08-30T00:23:40Z" + }, + { + "version": "1.4.7.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.7/shokofin_1.4.7.zip", + "checksum": "5a9e396ac1775d61cb14796eae6e8f8a", + "timestamp": "2021-06-01T17:14:41Z" + }, + { + "version": "1.4.6.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.6/shokofin_1.4.6.zip", + "checksum": "be14a632a9ff59baccc8d78d6ca1809c", + "timestamp": "2021-05-31T17:29:05Z" + }, + { + "version": "1.4.5.1", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.5.1/shokofin_1.4.5.1.zip", + "checksum": "1a5005234208d651e194ac9987c2ddcd", + "timestamp": "2021-03-26T06:05:25Z" + }, + { + "version": "1.4.5.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.5/shokofin_1.4.5.zip", + "checksum": "ec0638fc707dfe2450dc47b3e161d042", + "timestamp": "2021-03-25T13:10:36Z" + }, + { + "version": "1.4.4.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.4/shokofin_1.4.4.zip", + "checksum": "475abde06b9f67a131bb2737d126d052", + "timestamp": "2021-03-24T09:41:27Z" + }, + { + "version": "1.4.3.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.3/shokofin_1.4.3.zip", + "checksum": "ee2b4d8b79dcd1edf524bd81e2ef7290", + "timestamp": "2021-03-18T17:38:49Z" + }, + { + "version": "1.4.2.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.2/shokofin_1.4.2.zip", + "checksum": "2b90bac9df30315240802d0aa23a706c", + "timestamp": "2021-03-17T07:31:27Z" + }, + { + "version": "1.4.1.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.1/shokofin_1.4.1.zip", + "checksum": "77bc01b63d8dde14401ba8060dd46b38", + "timestamp": "2021-03-16T15:01:11Z" + }, + { + "version": "1.4.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.4.0/shokofin_1.4.0.zip", + "checksum": "57e70a963ef95a8f64bdcc394685f594", + "timestamp": "2021-03-03T20:39:56Z" + }, + { + "version": "1.3.1.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.3.1/shokofin_1.3.1.zip", + "checksum": "135888e53f702e0b96846ca2ca7201d7", + "timestamp": "2020-10-12T14:11:59Z" + }, + { + "version": "1.3.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.3.0/shokofin_1.3.0.zip", + "checksum": "a30811e8adc9491df0aaa436d6a7cea6", + "timestamp": "2020-09-30T20:54:31Z" + }, + { + "version": "1.2.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.2.0/shokojellyfin_1.2.0.zip", + "checksum": "7e1965987f40e62f9e987c44cf98a6fe", + "timestamp": "2020-09-20T21:52:52Z" + }, + { + "version": "1.1.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.1.0/shokojellyfin_1.1.0.zip", + "checksum": "610e540182066278d816e06e8f1a01ee", + "timestamp": "2020-09-08T22:17:26Z" + }, + { + "version": "1.0.0.0", + "changelog": "NA", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/ShokoAnime/Shokofin/releases/download/1.0.0/shokojellyfin_1.0.0.zip", + "checksum": "184c723247ccdc4b0143dc46f5b6d50d", + "timestamp": "2020-09-07T14:43:45Z" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/Streamyfin.json b/plugin_manifests/2025.03.30/Streamyfin.json new file mode 100644 index 0000000..50f89e3 --- /dev/null +++ b/plugin_manifests/2025.03.30/Streamyfin.json @@ -0,0 +1,365 @@ +[ + { + "guid": "1e9e5d38-6e67-4615-8719-e98a5c34f004", + "name": "Streamyfin", + "overview": "", + "description": "", + "owner": "lostb1t", + "category": "General", + "imageUrl": "https://raw.githubusercontent.com/streamyfin/jellyfin-plugin-streamyfin/main/logo.png", + "versions": [ + { + "version": "0.51.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.51.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.51.0.0/streamyfin-0.51.0.0.zip", + "checksum": "4f55aca3871e0c0398f4ac51c963d7de", + "timestamp": "2025-03-29T12:02:50Z" + }, + { + "version": "0.50.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.50.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.50.0.0/streamyfin-0.50.0.0.zip", + "checksum": "3cc06ae7113a82e838c77744672c77d0", + "timestamp": "2025-03-27T01:48:58Z" + }, + { + "version": "0.49.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.49.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.49.0.0/streamyfin-0.49.0.0.zip", + "checksum": "a4653965212d259d26bafc7df69a20be", + "timestamp": "2025-03-27T00:26:37Z" + }, + { + "version": "0.48.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.48.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.48.0.0/streamyfin-0.48.0.0.zip", + "checksum": "7a074261039b63f4c99379cec2b3d5de", + "timestamp": "2025-03-25T07:17:11Z" + }, + { + "version": "0.47.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.47.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.47.0.0/streamyfin-0.47.0.0.zip", + "checksum": "7ba1f6e6ace0a0baeccf1cbe62f20342", + "timestamp": "2025-03-22T15:13:04Z" + }, + { + "version": "0.46.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.46.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.46.0.0/streamyfin-0.46.0.0.zip", + "checksum": "3b6cf66fe33d946d2888f6ba74b9e0a8", + "timestamp": "2025-03-20T17:40:39Z" + }, + { + "version": "0.45.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.45.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.45.0.0/streamyfin-0.45.0.0.zip", + "checksum": "45d2b77d9cc5a078b7aca70847e0d0ed", + "timestamp": "2025-03-20T12:47:58Z" + }, + { + "version": "0.44.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.44.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.44.0.0/streamyfin-0.44.0.0.zip", + "checksum": "d34dd36b89a0ed177d09b4e7186da410", + "timestamp": "2025-03-16T20:37:04Z" + }, + { + "version": "0.43.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.43.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.43.0.0/streamyfin-0.43.0.0.zip", + "checksum": "de9ef32c02bc57b22c0f8a12fa90de58", + "timestamp": "2025-03-15T17:59:54Z" + }, + { + "version": "0.42.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.42.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.42.0.0/streamyfin-0.42.0.0.zip", + "checksum": "3db798db1eea4d701d98797cc2d07d0a", + "timestamp": "2025-03-11T16:47:51Z" + }, + { + "version": "0.41.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.41.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.41.0.0/streamyfin-0.41.0.0.zip", + "checksum": "4723c0a29398603a2fb26aad69fe5f81", + "timestamp": "2025-03-11T04:04:39Z" + }, + { + "version": "0.40.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.40.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.40.0.0/streamyfin-0.40.0.0.zip", + "checksum": "86e98ad9c651e60117d814d50ab34a0e", + "timestamp": "2025-02-14T19:45:59Z" + }, + { + "version": "0.39.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.39.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.39.0.0/streamyfin-0.39.0.0.zip", + "checksum": "31d5e9e7e88652bbfcbf0f06f90867b8", + "timestamp": "2025-01-24T07:56:25Z" + }, + { + "version": "0.38.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.38.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.38.0.0/streamyfin-0.38.0.0.zip", + "checksum": "bceab8d2bda2644b75ecaa6040e989af", + "timestamp": "2025-01-22T06:30:48Z" + }, + { + "version": "0.37.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.37.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.37.0.0/streamyfin-0.37.0.0.zip", + "checksum": "254c9359fd6bcadea6e368a611e64c9a", + "timestamp": "2025-01-16T09:36:54Z" + }, + { + "version": "0.36.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.36.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.36.0.0/streamyfin-0.36.0.0.zip", + "checksum": "f641b85c3433074375f1e70700304ed4", + "timestamp": "2025-01-15T10:26:53Z" + }, + { + "version": "0.35.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.35.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.35.0.0/streamyfin-0.35.0.0.zip", + "checksum": "b8395bab9008055078ab37750668e622", + "timestamp": "2025-01-15T09:13:24Z" + }, + { + "version": "0.34.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.34.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.34.0.0/streamyfin-0.34.0.0.zip", + "checksum": "26bbf7b2d160f1e9ea6e9f6ba2ad4ce3", + "timestamp": "2025-01-13T09:22:08Z" + }, + { + "version": "0.33.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.33.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.33.0.0/streamyfin-0.33.0.0.zip", + "checksum": "ca230dd9b06e4775124003ce7ac7f2e9", + "timestamp": "2025-01-12T19:58:28Z" + }, + { + "version": "0.32.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.32.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.32.0.0/streamyfin-0.32.0.0.zip", + "checksum": "4e4dc97c7d5d01c7e07501d88e88288f", + "timestamp": "2025-01-10T07:36:24Z" + }, + { + "version": "0.31.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.31.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.31.0.0/streamyfin-0.31.0.0.zip", + "checksum": "4ef3e7fefe984e247e30951c6a7c4c76", + "timestamp": "2025-01-10T07:05:22Z" + }, + { + "version": "0.29.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.29.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.29.0.0/streamyfin-0.29.0.0.zip", + "checksum": "8c408feba7dc2fcae8253a8584e4c93b", + "timestamp": "2025-01-09T15:43:46Z" + }, + { + "version": "0.28.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/tag/0.28.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/streamyfin/jellyfin-plugin-streamyfin/releases/download/0.28.0.0/streamyfin-0.28.0.0.zip", + "checksum": "b3a45e9337ab306a863cadf34b3d00be", + "timestamp": "2025-01-09T14:02:27Z" + }, + { + "version": "0.27.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.27.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.27.0.0/streamyfin-0.27.0.0.zip", + "checksum": "8596a65f3ef6b248aa6ac02984044c8f", + "timestamp": "2024-09-09T09:37:42Z" + }, + { + "version": "0.26.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.26.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.26.0.0/streamyfin-0.26.0.0.zip", + "checksum": "290c193f359d091c5a1bea383ab270b1", + "timestamp": "2024-09-09T08:39:39Z" + }, + { + "version": "0.25.0.0", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.25.0.0)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.25.0.0/streamyfin-0.25.0.0.zip", + "checksum": "9598389d7536299508c2ac5765508f0b", + "timestamp": "2024-09-07T08:33:45Z" + }, + { + "version": "0.24", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.24)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.24/streamyfin-0.24.zip", + "checksum": "8b03634505e25f445c45358973f80cac", + "timestamp": "2024-08-29T14:45:15Z" + }, + { + "version": "0.23", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.23)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.23/streamyfin-0.23.zip", + "checksum": "334650e991c92d4a9afb15a136a37eaa", + "timestamp": "2024-08-29T14:12:59Z" + }, + { + "version": "0.22", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.22)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.22/streamyfin-0.22.zip", + "checksum": "84f784f0e18f0456382bf24c32eeda32", + "timestamp": "2024-08-29T14:05:50Z" + }, + { + "version": "0.21", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.21)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.21/streamyfin-0.21.zip", + "checksum": "e0d7ef05ea2afe3bcf9fa3ab3501e37a", + "timestamp": "2024-08-29T14:00:46Z" + }, + { + "version": "0.20", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.20)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.20/streamyfin-0.20.zip", + "checksum": "0163d767c72e319cff96e260e5f33a1b", + "timestamp": "2024-08-29T13:58:04Z" + }, + { + "version": "0.19", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.19)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.19/streamyfin-0.19.zip", + "checksum": "004e7cbc6ab2f34907ed333a3589f188", + "timestamp": "2024-08-29T12:54:35Z" + }, + { + "version": "0.15", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.15)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.15/streamyfin-0.15.zip", + "checksum": "8db25bec324151e83cb731c8a4ce9769", + "timestamp": "2024-08-25T16:27:01Z" + }, + { + "version": "0.14", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.14)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.14/streamyfin-0.14.zip", + "checksum": "6403e63ad91cbadd9b36b805bd96f93f", + "timestamp": "2024-08-25T16:17:10Z" + }, + { + "version": "0.13", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.13)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.13/streamyfin-0.13.zip", + "checksum": "c4579190fded4bb2f1ec3e5e020af7d7", + "timestamp": "2024-08-25T12:39:48Z" + }, + { + "version": "0.12", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.12)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.12/streamyfin-0.12.zip", + "checksum": "8cf1b7a39ef8936ff26a72f12776abb0", + "timestamp": "2024-08-25T10:09:18Z" + }, + { + "version": "0.10", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.10)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.10/streamyfin-0.10.zip", + "checksum": "00300eaca81c3793329cd9d4f08697fa", + "timestamp": "2024-08-25T09:55:02Z" + }, + { + "version": "0.9", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.9)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.9/streamyfin-0.9.zip", + "checksum": "44a99eaae04ff92addc9ce74b767e31f", + "timestamp": "2024-08-25T09:48:59Z" + }, + { + "version": "0.8", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.8)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.8/streamyfin-0.8.zip", + "checksum": "61b184fa7d018b06f13ed0cb3508e810", + "timestamp": "2024-08-25T09:35:55Z" + }, + { + "version": "0.7", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.7)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.7/streamyfin-0.7.zip", + "checksum": "6d311f0715c715e82d9a15899be63916", + "timestamp": "2024-08-25T09:31:26Z" + }, + { + "version": "0.6", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.6)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.6/streamyfin-0.6.zip", + "checksum": "6b71c6ed52ba0979d0cf720bbd8819c0", + "timestamp": "2024-08-22T14:54:28Z" + }, + { + "version": "0.5", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.5)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.5/streamyfin-0.5.zip", + "checksum": "7b337b0994af2feab0885c51a6ca8788", + "timestamp": "2024-08-22T14:39:46Z" + }, + { + "version": "0.4", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.4)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.4/streamyfin-0.4.zip", + "checksum": "a29c8b76b02ddeb5f071c1401974e6c6", + "timestamp": "2024-08-22T14:35:48Z" + }, + { + "version": "0.3", + "changelog": "- See the full changelog at [GitHub](https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/tag/0.3)\n", + "targetAbi": "10.9.9.0", + "sourceUrl": "https://github.com/lostb1t/jellyfin-plugin-streamyfin/releases/download/0.3/streamyfin-0.3.zip", + "checksum": "a79d41843f71e2762a89e6563e5bda28", + "timestamp": "2024-08-22T13:56:05Z" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/TubeArchivist.json b/plugin_manifests/2025.03.30/TubeArchivist.json new file mode 100644 index 0000000..4414868 --- /dev/null +++ b/plugin_manifests/2025.03.30/TubeArchivist.json @@ -0,0 +1,141 @@ +[ + { + "category": "Metadata", + "guid": "dc97d0c6-28b0-4242-afb4-5833ae1b3715", + "name": "TubeArchivistMetadata", + "description": "TubeArchivistMetadata is a plugin that automatically manages metadata for videos downloaded with TubeArchivist from YouTube.\n", + "owner": "DarkFighterLuke", + "overview": "Metadata for your TubeArchivist library on Jellyfin", + "imageUrl": "https://raw.githubusercontent.com/tubearchivist/tubearchivist-jf-plugin/master/images/logo.png", + "versions": [ + { + "version": "1.3.6.0", + "changelog": "Fix TA auth header\n", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.6/tubearchivistmetadata_1.3.6.0.zip", + "checksum": "513cde64268867d0047009eb2d986054", + "timestamp": "2025-03-10T22:01:13Z" + }, + { + "version": "1.3.5.0", + "changelog": "Adapt to the new TA API changes Fix JF crash when setting watched status with TA offline\n", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.5/tubearchivistmetadata_1.3.5.0.zip", + "checksum": "2536622c0ec73e6401860929f24849f7", + "timestamp": "2025-03-10T17:47:43Z" + }, + { + "version": "1.3.4.0", + "changelog": "Merge workaround for JF crashing when scanning Series pull request by wolffshots\n", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.4/tubearchivistmetadata_1.3.4.0.zip", + "checksum": "1ee6041139a6fdc3cecc8b2a427c60a8", + "timestamp": "2024-11-04T21:30:24Z" + }, + { + "version": "1.3.3.0", + "changelog": "Add compatibility with Jellyfin 10.10\n", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.3/tubearchivistmetadata_1.3.3.0.zip", + "checksum": "ee6431d8bdaf844672d167b6f3ee0a73", + "timestamp": "2024-11-04T20:41:46Z" + }, + { + "version": "1.3.2.0", + "changelog": "Add tasks progress status Adjust logs levels\n", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.2/tubearchivistmetadata_1.3.2.0.zip", + "checksum": "6162235807535a5c2a7570276798e69e", + "timestamp": "2024-09-14T13:41:58Z" + }, + { + "version": "1.3.1.0", + "changelog": "Add support for Jellyfin 10.9.1\n", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.1/tubearchivistmetadata_1.3.1.0.zip", + "checksum": "b0b526bbd1702970108e3b9a8c3709de", + "timestamp": "2024-09-12T13:36:12Z" + }, + { + "version": "1.3.0.0", + "changelog": "Add support for Jellyfin 10.9.1\n", + "targetAbi": "10.9.1.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.3.0/tubearchivistmetadata_1.3.0.0.zip", + "checksum": "e1fde6f75a10a5f17bc9cc5814949180", + "timestamp": "2024-05-14T20:20:13Z" + }, + { + "version": "1.2.5.0", + "changelog": "Ping the TA API to validate connection\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.5/tubearchivistmetadata_1.2.5.0.zip", + "checksum": "e4a0d076ffd84c976ad66dde91dfb840", + "timestamp": "2024-05-14T17:37:17Z" + }, + { + "version": "1.2.4.0", + "changelog": "Fix issues with directory separators\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.4/tubearchivistmetadata_1.2.4.0.zip", + "checksum": "b418a46d458fe28354580d70748b1ced", + "timestamp": "2024-05-09T15:41:00Z" + }, + { + "version": "1.2.3.0", + "changelog": "Add fix for unclosed HTML breaks\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.3/tubearchivistmetadata_1.2.3.0.zip", + "checksum": "f5328a662444739eaa7c59855bfcb203", + "timestamp": "2024-04-18T21:45:00Z" + }, + { + "version": "1.2.2.0", + "changelog": "Fix bug on description length substringing\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.2/tubearchivistmetadata_1.2.2.0.zip", + "checksum": "82d04546916e1ba76d56de28e648447a", + "timestamp": "2024-03-15T10:12:00Z" + }, + { + "version": "1.2.1.0", + "changelog": "Make maximum description length configurable\nTruncate descriptions to 500 characters\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.1/tubearchivistmetadata_1.2.1.0.zip", + "checksum": "cf68d169956f166a6ee68a06192651c2", + "timestamp": "2024-03-14T21:50:00Z" + }, + { + "version": "1.2.0.0", + "changelog": "Add episodes and series overview\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.2.0/tubearchivistmetadata_1.2.0.0.zip", + "checksum": "75812a4464bf68c43fb9dcdb74d924e3", + "timestamp": "2024-03-14T20:00:00Z" + }, + { + "version": "1.1.1.0", + "changelog": "Handle empty tags for videos and channels\nFix URL by removing trailing slash for images\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.1/tubearchivistmetadata_1.1.1.0.zip", + "checksum": "84ce752ce662e834690512c88ba48664", + "timestamp": "2024-03-14T16:35:00Z" + }, + { + "version": "1.1.0.0", + "changelog": "Fix field name and add placeholders\nFix URL in logs after redirection\nAdd schema to TubeArchivist URL if not present in settings\nFix a particular case\nLog configuration settings at initialization\nSanitize URLs\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.1.0/tubearchivistmetadata_1.1.0.0.zip", + "checksum": "de4b6562973b7f75b6afe3a441bb0e19", + "timestamp": "2024-03-13T15:02:00Z" + }, + { + "version": "1.0.0.0", + "changelog": "First release\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/tubearchivist/tubearchivist-jf-plugin/releases/download/v1.0.0/tubearchivistmetadata_1.0.0.0.zip", + "checksum": "444f8980671de494b1875ee7d1657bcf", + "timestamp": "2024-03-11T16:02:00Z" + } + ] + } +] \ No newline at end of file diff --git a/plugin_manifests/2025.03.30/danieladov.json b/plugin_manifests/2025.03.30/danieladov.json new file mode 100644 index 0000000..6537476 --- /dev/null +++ b/plugin_manifests/2025.03.30/danieladov.json @@ -0,0 +1,226 @@ +[ + { + "guid": "f21bbed8-3a97-4d8b-88b2-48aaa65427cb", + "name": "Merge Versions", + "description": "Jellyfin Merge Versions plugin is a plugin that automatically groups every repeated movie\n", + "overview": "Automatically merge repeated movies", + "owner": "danieladov", + "imageUrl": "https://raw.githubusercontent.com/danieladov/JellyfinPluginManifest/master/resources/MergeVersions/thumb.png", + "category": "General", + "versions": [ + { + "version": "10.10.0.1", + "changelog": "Merge only when new versions available", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.10.0.1/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "5fbf126b93a2f8cf2dd817c0c60fa424", + "timestamp": "2025-01-05T20:15:00" + }, + { + "version": "10.9.1.1", + "changelog": "Bug fixes", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.9.1.1/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "79f745e3e35370754f77df1a303e0344", + "timestamp": "2024-05-15T16:45:00" + }, + { + "version": "10.9.1.0", + "changelog": "Add compatibility with 10.9.1", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.9.1.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "9d331c5f325b2300afb5bd95934cae0a", + "timestamp": "2024-05-14T16:30:00" + }, + { + "version": "10.8.0.2", + "changelog": "Fix splitting not taking into account excluded libraries", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.8.0.2/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "a5f050230cce782a6be24e5b6f048593", + "timestamp": "2023-04-20T16:35:00" + }, + { + "version": "10.8.0.1", + "changelog": "Update to Jellyfin 10.8.0-beta1\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.8.0.1/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "6aca911b69ab2f4a4e46331e53a48c81", + "timestamp": "2022-04-11T15:39:00" + }, + { + "version": "10.8.0.0", + "changelog": "Update to Jellyfin 10.8.0\n", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.8.0.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "e279e18a0687d041a21ab7f3cfc7ec42", + "timestamp": "2022-01-27T22:34:50" + }, + { + "version": "10.7.7.0", + "changelog": "Better detection and optimitation\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.7.7.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "00818cbc89b8d596cd5a3962c5a8a9b0", + "timestamp": "2021-12-02T23:35:50" + }, + { + "version": "10.7.0.2", + "changelog": "Fix error where movies were merged only by year\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.7.0.2/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "9f94b5248e944bed2a965c251663ab97", + "timestamp": "2021-02-02T02:45:58" + }, + { + "version": "10.7.0", + "changelog": "Update to 10.7.0\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/10.7.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "95e271b58302f4372dd4551c44da618b", + "timestamp": "2020-12-05T13:45:58" + }, + { + "version": "1.4.0.0", + "changelog": "New option to exclude paths from being merge\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/1.4.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "2b2bb5d442d14ca61c571c7b638bd5e3", + "timestamp": "2020-10-30T21:45:58" + }, + { + "version": "1.3.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-mergeversions/releases/download/1.3.0/Jellyfin-Plugin-MergeVersions.zip", + "checksum": "4dd5f0b36f8236512af651df8ac8855f", + "timestamp": "2020-09-01T14:30:58" + } + ] + }, + { + "guid": "afe1de9c-63e4-4692-8d8c-7c964df19eb2", + "name": "Theme Songs", + "description": "Jellyfin Theme Songs plugin is a plugin that automatically downloads every theme song of your tv shows library\n", + "overview": "Automatically downloads theme songs of your tv shows", + "owner": "danieladov", + "category": "General", + "versions": [ + { + "version": "10.10.0.1", + "changelog": "Update to 10.10.0", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.10.0.1/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "34d2370da17915fa6312922c91bb6dcc", + "timestamp": "2024-11-01T20:30:00" + }, + { + "version": "10.9.2.10", + "changelog": "Update to 10.9.0", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.9.2.0/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "3cc40202c4d77d17dc6bf47ff5468bae", + "timestamp": "2024-05-24T20:30:00" + }, + { + "version": "10.8.0.1", + "changelog": "Update to Jellyfin 10.8.0-beta1", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.8.0.1/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "dca8ba0e26e85439a462d6189f663f0e", + "timestamp": "2022-04-11T15:15:58" + }, + { + "version": "10.8.0.0", + "changelog": "Update to Jellyfin 10.8.0", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.8.0.0/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "94572e861c7043a9241dd91987692513", + "timestamp": "2022-02-07T18:00:58" + }, + { + "version": "10.7.0.2", + "changelog": "Fix Ilogger error", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.7.0.2/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "9751a00ff9d6de8ca8693c6a448a9f70", + "timestamp": "2021-01-31T03:30:58" + }, + { + "version": "10.7.0", + "changelog": "Update to 10.7.0", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/10.7.0/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "de5a644c7fc8b804277fc6a3fd761475", + "timestamp": "2020-12-05T13:30:58" + }, + { + "version": "1.1.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-themesongs/releases/download/1.0.0/Jellyfin-Plugin-ThemeSongs.zip", + "checksum": "34bc841aa50a34c69d473c7f58ed9885", + "timestamp": "2020-08-12T21:30:58" + } + ] + }, + { + "guid": "e9ca8b8e-ca6d-40e7-85dc-58e536df8eb3", + "name": "Skin Manager", + "description": "Skin manager helps you to download and install most popular skins for jellyfin\n", + "overview": "Skins for jellyfin", + "owner": "danieladov", + "imageUrl": "https://raw.githubusercontent.com/danieladov/jellyfin-plugin-skin-manager/master/src/img/thumb.png", + "category": "General", + "versions": [ + { + "version": "2.0.2.0", + "changelog": "Fix Version\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/2.0.2/Jellyfin-Plugin-SkinManager.zip", + "checksum": "74df0156b96ebcb678bc9ff973a7d4f0", + "timestamp": "2024-11-04T23:02:52" + }, + { + "version": "2.0.1", + "changelog": "Added Ultrachromic and few fixes\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/2.0.1/Jellyfin.Plugin.SkinManager.dll.zip", + "checksum": "7e0fb755bb579d2c4fa9a3ae733cf7ce", + "timestamp": "2022-06-14T12:02:52" + }, + { + "version": "2.0.0", + "changelog": "New custom skin editor\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/2.0.0/Jellyfin-Plugin-SkinManager.zip", + "checksum": "64672b424ca0ac7cd1f3b032eef40b55", + "timestamp": "2021-05-13T12:02:52" + }, + { + "version": "1.5.0.0", + "changelog": "[BETA] Options to preview and edit the skins\n", + "targetAbi": "10.7.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/1.5.0.0/Jellyfin-Plugin-SkinManager.zip", + "checksum": "2c479ab72de0f3391bad4da26f9b98d2", + "timestamp": "2020-12-11T22:02:52" + }, + { + "version": "1.4.0.0", + "changelog": "Skin versions support\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/1.4.0.0/Jellyfin-Plugin-SkinManager.zip", + "checksum": "10aaad6b203a97b05c8b73bd3de09590", + "timestamp": "2020-11-09T16:20:52" + }, + { + "version": "1.0.0.0", + "changelog": "changelog\n", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/danieladov/jellyfin-plugin-skin-manager/releases/download/1.0.0/Jellyfin-Plugin-SkinManager.zip", + "checksum": "15305155f67ad72dbfa4082aa6ef5c3c", + "timestamp": "2020-11-08T18:14:58" + } + ] + } +] diff --git a/plugin_manifests/2025.03.30/dkanada.json b/plugin_manifests/2025.03.30/dkanada.json new file mode 100644 index 0000000..5bdaaf6 --- /dev/null +++ b/plugin_manifests/2025.03.30/dkanada.json @@ -0,0 +1,28 @@ +[ + { + "guid": "9482dc3b-48aa-4d3b-8224-9128d1e8e0cd", + "name": "Intros", + "overview": "Display flashy intros before movies and other videos", + "description": "Select a flashy video from prerolls.video to run before any video content.", + "owner": "dkanada", + "category": "Other", + "versions": [ + { + "version": "1.3.1.0", + "changelog": "- update build process and migrate to github for hosting", + "targetAbi": "10.6.0.0", + "sourceUrl": "https://github.com/dkanada/jellyfin-plugin-intros/releases/download/v1.3.1/jellyfin-plugin-intros-v1.3.1.zip", + "checksum": "689cf1b5a9f8adb1a31750da16623996", + "timestamp": "2021-06-02T00:00:00Z" + }, + { + "version": "1.3.2.0", + "changelog": "- fix issue with local trailers and update dependencies", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/dkanada/jellyfin-plugin-intros/releases/download/v1.3.2/jellyfin-plugin-intros-v1.3.2.zip", + "checksum": "14c876026bd71c2b8d11196fab0df527", + "timestamp": "2022-09-14T00:00:00Z" + } + ] + } +] diff --git a/plugin_manifests/2025.03.30/jellyscrub.json b/plugin_manifests/2025.03.30/jellyscrub.json new file mode 100644 index 0000000..446d3d3 --- /dev/null +++ b/plugin_manifests/2025.03.30/jellyscrub.json @@ -0,0 +1,125 @@ +[ + { + "guid": "a84a949d-4b73-4099-aacb-8341b4da17ba", + "name": "Jellyscrub", + "overview": "Create BIF files for media to be used for trickplay scrubbing previews.", + "description": "Smooth mouse-over video scrubbing previews.", + "owner": "Nick", + "category": "General", + "imageUrl": "https://raw.githubusercontent.com/nicknsy/jellyscrub/main/logo/logo.png", + "versions": [ + { + "version": "2.1.0.0", + "changelog": "- support Jellyfin 10.10\n- allow plugin config to be edited on conversion page\n- other minor improvements", + "targetAbi": "10.10.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/2.1.0.0/Jellyscrub-v2.1.0.0.zip", + "checksum": "8e89428d30211d67d9d401de763213d7", + "timestamp": "2024-11-10T21:00:00Z" + }, + { + "version": "2.0.0.0", + "changelog": "- support 10.9.0\n- allow for conversion of BIF files to native format\n- disable all other functionality", + "targetAbi": "10.9.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/2.0.0.0/Jellyscrub-v2.0.0.0.zip", + "checksum": "dac456c5dac7f60fd7949afe7f1d0a13", + "timestamp": "2024-03-30T18:30:00Z" + }, + { + "version": "1.1.1.0", + "changelog": "- fix on webOS", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.1.1.0/Jellyscrub-v1.1.1.0.zip", + "checksum": "46db94750bd208ccd8d43916156f98f8", + "timestamp": "2023-03-30T05:02:00Z" + }, + { + "version": "1.1.0.0", + "changelog": "- minor bug fixes/improvements", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.1.0.0/Jellyscrub-v1.1.0.0.zip", + "checksum": "86ac6bd95ec8c52898e1b0d660bda6b1", + "timestamp": "2023-03-13T07:44:00Z" + }, + { + "version": "1.0.0.9", + "changelog": "- add -an -sn to ffmpeg command to stop audio/subtitle transcoding", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.9/Jellyscrub-v1.0.0.9.zip", + "checksum": "80b4038a54fd0d8c47f27a8c7b7edd67", + "timestamp": "2023-02-15T11:27:00Z" + }, + { + "version": "1.0.0.8", + "changelog": "- HW acceleration (decode, filters, encode)\n- DV tonemapping\n- other small bug fixes", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.8/Jellyscrub-v1.0.0.8.zip", + "checksum": "49edf864886a9fe3075fd09a15ceaa1c", + "timestamp": "2023-02-15T09:13:00Z" + }, + { + "version": "1.0.0.7", + "changelog": "- include a .ignore file in the trickplay folder\n- center scrubbing timestamp\n- add back process priority setting", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.7/Jellyscrub-v1.0.0.7.zip", + "checksum": "3deb14e4d1f2a811994c5dcd14843371", + "timestamp": "2022-11-26T12:25:00Z" + }, + { + "version": "1.0.0.6", + "changelog": "- add non-blocking option for generations triggered by library scans\n- fix threads option\n- bug fixes", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.6/Jellyscrub-v1.0.0.6.zip", + "checksum": "dd7bd697ae4cd0dc8209cc6a470fcba3", + "timestamp": "2022-08-26T20:37:00Z" + }, + { + "version": "1.0.0.5", + "changelog": "- fix TV shows not having trickplay after first episode\n- handle Jellyfin base path configuration", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.5/Jellyscrub-v1.0.0.5.zip", + "checksum": "fd00e3a08f876a9e9ff7e03ac578bb17", + "timestamp": "2022-08-25T14:40:00Z" + }, + { + "version": "1.0.0.4", + "changelog": "- catch permission exception on setting process priority", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.4/Jellyscrub-v1.0.0.4.zip", + "checksum": "c3680efb82635ad96203f670212d0364", + "timestamp": "2022-08-04T11:30:00Z" + }, + { + "version": "1.0.0.3", + "changelog": "- maybe fixed hdr tonemapping\n- style trickplay images to look better\n- added option to set threads\n- added option to set process priority\n- other bug fixes", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.3/Jellyscrub-v1.0.0.3.zip", + "checksum": "a18c7dab567ac2919e65f98589991db7", + "timestamp": "2022-08-04T02:11:00Z" + }, + { + "version": "1.0.0.2", + "changelog": "- fix issue causing previews to disappear after clicking certain playback controls", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.2/Jellyscrub-v1.0.0.2.zip", + "checksum": "4cd7f3625ecc029f208083a1c5929d94", + "timestamp": "2022-08-02T17:15:00Z" + }, + { + "version": "1.0.0.1", + "changelog": "- fix media encoder not using configured interval\n- add more client-side null checks\n- allow .bif extension on GetBIF endpoint", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.1/Jellyscrub-v1.0.0.1.zip", + "checksum": "d4d67d4d5cb659072afd98c5c8cdf5d9", + "timestamp": "2022-08-01T11:36:00Z" + }, + { + "version": "1.0.0.0", + "changelog": "Initial release", + "targetAbi": "10.8.0.0", + "sourceUrl": "https://github.com/nicknsy/jellyscrub/releases/download/1.0.0.0/Jellyscrub-v1.0.0.0.zip", + "checksum": "72340430bdb7dab0a223d9d40c3c676f", + "timestamp": "2022-07-31T20:09:00Z" + } + ] + } +] diff --git a/plugin_manifests/2025.03.30/k-matti.json b/plugin_manifests/2025.03.30/k-matti.json new file mode 100644 index 0000000..66cdddd --- /dev/null +++ b/plugin_manifests/2025.03.30/k-matti.json @@ -0,0 +1,46 @@ +[ + { + "guid": "47816a0e-e69c-44e0-ac7e-f37b134e088f", + "name": "SMS notification", + "description": "Sends sms notifications via selected service.", + "overview": "Sends sms notifications", + "owner": "k-matti", + "category": "Notifications", + "versions": [ + { + "version": "1.0.2.0", + "changelog": "fixes", + "targetAbi": "10.7.2.0", + "sourceUrl": "https://github.com/k-matti/jellyfin-plugin-sms/releases/download/v1.0.2.0/sms-notifications_1.0.2.0.zip", + "checksum": "8dbb6633bdd0f87048c43c77267e9d3c", + "timestamp": "0001-01-01T00:00:00.0000000Z" + }, + { + "version": "1.0.1.0", + "changelog": "initial release", + "targetAbi": "10.7.2.0", + "sourceUrl": "https://github.com/k-matti/jellyfin-plugin-sms/releases/download/v1.0.1.0/sms-notifications_1.0.1.0.zip", + "checksum": "9c33e86071206d6d142d58579e4de825", + "timestamp": "0001-01-01T00:00:00.0000000Z" + } + ] + }, + { + "guid": "6f9a84bf-cb2f-42c3-9f07-4037956f9a02", + "name": "NapiSub", + "description": "Download subtitles for Movies and TV Shows using napiprojekt.pl database", + "overview": "Polish subtitles downloader", + "owner": "k-matti", + "category": "Metadata", + "versions": [ + { + "version": "1.0.1.0", + "changelog": "initial release", + "targetAbi": "10.7.2.0", + "sourceUrl": "https://github.com/k-matti/jellyfin-plugin-napi/releases/download/v1.0.1.0/napisub_1.0.1.0.zip", + "checksum": "7e462432e43267952de5ef26a1df431c", + "timestamp": "0001-01-01T00:00:00.0000000Z" + } + ] + } +] diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..0f03b4b --- /dev/null +++ b/readme.md @@ -0,0 +1,207 @@ +# Jellyfin Docker Setup with Hardware Acceleration + +This repository contains Docker configurations for running Jellyfin with hardware-accelerated transcoding support for various GPU types. + +## Features + +- Hardware-accelerated transcoding support for: + - Intel ARC GPUs + - Intel integrated graphics (iGPU) + - NVIDIA GPUs + - AMD GPUs +- HDR to SDR tonemapping +- Configurable environment variables +- Optimized for performance + +## Prerequisites + +- Docker and Docker Compose +- One of the supported GPUs +- Linux host system (recommended) +- Proper GPU drivers installed + +## Quick Start + +1. Create a new directory and download the required files: + + ```bash + # Create and enter directory + mkdir jellyfin-docker && cd jellyfin-docker + + # Download base docker-compose.yml + curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/docker-compose.yml + + # Download sample.env + curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/sample.env + + # Download transcoding file for your GPU: + + # For Intel ARC: + curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-arc.transcoding.yml + + # OR for Intel iGPU: + curl -O https://raw.githubusercontent.com/yourusername/jellyfin-docker/main/intel-igpu.transcoding.yml + ``` + +2. Copy the sample environment file: + ```bash + cp sample.env .env + ``` + +3. Edit the `.env` file with your settings: + ```bash + nano .env + ``` + +4. Verify your GPU setup: + ```bash + # Check render group ID + getent group render | cut -d: -f3 + + # Verify GPU devices + ls -l /dev/dri + ``` + +5. Start Jellyfin with the appropriate configuration: + ```bash + # For Intel ARC + docker compose -f docker-compose.yml -f intel-arc.transcoding.yml up -d + + # For Intel iGPU + docker compose -f docker-compose.yml -f intel-igpu.transcoding.yml up -d + ``` + +6. Access Jellyfin at: + - HTTP: http://localhost:8096 + - HTTPS: https://localhost:8920 + +## Quick Start + +### Useful Commands + +List only named Docker volumes: +```bash +docker volume ls | grep -v "^local.*[0-9a-f]\{64\}$" +``` + +This will show: +``` +DRIVER VOLUME NAME +local cifs-volume_downloads +local cifs-volume_music +local cifs-volume_videos +local cifs_immich +local portainer_data +``` + +## Hardware Acceleration Setup + +### Verify GPU Access +```bash +# Check render group ID +getent group render | cut -d: -f3 + +# Verify GPU devices +ls -l /dev/dri +``` +### Check Driver Installation +For Intel +```bash +vainfo +``` +For NVIDIA +```bash +nvidia-smi +``` +For AMD +```bash +rocm-smi +``` + +## Configuration Files + +- `docker-compose.yml`: Base configuration +- `intel-arc.transcoding.yml`: Intel ARC specific settings +- `intel-igpu.transcoding.yml`: Intel iGPU specific settings +- `.env`: Environment variables (copy from sample.env) +- `tonemapping.md`: Detailed explanation of HDR tonemapping options + +### docker-compose.yml +Base configuration file that includes: +- Container name and image settings +- Volume mappings for media, config, and cache +- Network ports (HTTP/HTTPS) +- Basic environment variables + +### intel-arc.transcoding.yml +Intel ARC GPU specific settings: +- Hardware acceleration configuration +- GPU device mappings +- Optimized tonemapping settings +- Intel ARC specific drivers and libraries + +### intel-igpu.transcoding.yml +Intel integrated GPU settings: +- Hardware acceleration for QuickSync +- iGPU device mappings +- Compatible tonemapping settings +- Required driver configurations + +### .env +Environment variables file containing: +- Port configurations (8096 for HTTP, 8920 for HTTPS) +- Domain settings for remote access +- Timezone configuration +- Render group ID for GPU access +- Cache and config directory paths + +### tonemapping.md +Comprehensive guide covering: +- What tonemapping is and why it's needed +- Available algorithms and their use cases +- Performance implications +- Hardware-specific recommendations +- Troubleshooting tips + +## Environment Variables + +See `sample.env` for available options: +- `JELLYFIN_PORT_HTTP`: HTTP port (default: 8096) +- `JELLYFIN_PORT_HTTPS`: HTTPS port (default: 8920) +- `DOMAIN`: Your domain name +- `TZ`: Timezone +- `RENDER_GID`: Render group ID (get with `getent group render`) + +## Tonemapping + +For detailed information about HDR tonemapping options, see [tonemapping.md](Docs/tonemapping.md) + +## Troubleshooting + +1. **Hardware Acceleration Not Working** + - Verify GPU devices are properly mapped + - Check render group ID matches your system + - Ensure proper drivers are installed + +2. **Performance Issues** + - Try different tonemapping algorithms + - Check CPU/GPU usage + - Limit concurrent transcoding sessions + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. + +## Acknowledgments + +- [Jellyfin Project](https://jellyfin.org/) +- [Docker](https://www.docker.com/) +- Hardware acceleration guides from various sources + +## Support + +If you encounter any issues, please open an issue on GitHub. \ No newline at end of file diff --git a/sample.env b/sample.env new file mode 100644 index 0000000..cc7f0b5 --- /dev/null +++ b/sample.env @@ -0,0 +1,9 @@ +# Jellyfin Configuration +JELLYFIN_PORT_HTTP=8096 +JELLYFIN_PORT_HTTPS=8920 +DOMAIN=https://yourdomain.com +TZ=America/Los_Angeles + +# Hardware Transcoding +# Get this value by running: getent group render | cut -d: -f3 +RENDER_GID=993 diff --git a/setup_jellyfin.sh b/setup_jellyfin.sh new file mode 100644 index 0000000..eee68e8 --- /dev/null +++ b/setup_jellyfin.sh @@ -0,0 +1,297 @@ +#!/bin/bash + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# GitHub repository information +REPO_URL="https://raw.githubusercontent.com/yourusername/jellyfin-docker/main" + +echo -e "${GREEN}Jellyfin Docker Setup Script${NC}" +echo "--------------------------------" + +# Function to detect GPU +detect_gpu() { + # Check for NVIDIA + if command -v nvidia-smi &> /dev/null; then + echo "nvidia" + return + fi + + # Check for AMD GPU + if lspci | grep -i "vga.*amd" &> /dev/null; then + if lspci | grep -i "vga.*radeon" &> /dev/null; then + echo "amd-gpu" + else + echo "amd-apu" + fi + return + fi + + # Check for Intel + if lspci | grep -i "vga.*intel" &> /dev/null; then + if [ -d "/sys/class/drm/card0/device/driver/module/drivers/pci:intel_arc" ]; then + echo "intel-arc" + else + echo "intel-igpu" + fi + return + fi + + echo "none" +} + +# Function to download file +download_file() { + local file=$1 + echo -e "${YELLOW}Downloading ${file}...${NC}" + curl -sSL "${REPO_URL}/${file}" -o "${INSTALL_DIR}/${file}" +} + +# Set installation directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DEFAULT_INSTALL_DIR="$SCRIPT_DIR" + +# Ask for installation directory with better validation +setup_install_directory() { + echo -e "${YELLOW}Where would you like to install Jellyfin?${NC}" + echo -e "Default: ${GREEN}${DEFAULT_INSTALL_DIR}${NC}" + read -p "Install directory [$DEFAULT_INSTALL_DIR]: " INSTALL_DIR + INSTALL_DIR=${INSTALL_DIR:-$DEFAULT_INSTALL_DIR} + + # Check if directory exists and has existing configuration + if [ -f "${INSTALL_DIR}/docker-compose.yml" ] || \ + [ -f "${INSTALL_DIR}/docker-compose.override.yml" ] || \ + [ -f "${INSTALL_DIR}/.env" ]; then + echo -e "${RED}Warning: Jellyfin files already exist in ${INSTALL_DIR}${NC}" + read -p "Do you want to proceed and potentially overwrite? (y/N) " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Aborting installation" + exit 1 + fi + fi + + # Create install directory if it doesn't exist + mkdir -p "$INSTALL_DIR" + + # Check if directory is writable + if [ ! -w "$INSTALL_DIR" ]; then + echo -e "${RED}Error: Directory ${INSTALL_DIR} is not writable${NC}" + exit 1 + fi +} + +setup_install_directory + +# Check for existing docker-compose.yml +if [ -f "${INSTALL_DIR}/docker-compose.yml" ]; then + echo -e "${RED}Warning: docker-compose.yml already exists in ${INSTALL_DIR}${NC}" + read -p "Do you want to overwrite it? (y/N) " -n 1 -r + echo + if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo "Aborting installation" + exit 1 + fi +fi + +# Set up transcode cache +echo -e "${YELLOW}Where would you like to store the transcode cache?${NC}" +read -p "Transcode cache directory [/mnt/transcode]: " TRANSCODE_DIR +TRANSCODE_DIR=${TRANSCODE_DIR:-/mnt/transcode} + +# Create transcode directory +sudo mkdir -p "$TRANSCODE_DIR" +sudo chown -R $USER:$USER "$TRANSCODE_DIR" + +# Detect GPU +echo -e "${YELLOW}Detecting GPU...${NC}" +GPU_TYPE=$(detect_gpu) + +case $GPU_TYPE in + "nvidia") + echo -e "${GREEN}NVIDIA GPU detected${NC}" + TRANSCODE_FILE="nvidia-transcoding.yml" + ;; + "amd-gpu") + echo -e "${GREEN}AMD dedicated GPU detected${NC}" + TRANSCODE_FILE="amd-gpu.transcoding.yml" + ;; + "amd-apu") + echo -e "${GREEN}AMD APU detected${NC}" + TRANSCODE_FILE="amd-apu.transcoding.yml" + ;; + "intel-arc") + echo -e "${GREEN}Intel ARC detected${NC}" + TRANSCODE_FILE="intel-arc.transcoding.yml" + ;; + "intel-igpu") + echo -e "${GREEN}Intel integrated GPU detected${NC}" + TRANSCODE_FILE="intel-igpu.transcoding.yml" + ;; + *) + echo -e "${RED}No supported GPU detected${NC}" + echo "CPU transcoding will be used" + TRANSCODE_FILE="intel-igpu.transcoding.yml" # Default fallback + ;; +esac + +# Download required files +download_file "docker-compose.yml" +download_file "sample.env" +download_file "$TRANSCODE_FILE" +download_file "tonemapping.md" + +# Create .env file from sample +cp "${INSTALL_DIR}/sample.env" "${INSTALL_DIR}/.env" + +# Update .env file with transcode path +sed -i "s|TRANSCODE_CACHE=.*|TRANSCODE_CACHE=${TRANSCODE_DIR}|g" "${INSTALL_DIR}/.env" + +# Get render group ID +RENDER_GID=$(getent group render | cut -d: -f3) +if [ ! -z "$RENDER_GID" ]; then + sed -i "s|RENDER_GID=.*|RENDER_GID=${RENDER_GID}|g" "${INSTALL_DIR}/.env" +fi + +# Check for Docker and Docker Compose +check_prerequisites() { + echo -e "${YELLOW}Checking prerequisites...${NC}" + + if ! command -v docker &> /dev/null; then + echo -e "${RED}Docker is not installed${NC}" + exit 1 + fi + + if ! docker compose version &> /dev/null; then + echo -e "${RED}Docker Compose is not installed${NC}" + exit 1 + fi +} + +# Run prerequisite checks +check_prerequisites + +# Network configuration function +configure_network() { + echo -e "${YELLOW}Configuring network...${NC}" + + # Ask about host network mode + read -p "Use host network mode? (y/N) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + USE_HOST_NETWORK=true + else + # Check for port conflicts + check_port_conflict 8096 + check_port_conflict 8920 + check_port_conflict 1900 "DLNA" + fi + + # List available networks + echo -e "${YELLOW}Available Docker networks:${NC}" + docker network ls + + read -p "Use specific Docker network? (y/N) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + select_docker_network + fi +} + +# Function to list available volumes +list_volumes() { + echo "Available volumes:" + docker volume ls | grep -v "^local.*[0-9a-f]\{64\}$" +} + +# Function to select media volume +select_media_volume() { + local volumes=$(docker volume ls --format "{{.Name}}" | grep -v "^[0-9a-f]\{64\}$") + if [ -z "$volumes" ]; then + echo -e "${RED}No named volumes found${NC}" + return 1 + fi + + echo "Available volumes:" + select volume in $volumes "Create new" "Skip"; do + case $volume in + "Create new") + configure_new_volume + break + ;; + "Skip") + break + ;; + *) + if [ -n "$volume" ]; then + echo "Selected volume: $volume" + add_volume_to_override "$volume" + break + fi + ;; + esac + done +} + +# Function to add volume to override file +add_volume_to_override() { + local volume=$1 + if [ ! -f "${INSTALL_DIR}/docker-compose.override.yml" ]; then + cp "${INSTALL_DIR}/docker-compose.override.yml.sample" "${INSTALL_DIR}/docker-compose.override.yml" + fi + + # Add volume if not already present + if ! grep -q " $volume:" "${INSTALL_DIR}/docker-compose.override.yml"; then + sed -i "/volumes:/a\ $volume:\n external: true" "${INSTALL_DIR}/docker-compose.override.yml" + fi +} + +# Configure volumes +configure_volumes() { + echo -e "${YELLOW}Checking available volumes...${NC}" + list_volumes + + read -p "Would you like to use existing volumes? (y/N) " -n 1 -r + echo + if [[ $REPLY =~ ^[Yy]$ ]]; then + select_media_volume + fi +} + +# Run volume configuration +configure_volumes + +# Collect required environment variables +collect_env_variables() { + echo -e "${YELLOW}Configuring environment variables...${NC}" + + # Only ask if not already set in .env + if [ ! -f "${INSTALL_DIR}/.env" ] || ! grep -q "DOMAIN=" "${INSTALL_DIR}/.env"; then + read -p "Domain name for Jellyfin: " DOMAIN + fi + + if [ ! -f "${INSTALL_DIR}/.env" ] || ! grep -q "JELLYFIN_ADMIN_USER=" "${INSTALL_DIR}/.env"; then + read -p "Jellyfin admin username: " ADMIN_USER + fi + + # Add password collection with masking + if [ ! -f "${INSTALL_DIR}/.env" ] || ! grep -q "JELLYFIN_ADMIN_PASSWORD=" "${INSTALL_DIR}/.env"; then + read -s -p "Jellyfin admin password: " ADMIN_PASSWORD + echo + fi +} + +echo -e "${GREEN}Installation complete!${NC}" +echo "--------------------------------" +echo -e "Files installed in: ${YELLOW}${INSTALL_DIR}${NC}" +echo -e "Transcode cache: ${YELLOW}${TRANSCODE_DIR}${NC}" +echo -e "GPU detected: ${YELLOW}${GPU_TYPE}${NC}" +echo +echo "Next steps:" +echo "1. Edit ${INSTALL_DIR}/.env to configure your settings" +echo "2. Start Jellyfin with:" +echo -e "${YELLOW} cd ${INSTALL_DIR}${NC}" +echo -e "${YELLOW} docker compose -f docker-compose.yml -f ${TRANSCODE_FILE} up -d${NC}" diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..9ef07c7 --- /dev/null +++ b/test.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +# Define the JSON file name +json_file="./plugin_manifests/2025.03.27/dkanada.json" # Let's test with dkanada.json first + +# Define the search term +search_term="$1" +search_term_lower=$(echo "$search_term" | tr '[:upper:]' '[:lower:]') + +# Check if a search term is provided +if [ -z "$search_term" ]; then + echo "Usage: $0 " + exit 1 +fi + +# Use jq to search the specified fields and get the latest version +jq -r --arg term "$search_term_lower" ' + def get_field($obj; $field): + if ($obj | has($field)) and ($obj[$field] | type == "string") then + $obj[$field] | ascii_downcase + else + "" + end; + + .[] | select( + (get_field(.; "category") | contains($term)) or + (get_field(.; "description") | contains($term)) or + (get_field(.; "name") | contains($term)) or + (get_field(.; "overview") | contains($term)) or + (get_field(.; "owner") | contains($term)) + ) | + { + name: .name, + latest_version: (.versions | sort_by(.timestamp) | last | {version, targetAbi}) + } +' "$json_file" \ No newline at end of file diff --git a/thoughts.md b/thoughts.md new file mode 100644 index 0000000..d20ac2f --- /dev/null +++ b/thoughts.md @@ -0,0 +1,44 @@ +docker-compose.yml should be a super simple/generic file. It should be treated as static, never changing. +docker-compose.override.yml should be a file that has the ports, network, and environment variables +The .env file should be a file that has the environment variables (sensitive information) +The docker_files directory should have the yml files for the different GPUs for hardware transcoding + +setup_jellyfin.sh will first check before doing anything else + 1. Check if docker is installed + 2. Check if docker-compose is installed + 3. Ask where to install jellyfin docker files (assume it will be in the same location as the setup script, but ask if it should be in a different directory. Set value install_dir) + 4. Check if jellyfin docker files are already installed + a. is the docker-compose.yml file in the install location ($install_dir) ? + b. is the docker-compose.override.yml file in the install location ($install_dir) ? + c. Does the .env file exist in the install location ($install_dir) ? +4. Get hardware information + a. Check if GPU is available and if it is NVIDIA, AMD, or Intel. Is it integrated or dedicated? Older or newer? + b. Run ```getent group render | cut -d: -f3``` to get the render group ID + c. Is the appropriate yml file for the GPU in the install location ($install_dir), if not copy it? + 5. Get requested information + a. Domain name (if not already set in the .env file) + b. Email address (if not already set in the .env file) + c. Jellyfin admin username (if not already set in the .env file) + d. Jellyfin admin password (if not already set in the .env file) +6. Get network information + a. Ask if Jellyfin should be configured to use the host network (if not already set in the docker-compose.override.yml file) + b. If NOT using the host network, check if some other service is using ports 80, 443, 8080, 8920, 8096, DLNA, or 8096, if so ask which ports to use instead, offer to change the ports in the docker-compose.override.yml file + c. If using the host network, check if some other service is using ports 80 or 443, if so ask which ports to use instead, offer to change the ports in the docker-compose.override.yml file + d. Ask if Jellyfin will need to get SSL certs or if it will be running behind a reverse proxy like nginx Proxy Manager, Caddy, or Traefik + e. Some other service might already be using the DLNA port, ask if Jellyfin should use a different port, or not include DLNA in the docker-compose.override.yml file + f. Ask if Jellyfin should use a specific docker network, if so, list the networks for the user to choose. Add options to add a network, or to do manually do later. + 7. Add Volumes + a. If volumes are not configured in the override file, do a ```docker volume ls | grep -v "^local.*[0-9a-f]\{64\}$"``` to list the volumes. If there are volumes listed, ask if they should be used, if so, add them to the docker-compose.override.yml file + ```yml + volumes: + $volume_name: + external: true + `` + Also add option to add path as a volume + Also add option to do manually do later. + 8. Check if jellyfin is configured to use the correct volumes + 9. Check if jellyfin is configured to use the correct environment variables + 10. Check if jellyfin is configured to use the correct transcoding settings + 11. Check if jellyfin is configured to use the correct SSL settings (if not behind a reverse proxy) + 12. Check if jellyfin is configured to use the correct DLNA settings + 13. Check if jellyfin is configured to use the correct transcoding settings \ No newline at end of file