Create plex_theme_songs.py
https://gist.github.com/blacktwin/f10e0a1e85af00e878963b4570a99054
This commit is contained in:
39
plex_theme_songs.py
Normal file
39
plex_theme_songs.py
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
'''
|
||||||
|
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)
|
Reference in New Issue
Block a user