Hoi,
Voor mijn mediabibliotheek wil ik graag de trailers in ieder mapje hebben.
So far is dit mijn code:
Deze code werkt. Echter, bij bepaalde films gooit hij een exeception erin.
Bijvoorbeeld:
Abigail (2019)
of
Con Air (1997)
De exception is als volgt:
Wat heb ik al gedaan?
Gedebugged door overal prints ertussen te zetten. De specifieke titels bekeken of er iets raars in zit. Zelf handmatig de url op Youtube bezocht. Mijn vermoeden is dat het in de naming zit in de array maar ik weet niet of dit klopt.
Heeft iemand een idee wat ik over het hoofd zie?
Voor mijn mediabibliotheek wil ik graag de trailers in ieder mapje hebben.
So far is dit mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| from youtubesearchpython import SearchVideos import json import requests from pytube import YouTube import os print("===================================") path = '/mnt/media/Movies/' #print(path) filenames = os.listdir(path) for root, dirs, files in os.walk(path): for dir in dirs: trailer = dir + " trailer" print(dir) if dir != "": search = SearchVideos(trailer, offset = 1, mode = "json", max_results = 1) print(search.result()) jsonData = json.loads(search.result()) #print(jsonData) url = jsonData['search_result'][0]["link"] #print(url) yt = YouTube(url) ys = yt.streams.get_highest_resolution() print(ys) extensie = dir + "-trailer" ys.download('/mnt/media/Movies/' + dir + "/" ,extensie) print("===================================") |
Deze code werkt. Echter, bij bepaalde films gooit hij een exeception erin.
Bijvoorbeeld:
Abigail (2019)
of
Con Air (1997)
De exception is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| Traceback (most recent call last): File "/home/user/.local/lib/python3.8/site-packages/pytube/extract.py", line 288, in apply_descrambler stream_data[key] = [ File "/home/user/.local/lib/python3.8/site-packages/pytube/extract.py", line 290, in <listcomp> "url": format_item["url"], KeyError: 'url' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "yt.py", line 41, in <module> yt = YouTube(url) File "/home/url/.local/lib/python3.8/site-packages/pytube/__main__.py", line 92, in __init__ self.descramble() File "/home/url/.local/lib/python3.8/site-packages/pytube/__main__.py", line 132, in descramble apply_descrambler(self.player_config_args, fmt) File "/home/url/.local/lib/python3.8/site-packages/pytube/extract.py", line 300, in apply_descrambler cipher_url = [ File "/home/url/.local/lib/python3.8/site-packages/pytube/extract.py", line 301, in <listcomp> parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats) KeyError: 'cipher' |
Wat heb ik al gedaan?
Gedebugged door overal prints ertussen te zetten. De specifieke titels bekeken of er iets raars in zit. Zelf handmatig de url op Youtube bezocht. Mijn vermoeden is dat het in de naming zit in de array maar ik weet niet of dit klopt.
Heeft iemand een idee wat ik over het hoofd zie?