JBOPS/plex_theme_songs.py

40 lines
1.2 KiB
Python
Raw Normal View History

'''
Download theme songs from Plex TV Shows. Theme songs are mp3 and named by shows as displayed by Plex.
Songs are saved in a 'Theme Songs' directory located in script's path.
'''
from plexapi.server import PlexServer
# pip install plexapi
import os
import re
import urllib
## Edit ##
PLEX_URL = 'http://localhost:32400'
PLEX_TOKEN = 'xxxxx'
TV_LIBRARY = 'TV Shows' # Name of your TV Show library
## /Edit ##
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
# Theme Songs url
themes_url = 'http://tvthemes.plexapp.com/{}.mp3'
# Create /Theme Songs/ directory in same path as script.
out_path = os.path.join(os.path.dirname(__file__), 'Theme Songs')
if not os.path.isdir(out_path):
os.mkdir(out_path)
# Get episodes from TV Shows
for show in plex.library.section(TV_LIBRARY).all():
# Remove special characters from name
filename = '{}.mp3'.format(re.sub('\W+',' ', show.title))
# Set output path
theme_path = os.path.join(out_path, filename)
# Get tvdb_if from first episode, no need to go through all episodes
tvdb_id = show.episodes()[0].guid.split('/')[2]
# Download theme song to output path
urllib.urlretrieve(themes_url.format(tvdb_id), theme_path)