Skip to content

Instantly share code, notes, and snippets.

@grahams
Created March 29, 2023 16:54
Show Gist options
  • Save grahams/7e50361d9f4a52abe511fef2929f961a to your computer and use it in GitHub Desktop.
Save grahams/7e50361d9f4a52abe511fef2929f961a to your computer and use it in GitHub Desktop.
import sqlite3
from urllib.parse import unquote
from urllib.parse import parse_qs
dbPath = "./com.plexapp.plugins.library.db"
conn = sqlite3.connect(dbPath)
c = conn.cursor()
c2 = conn.cursor()
doviTitles = c.execute('''SELECT metadata_items.title, media_items.id, media_streams.extra_data FROM media_items
INNER JOIN metadata_items ON media_items.metadata_item_id=metadata_items.id
INNER JOIN media_streams ON media_items.id=media_streams.media_item_id
WHERE media_streams.extra_data LIKE "%DOVIBL%"''')
for part in doviTitles:
title = part[0]
id = part[1]
extras = unquote(part[2])
extraDict = parse_qs(extras)
doviProfile = extraDict['ma:DOVIProfile'][0]
doviCompat = extraDict['ma:DOVIBLCompatID'][0]
if(doviProfile == '5'):
print("Profile 5 has no HDR10 Fallback!!!")
print(f"Title: {title}")
print(f"DoVi Profile: {doviProfile}")
if((doviProfile == '8') and (doviCompat != '6') and (doviCompat != '1')):
print("This may not have HDR10 Fallback!!!")
print(f"Title: {title}")
print(f"DoVi Profile: {doviProfile}")
print(f"DoVi Compat: {doviCompat}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment