diff --git a/tests/scraper_test.py b/tests/scraper_test.py index b4c8cf4..395b759 100644 --- a/tests/scraper_test.py +++ b/tests/scraper_test.py @@ -135,4 +135,4 @@ def test_scrape_video_only2(): with tempfile.TemporaryDirectory(dir="./") as tempdir: vks.download_media(res, tempdir) found_files = set(os.listdir(tempdir)) - assert "video-17546758_456239898_0.mkv.webm" in found_files + assert "video-17546758_456239898_0.webm" in found_files diff --git a/vk_url_scraper/scraper.py b/vk_url_scraper/scraper.py index 234ab8b..33eeca6 100644 --- a/vk_url_scraper/scraper.py +++ b/vk_url_scraper/scraper.py @@ -312,7 +312,7 @@ class VkScraper: downloaded.append(filename) elif k == "video": for i, url in enumerate(attachments): - filename = os.path.join(destination, f"{r['id']}_{i}.mkv") + filename = os.path.join(destination, f"{r['id']}_{i}.%(ext)s") ydl = yt_dlp.YoutubeDL( { "outtmpl": filename, @@ -323,5 +323,12 @@ class VkScraper: ) info = ydl.extract_info(url, download=True) filename = ydl.prepare_filename(info) + if "unknown_video" in filename: + new_filename = filename.replace("unknown_video", "mkv") + with open(filename, "rb") as vin, open(new_filename, "wb") as vout: + vout.write(vin.read()) + os.remove(filename) + filename = new_filename + print(filename) downloaded.append(filename) return downloaded