45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""
|
|
audiobooks /
|
|
-- book1 /
|
|
-- book1 - chapter1.mp3 ...
|
|
-- series1 /
|
|
-- book1 /
|
|
-- book1 - chapter1.mp3 ...
|
|
-- book2 /
|
|
-- book2 - chapter1.mp3 ...
|
|
|
|
In this structure use series1 to add all the series' books into a colleciton.
|
|
|
|
"""
|
|
|
|
from plexapi.server import PlexServer
|
|
|
|
PLEX_URL = ''
|
|
PLEX_TOKEN = ''
|
|
|
|
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
|
|
|
|
COLLECTIONAME = 'My Fav Series'
|
|
TOPLEVELFOLDERNAME = 'Series Name'
|
|
LIBRARYNAME = 'Audio Books'
|
|
|
|
abLibrary = plex.library.section(LIBRARYNAME)
|
|
|
|
albums = []
|
|
for folder in abLibrary.folders():
|
|
if folder.title == TOPLEVELFOLDERNAME:
|
|
for series in folder.allSubfolders():
|
|
trackKey = series.key
|
|
try:
|
|
track = plex.fetchItem(trackKey)
|
|
albumKey = track.parentKey
|
|
album = plex.fetchItem(albumKey)
|
|
albums.append(album)
|
|
except Exception:
|
|
# print('{} contains additional subfolders that were likely captured. \n[{}].'
|
|
# .format(series.title, ', '.join([x.title for x in series.allSubfolders()])))
|
|
pass
|
|
|
|
for album in list(set(albums)):
|
|
print('Adding {} to collection {}.'.format(album.title, COLLECTIONAME))
|
|
album.addCollection(COLLECTIONAME) |