diff options
| author | A Farzat <a@farzat.xyz> | 2025-10-08 10:44:07 +0300 |
|---|---|---|
| committer | A Farzat <a@farzat.xyz> | 2025-10-08 10:48:47 +0300 |
| commit | c641e6f1948f683bf7b1fff08bce125cb64563df (patch) | |
| tree | 9d1f7ee667da951265a466d12798d296e2c36a5d /tests/utils/vid_url_to_html.py | |
| parent | a79fe26ade3a46ddf5649b2318e33ea95e15e0fa (diff) | |
| download | csca5028-c641e6f1948f683bf7b1fff08bce125cb64563df.tar.gz csca5028-c641e6f1948f683bf7b1fff08bce125cb64563df.zip | |
Add unit tests for obtain_vid_info
Diffstat (limited to 'tests/utils/vid_url_to_html.py')
| -rw-r--r-- | tests/utils/vid_url_to_html.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/utils/vid_url_to_html.py b/tests/utils/vid_url_to_html.py new file mode 100644 index 0000000..355e830 --- /dev/null +++ b/tests/utils/vid_url_to_html.py @@ -0,0 +1,18 @@ +from urllib.parse import urlparse, parse_qs + +from components.extractor.check_url import is_video + +def extract_vid_id(url: str) -> str: + if not is_video(url): + raise Exception(url + " is not a YouTube video URL") + parsed_url = urlparse(url) + if parsed_url.netloc == 'youtu.be': + return parsed_url.path[1:] + if parsed_url.path == '/watch': + query_params = parse_qs(parsed_url.query) + return query_params['v'][0] + return parsed_url.path.split('/')[-1] + +def get_vid_html_from_url(url: str) -> str: + with open(f'tests/data/video@{extract_vid_id(url)}.html', 'r') as file: + return file.read() |
