From: Mark Wooding Date: Thu, 17 Mar 2022 03:18:19 +0000 (+0000) Subject: mkm3u, flying-circus-restored.epls: Start at chapter 2. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/epls/commitdiff_plain/fd3b422fb6c809f7f08463d95538477380ddaeb9 mkm3u, flying-circus-restored.epls: Start at chapter 2. These titles have some 30 s of pre-broadcast stuff glued on the front. This is cool, but I don't usually want to watch it. --- diff --git a/flying-circus-restored.epls b/flying-circus-restored.epls index afab936..fe4d100 100644 --- a/flying-circus-restored.epls +++ b/flying-circus-restored.epls @@ -3,54 +3,54 @@ !vdir P/Monty Python's Flying Circus (restored) !season 1 -2 Whither Canada? -3 Sex and Violence -4 How to Recognize Different Types of Tree from Quite a Long Way Away -5 Owl-Stretching Time -6 Man's Crisis of Identity in the Latter Half of the Twentieth Century -2 It's the Arts -3 You're No Fun Any More -4 Full Frontal Nudity -5 The Ant, an Introduction -6 Untitled -2 The Royal Philharmonic Orchestra Goes to the Bathroom -3 The Naked Ant -4 Intermission +2,ch=2 Whither Canada? +3,ch=2 Sex and Violence +4,ch=2 How to Recognize Different Types of Tree from Quite a Long Way Away +5,ch=2 Owl-Stretching Time +6,ch=2 Man's Crisis of Identity in the Latter Half of the Twentieth Century +2,ch=2 It's the Arts +3,ch=2 You're No Fun Any More +4,ch=2 Full Frontal Nudity +5,ch=2 The Ant, an Introduction +6,ch=2 Untitled +2,ch=2 The Royal Philharmonic Orchestra Goes to the Bathroom +3,ch=2 The Naked Ant +4,ch=2 Intermission !season 2 -2 ‘Face the Press’ -3 The Spanish Inquisition -4 Déjà Vu -5 The Buzz Aldrin Show -6 Live from the Grill-o-mat -2 It's a Living -3 The Attila the Hun Show -4 Archæology Today -5 How to Recognize Different Parts of the Body -6 Scott of the Antarctic -2 How Not to Be Seen -3 Spam -4 Royal Episode 13 +2,ch=2 ‘Face the Press’ +3,ch=2 The Spanish Inquisition +4,ch=2 Déjà Vu +5,ch=2 The Buzz Aldrin Show +6,ch=2 Live from the Grill-o-mat +2,ch=2 It's a Living +3,ch=2 The Attila the Hun Show +4,ch=2 Archæology Today +5,ch=2 How to Recognize Different Parts of the Body +6,ch=2 Scott of the Antarctic +2,ch=2 How Not to Be Seen +3,ch=2 Spam +4,ch=2 Royal Episode 13 !season 3 -2 Whicker's World -3 Mr. and Mrs. Brian Norris' Ford Popular -4 The Money Programme -5 Blood, Devastation, Death, War and Horror -6 The All-England Summarize Proust Competition -2 The War Against Pornography -3 Salad Days -4 The Cycling Tour -5 The Nude Organist -6 E. Henry Tripshaw's Disease -2 Dennis Moore -3 A Book at Bedtime -4 Grandstand +2,ch=2 Whicker's World +3,ch=2 Mr. and Mrs. Brian Norris' Ford Popular +4,ch=2 The Money Programme +5,ch=2 Blood, Devastation, Death, War and Horror +6,ch=2 The All-England Summarize Proust Competition +2,ch=2 The War Against Pornography +3,ch=2 Salad Days +4,ch=2 The Cycling Tour +5,ch=2 The Nude Organist +6,ch=2 E. Henry Tripshaw's Disease +2,ch=2 Dennis Moore +3,ch=2 A Book at Bedtime +4,ch=2 Grandstand !season 4 -2 The Golden Age of Ballooning -3 Michael Ellis -4 Light Entertainment War -5 Hamlet -6 Mr Neutron -7 Party Political Broadcast +2,ch=2 The Golden Age of Ballooning +3,ch=2 Michael Ellis +4,ch=2 Light Entertainment War +5,ch=2 Hamlet +6,ch=2 Mr Neutron +7,ch=2 Party Political Broadcast diff --git a/mkm3u b/mkm3u index 046373f..2e2f5cd 100755 --- a/mkm3u +++ b/mkm3u @@ -94,31 +94,41 @@ class Source (object): me.used_titles = dict() me.used_chapters = set() me.nuses = 0 - def url(me, title = None, chapter = None): + def url(me, title = None, start_chapter = None, end_chapter = None): if title == "-": if me.TITLEP: raise ExpectedError("missing title number") - if chapter is not None: + if start_chapter is not None or end_chapter is not None: raise ExpectedError("can't specify chapter without title") suffix = "" elif not me.TITLEP: raise ExpectedError("can't specify title with `%s'" % me.fn) - elif chapter is None: + elif start_chapter is None: + if end_chapter is not None: + raise ExpectedError("can't specify end chapter without start chapter") suffix = "#%d" % title elif not me.CHAPTERP: raise ExpectedError("can't specify chapter with `%s'" % me.fn) + elif end_chapter is None: + suffix = "#%d:%d" % (title, start_chapter) else: - suffix = "#%d:%d-%d:%d" % (title, chapter, title, chapter) - if chapter is not None: key, set = (title, chapter), me.used_chapters - else: key, set = title, me.used_titles - if key in set: - if title == "-": - raise ExpectedError("`%s' already used" % me.fn) - elif chapter is None: - raise ExpectedError("`%s' title %d already used" % (me.fn, title)) - else: - raise ExpectedError("`%s' title %d chapter %d already used" % - (me.fn, title, chapter)) - if chapter is not None: me.used_chapters.add((title, chapter)) + suffix = "#%d:%d-%d:%d" % (title, start_chapter, title, end_chapter - 1) + if end_chapter is not None: + keys = [(title, ch) for ch in range(start_chapter, end_chapter)] + set = me.used_chapters + else: + keys, set = [title], me.used_titles + for k in keys: + if k in set: + if title == "-": + raise ExpectedError("`%s' already used" % me.fn) + elif end_chapter is None: + raise ExpectedError("`%s' title %d already used" % (me.fn, title)) + else: + raise ExpectedError("`%s' title %d chapter %d already used" % + (me.fn, title, k[1])) + if end_chapter is not None: + for ch in range(start_chapter, end_chapter): + me.used_chapters.add((title, ch)) return me.PREFIX + ROOT + urlencode(me.fn) + suffix class VideoDisc (Source): @@ -262,15 +272,15 @@ class AudioDir (object): class Chapter (object): def __init__(me, episode, title, i): me.title, me.i = title, i - me.url = episode.source.url(episode.tno, i) + me.url = episode.source.url(episode.tno, i, i + 1) class Episode (object): - def __init__(me, season, i, neps, title, src, tno = None): + def __init__(me, season, i, neps, title, src, tno = None, startch = None): me.season = season me.i, me.neps, me.title = i, neps, title me.chapters = [] me.source, me.tno = src, tno - me.url = src.url(tno) + me.url = src.url(tno, startch, None) def add_chapter(me, title, j): ch = Chapter(me, title, j) me.chapters.append(ch) @@ -284,8 +294,8 @@ class BaseSeason (object): me.episodes = [] me.implicitp = implicitp me.ep_i, episodes = 1, [] - def add_episode(me, j, neps, title, src, tno): - ep = Episode(me, j, neps, title, src, tno) + def add_episode(me, j, neps, title, src, tno, startch): + ep = Episode(me, j, neps, title, src, tno, startch) me.episodes.append(ep) src.nuses += neps; me.ep_i += neps return ep @@ -310,9 +320,9 @@ class Season (BaseSeason): return label class MovieSeason (BaseSeason): - def add_episode(me, j, neps, title, src, tno): + def add_episode(me, j, neps, title, src, tno, startch): if title is None: raise ExpectedError("movie must have a title") - return super().add_episode(j, neps, title, src, tno) + return super().add_episode(j, neps, title, src, tno, startch) def _eplabel(me, i, epn, title): return title @@ -492,7 +502,7 @@ class EpisodeListParser (object): def _process_episode(me, ww): opts = ww.nextword(); check(opts is not None, "missing title/options") - ti = None; sname = None; neps = 1; epi = None + ti = None; sname = None; neps = 1; epi = None; ch = None for k, v in me._keyvals(opts): if k is None: if v.isdigit(): ti = int(v) @@ -501,6 +511,7 @@ class EpisodeListParser (object): elif k == "s": sname = v elif k == "n": neps = getint(v) elif k == "ep": epi = getint(v) + elif k == "ch": ch = getint(v) else: raise ExpectedError("unknown episode option `%s'" % k) check(ti is not None, "missing title number") series = me._get_series(sname) @@ -530,7 +541,7 @@ class EpisodeListParser (object): "episode %d.%d not found in video dir `%s'" % (season.i, season.ep_i, dir.dir)) - episode = season.add_episode(epi, neps, title, src, ti) + episode = season.add_episode(epi, neps, title, src, ti, ch) me._pl.add_episode(episode) me._cur_episode = episode diff --git a/ref/flying-circus-restored.m3u8 b/ref/flying-circus-restored.m3u8 index 8b29efc..a56a264 100644 --- a/ref/flying-circus-restored.m3u8 +++ b/ref/flying-circus-restored.m3u8 @@ -1,95 +1,95 @@ #EXTM3U #EXTINF:0,,1.1. Whither Canada? -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#2:2 #EXTINF:0,,1.2. Sex and Violence -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#3:2 #EXTINF:0,,1.3. How to Recognize Different Types of Tree from Quite a Long Way Away -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#4:2 #EXTINF:0,,1.4. Owl-Stretching Time -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#5:2 #EXTINF:0,,1.5. Man's Crisis of Identity in the Latter Half of the Twentieth Century -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D01.%20E01%e2%80%9305.iso#6:2 #EXTINF:0,,1.6. It's the Arts -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#2:2 #EXTINF:0,,1.7. You're No Fun Any More -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#3:2 #EXTINF:0,,1.8. Full Frontal Nudity -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#4:2 #EXTINF:0,,1.9. The Ant, an Introduction -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#5:2 #EXTINF:0,,1.10. Untitled -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D02.%20E06%e2%80%9310.iso#6:2 #EXTINF:0,,1.11. The Royal Philharmonic Orchestra Goes to the Bathroom -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#2:2 #EXTINF:0,,1.12. The Naked Ant -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#3:2 #EXTINF:0,,1.13. Intermission -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S01D03.%20E11%e2%80%9313.iso#4:2 #EXTINF:0,,2.1. ‘Face the Press’ -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#2:2 #EXTINF:0,,2.2. The Spanish Inquisition -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#3:2 #EXTINF:0,,2.3. Déjà Vu -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#4:2 #EXTINF:0,,2.4. The Buzz Aldrin Show -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#5:2 #EXTINF:0,,2.5. Live from the Grill-o-mat -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D01.%20E01%e2%80%9305.iso#6:2 #EXTINF:0,,2.6. It's a Living -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#2:2 #EXTINF:0,,2.7. The Attila the Hun Show -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#3:2 #EXTINF:0,,2.8. Archæology Today -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#4:2 #EXTINF:0,,2.9. How to Recognize Different Parts of the Body -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#5:2 #EXTINF:0,,2.10. Scott of the Antarctic -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D02.%20E06%e2%80%9310.iso#6:2 #EXTINF:0,,2.11. How Not to Be Seen -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#2:2 #EXTINF:0,,2.12. Spam -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#3:2 #EXTINF:0,,2.13. Royal Episode 13 -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S02D03.%20E11%e2%80%9313.iso#4:2 #EXTINF:0,,3.1. Whicker's World -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#2:2 #EXTINF:0,,3.2. Mr. and Mrs. Brian Norris' Ford Popular -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#3:2 #EXTINF:0,,3.3. The Money Programme -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#4:2 #EXTINF:0,,3.4. Blood, Devastation, Death, War and Horror -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#5:2 #EXTINF:0,,3.5. The All-England Summarize Proust Competition -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D01.%20E01%e2%80%9305.iso#6:2 #EXTINF:0,,3.6. The War Against Pornography -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#2:2 #EXTINF:0,,3.7. Salad Days -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#3:2 #EXTINF:0,,3.8. The Cycling Tour -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#4:2 #EXTINF:0,,3.9. The Nude Organist -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#5:2 #EXTINF:0,,3.10. E. Henry Tripshaw's Disease -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D02.%20E06%e2%80%9310.iso#6:2 #EXTINF:0,,3.11. Dennis Moore -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#2:2 #EXTINF:0,,3.12. A Book at Bedtime -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#3:2 #EXTINF:0,,3.13. Grandstand -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S03D03.%20E11%e2%80%9313.iso#4:2 #EXTINF:0,,4.1. The Golden Age of Ballooning -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#2 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#2:2 #EXTINF:0,,4.2. Michael Ellis -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#3 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#3:2 #EXTINF:0,,4.3. Light Entertainment War -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#4 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#4:2 #EXTINF:0,,4.4. Hamlet -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#5 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#5:2 #EXTINF:0,,4.5. Mr Neutron -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#6 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#6:2 #EXTINF:0,,4.6. Party Political Broadcast -dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#7 +dvd:///mnt/dvd/archive/P/Monty%20Python%27s%20Flying%20Circus%20%28restored%29/S04D01.%20E01%e2%80%9306.iso#7:2