from plexapi.server import PlexServer
from plexapi.myplex import MyPlexAccount
def main():
account = MyPlexAccount('<username>', '<password>')
plex = account.resource('<servername>').connect()
seen = get_lines(u'seen.txt')
places = ['TV'] # library name
for place in places:
tv_shows = plex.library.section(place)
for show in tv_shows.all():
episodes = None
error_count = 0
while not episodes:
try:
episodes = show.episodes()
except:
error_count +=1
pass
if error_count > 10:
episodes = show.episodes()
time.sleep(2)
for video in episodes:
for part in video.iterParts():
filename = part.file
##########
## if re.search(<matchregex>,filename,flags=reI):
## video.addLabel('<label>')
###################################
### section for logging history ###
###################################
if video.isWatched:
log(u'%s\n' % filename,u'seen.txt')
###################################
### section for restoring status ###
###################################
if filename in seen:
video.markWatched()
def log(text,file):
f3 = codecs.open(file, 'a', 'utf-8')
f3.write(text)
f3.close()
def get_lines(file):
# try:
f = codecs.open(file,'r', 'utf-8')
names = f.read().split('\n')
f.close()
f = True
while f:
try:
names.remove('')
except:
f = False
pass
# except:
# names = []
return names
if __name__ == '__main__':
main()