Last active
April 16, 2024 02:47
-
-
Save blacktwin/f10e0a1e85af00e878963b4570a99054 to your computer and use it in GitHub Desktop.
Download theme songs from Plex TV Shows.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' | |
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) |
Seems like this does not work. The URLs it generates just lead to a 404.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is tvThemes down?
http://tvthemes.plexapp.com/61923.mp3