Working on new playlist mode
							parent
							
								
									bfbf1a5be1
								
							
						
					
					
						commit
						9bb4523c09
					
				@ -0,0 +1,48 @@
 | 
				
			|||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html lang="en">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
					    <meta charset="UTF-8">
 | 
				
			||||||
 | 
					    <meta http-equiv="X-UA-Compatible" content="IE=edge">
 | 
				
			||||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
 | 
					    <title>Playlist download</title>
 | 
				
			||||||
 | 
					    <link rel="stylesheet" href="../assets/css/index.css">
 | 
				
			||||||
 | 
					    <script src="../src/playlist_new.js" defer></script>
 | 
				
			||||||
 | 
					    <script src="../src/common.js" defer></script>
 | 
				
			||||||
 | 
					    <!-- Translating -->
 | 
				
			||||||
 | 
					    <script>window.i18n = new (require('../translations/i18n'));</script>
 | 
				
			||||||
 | 
					    <style>
 | 
				
			||||||
 | 
					        .playlistCheck {
 | 
				
			||||||
 | 
					            position: absolute;
 | 
				
			||||||
 | 
					            bottom: 8px;
 | 
				
			||||||
 | 
					            right: 8px;
 | 
				
			||||||
 | 
					            width: 25px;
 | 
				
			||||||
 | 
					            height: 25px;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    </style>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					    <!-- Theme toggle -->
 | 
				
			||||||
 | 
					    <div id="themeToggle" onclick="toggle()">
 | 
				
			||||||
 | 
					        <div id="themeToggleInside"></div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <!-- Menu icon -->
 | 
				
			||||||
 | 
					    <img src="../assets/images/menu.png" alt="menu" id="menuIcon">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <!-- Menu -->
 | 
				
			||||||
 | 
					    <div id="menu">
 | 
				
			||||||
 | 
					        <a id="homeWin" class="menuItem">Homepage</a>
 | 
				
			||||||
 | 
					        <a id="preferenceWin" class="menuItem">Preferences</a>
 | 
				
			||||||
 | 
					        <a id="aboutWin" class="menuItem">About</a>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <button class="submitBtn" id="pasteLink">Click to paste playlist link from clipboard [Ctrl + V]</button>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <div id="data">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div id="goToTop"></div>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
@ -0,0 +1,579 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
						"id": "PLNu0CXJQy5DBk_ca7C7YOZUFC8XzIYuQf",
 | 
				
			||||||
 | 
						"title": "\u041f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0435 Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f (\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c/No death challenge)",
 | 
				
			||||||
 | 
						"availability": "public",
 | 
				
			||||||
 | 
						"channel_follower_count": null,
 | 
				
			||||||
 | 
						"description": "",
 | 
				
			||||||
 | 
						"tags": [],
 | 
				
			||||||
 | 
						"thumbnails": [
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEWCKgBEF5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLAmEDg0XPgFJCyUgVIgLZr7kzi6zA",
 | 
				
			||||||
 | 
								"height": 94,
 | 
				
			||||||
 | 
								"width": 168,
 | 
				
			||||||
 | 
								"id": "0",
 | 
				
			||||||
 | 
								"resolution": "168x94"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEWCMQBEG5IWvKriqkDCQgBFQAAiEIYAQ==&rs=AOn4CLDm30N4dSfmxxOGpH1EU_uLS0PcXA",
 | 
				
			||||||
 | 
								"height": 110,
 | 
				
			||||||
 | 
								"width": 196,
 | 
				
			||||||
 | 
								"id": "1",
 | 
				
			||||||
 | 
								"resolution": "196x110"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEXCPYBEIoBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAQwDns2fzKoLKgnHPdSwMXOdPFHA",
 | 
				
			||||||
 | 
								"height": 138,
 | 
				
			||||||
 | 
								"width": 246,
 | 
				
			||||||
 | 
								"id": "2",
 | 
				
			||||||
 | 
								"resolution": "246x138"
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEXCNACELwBSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCt8qjLqQUpH5QMKmbxbULN2xAubQ",
 | 
				
			||||||
 | 
								"height": 188,
 | 
				
			||||||
 | 
								"width": 336,
 | 
				
			||||||
 | 
								"id": "3",
 | 
				
			||||||
 | 
								"resolution": "336x188"
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
 | 
						"modified_date": "20220718",
 | 
				
			||||||
 | 
						"view_count": 411,
 | 
				
			||||||
 | 
						"playlist_count": 13,
 | 
				
			||||||
 | 
						"uploader": "ProJecT Gamling",
 | 
				
			||||||
 | 
						"uploader_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
						"uploader_url": "https://www.youtube.com/@projectgamling7962",
 | 
				
			||||||
 | 
						"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
						"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
						"channel_url": "https://www.youtube.com/@projectgamling7962",
 | 
				
			||||||
 | 
						"_type": "playlist",
 | 
				
			||||||
 | 
						"entries": [
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "30jpTzJiedQ",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=30jpTzJiedQ",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 1: \u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 8994,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBWrlgSf5eXcA_9H1ySF2aMUEn4zA",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBHEKM40MpSXA8CgY-ClT5elYeV_w",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAAvRLpvRsckiDHcBrdU3ZSl69XXw",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/30jpTzJiedQ/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA9kGc48_qsKbGCgSnAtLoN1u0XJw",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 134,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "XIBxYDyq14U",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=XIBxYDyq14U",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 2: \u0414\u043e\u043d \u041f\u0435\u0434\u0440\u043e (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 7542,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/XIBxYDyq14U/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCi2_jYC9s-wE5QcaIqQgvptPFfeg",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/XIBxYDyq14U/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAFpQR6d3OlbjW-AxuPbAGJM3TbUA",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/XIBxYDyq14U/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCHn6BrPpyJH_R3z8RwjX_VOehMqQ",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/XIBxYDyq14U/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBzG2fREpEA2XUzJFiVJVmCq2HMJg",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 85,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "Y5FjUQFYugI",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=Y5FjUQFYugI",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 3: \u042d\u0434\u0433\u0430\u0440\u043e (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 7984,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/Y5FjUQFYugI/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDGKy3hnu9knmngq2hAkUEDnCYEbg",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/Y5FjUQFYugI/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCSVxrhiAWPlVWe-MocX68R0s0xWA",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/Y5FjUQFYugI/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBLd0dK7P27n1VSJAPTj5_iTnLkbA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/Y5FjUQFYugI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD2UAXVVlziN6NFC1f-37SMCx3qUg",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 61,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "cZMJbA5RfJo",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=cZMJbA5RfJo",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 4: \u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043f\u043e\u0431\u043e\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 6414,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/cZMJbA5RfJo/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD0jrz0csfO2Y3shzRQv35pXH_FmQ",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/cZMJbA5RfJo/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBES-6yntKp5IicORZJ163jXfj0Kw",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/cZMJbA5RfJo/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA4J7SpW1shmvaIKACP1aIkZappYA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/cZMJbA5RfJo/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLApSYw1D443jUXgj0DhIMtKN4LC0g",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 38,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "JdKmXxwF2B4",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=JdKmXxwF2B4",
 | 
				
			||||||
 | 
								"title": "[Private video]",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": null,
 | 
				
			||||||
 | 
								"channel_id": null,
 | 
				
			||||||
 | 
								"channel": null,
 | 
				
			||||||
 | 
								"channel_url": null,
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/img/no_thumbnail.jpg",
 | 
				
			||||||
 | 
										"height": 90,
 | 
				
			||||||
 | 
										"width": 120
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/img/no_thumbnail.jpg",
 | 
				
			||||||
 | 
										"height": 180,
 | 
				
			||||||
 | 
										"width": 320
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/img/no_thumbnail.jpg",
 | 
				
			||||||
 | 
										"height": 360,
 | 
				
			||||||
 | 
										"width": 480
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": null,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "yvEdxPdFhoU",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=yvEdxPdFhoU",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 5 \u0411\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u043e\u0431\u0435\u0433 \u0438 \u0410\u043b\u044c\u0431\u0435\u0440\u0442\u043e \u0411\u043b\u0430\u043d\u043a\u043e (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 13965,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/yvEdxPdFhoU/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB74rWcv2d74KKCCFMWC2Iv0x7oTg",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/yvEdxPdFhoU/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBp4QwHoVD6lVXleossWACwmRLBAw",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/yvEdxPdFhoU/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCJyb9hQkRmsKPvHMdHg7Hm_P0MlA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/yvEdxPdFhoU/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDue4dHczq6T-ighZHdhxKQ1QX15Q",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 91,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "P534wDZhc9M",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=P534wDZhc9M",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 6: \u0424\u0430\u0440\u043c\u0438\u043c \u0434\u0435\u043d\u044c\u0433\u0438 \u0432\u0441\u0435\u043c\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 8425,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/P534wDZhc9M/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAkhaq0eA0SxpZDQ7ivvzKBwL9A8w",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/P534wDZhc9M/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAR4Mo6Qy1k-vvwr73y61W5yKw_fw",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/P534wDZhc9M/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAgwvqDV6rT3Y7RXT7mvlW1UXul6w",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/P534wDZhc9M/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDXEoQ0kwSJDrcOTgDLpUP9FEgSIA",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 37,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "DR0FKTr1Jio",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=DR0FKTr1Jio",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 7: \u0424\u0438\u0434\u0435\u043b\u044c \u0438 \u043a\u0432\u0435\u0441\u0442\u044b \u0437\u0430 \u043f\u0430\u0440\u0442\u0438\u0437\u0430\u043d (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 7279,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/DR0FKTr1Jio/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAV09aPUf9nSDYh4iPY7uyMFJI-ew",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/DR0FKTr1Jio/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCFVW0FV35l2EvU5iwCJ7a_8UUYLA",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/DR0FKTr1Jio/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC_LiauAAXVVHd6mbIKbOz0gMYFrA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/DR0FKTr1Jio/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDGpVlX-vXY6u5QS5l8SO_DIMKIXQ",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 31,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "GyOWRUys0RA",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=GyOWRUys0RA",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 8: \u0410\u0446\u0442\u0435\u043a (No deaths challenge/\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 7160,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/GyOWRUys0RA/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCRsXEXRIY_PihywJJxgFXug1JVWw",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/GyOWRUys0RA/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBILToN1LcT7_HQVIGXqkyHlOcQww",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/GyOWRUys0RA/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAcAqnqO-EOFqC686cQDk7BgoW5sA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/GyOWRUys0RA/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBlAc8bYpeeTceqegQXM1bLIjWiVw",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 39,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "CNUiW9NGQCA",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=CNUiW9NGQCA",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 9: \u041c\u0438\u0441\u0441\u0438\u0438 \u0437\u0430 \u041f\u0430\u0440\u0442\u0438\u0437\u0430\u043d \u0432 \u0441\u0442\u0440\u0430\u043d\u0435 \u043f\u043e\u0442\u0435\u0440\u044f\u043d\u043d\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0435\u0439 (\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 10756,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/CNUiW9NGQCA/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC07-N2JcwqQfV3E3cleCN-oehjgQ",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/CNUiW9NGQCA/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDIMR2o_DRmQOyE-pGXvsstO9lpeg",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/CNUiW9NGQCA/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCdpBoNAdJBjaJ2ikbAAR2j54GeTA",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/CNUiW9NGQCA/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDSrvgtnSzdpw1VHBkdZGNp04YPig",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 40,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "JkNCGTt8diM",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=JkNCGTt8diM",
 | 
				
			||||||
 | 
								"title": "Xenus:\u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 10: \u041c\u0438\u0433\u0435\u043b\u044c \u0420\u043e\u0434\u0440\u0438\u0433\u0435\u0441 (\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 8818,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/JkNCGTt8diM/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAOd4scVHcQKL6ttQg0BuwJP5J0_g",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/JkNCGTt8diM/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCql2OaC3FL-IvfMTx3Fhhoy5oBtQ",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/JkNCGTt8diM/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBHENzTyGuaSATYDgZTRmVqFCK_DQ",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/JkNCGTt8diM/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDwU9gciLrbt9sAn2oKx4hhsIR2wQ",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 53,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "ra5msV_RVZM",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=ra5msV_RVZM",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 11: \u0410\u043d\u0442\u043e\u043d\u0438\u043e \u0438 \u0414\u043e\u043d \"\u0414\u0438\u0435\u0433\u043e\" (\u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 8760,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/ra5msV_RVZM/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB5DwHtTjVAezr-X3-Jfk2DC3gE6g",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/ra5msV_RVZM/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC0DFJFluruAhWpzSX1QvcSVZxXRg",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/ra5msV_RVZM/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAvXOOmuGaJvHV5P_7CORwrw1d9sw",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/ra5msV_RVZM/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAxc8YawtWWIXLwC3jGNX2GgQ9q4w",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 43,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								"_type": "url",
 | 
				
			||||||
 | 
								"ie_key": "Youtube",
 | 
				
			||||||
 | 
								"id": "STvJ9UgLpxo",
 | 
				
			||||||
 | 
								"url": "https://www.youtube.com/watch?v=STvJ9UgLpxo",
 | 
				
			||||||
 | 
								"title": "Xenus: \u0422\u043e\u0447\u043a\u0430 \u041a\u0438\u043f\u0435\u043d\u0438\u044f \u042d\u043f\u0438\u0437\u043e\u0434 12: \u0427\u0435\u0440\u043d\u0430\u044f \u0411\u0430\u0448\u043d\u044f\" (\u0424\u0438\u043d\u0430\u043b, \u0412\u044b\u0441\u043e\u043a\u0430\u044f \u0421\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c)",
 | 
				
			||||||
 | 
								"description": null,
 | 
				
			||||||
 | 
								"duration": 9779,
 | 
				
			||||||
 | 
								"channel_id": "UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"channel": "ProJecT Gamling",
 | 
				
			||||||
 | 
								"channel_url": "https://www.youtube.com/channel/UCbr4uFpFqPBzr7rlK-5F5YA",
 | 
				
			||||||
 | 
								"thumbnails": [
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/STvJ9UgLpxo/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB7CpfFtEvIbh_KN6sQd7BiUIYK7w",
 | 
				
			||||||
 | 
										"height": 94,
 | 
				
			||||||
 | 
										"width": 168
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/STvJ9UgLpxo/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVPKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBsyKFqH4Pi3DYffpxvsf92GLgLlg",
 | 
				
			||||||
 | 
										"height": 110,
 | 
				
			||||||
 | 
										"width": 196
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/STvJ9UgLpxo/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC0esk0uMSEiE6l5kdvDDdn9WG5Kg",
 | 
				
			||||||
 | 
										"height": 138,
 | 
				
			||||||
 | 
										"width": 246
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										"url": "https://i.ytimg.com/vi/STvJ9UgLpxo/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFTyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCyRnPncOYDIQWQ-sIWTdHDGoTssQ",
 | 
				
			||||||
 | 
										"height": 188,
 | 
				
			||||||
 | 
										"width": 336
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								],
 | 
				
			||||||
 | 
								"timestamp": null,
 | 
				
			||||||
 | 
								"release_timestamp": null,
 | 
				
			||||||
 | 
								"availability": null,
 | 
				
			||||||
 | 
								"view_count": 52,
 | 
				
			||||||
 | 
								"live_status": null,
 | 
				
			||||||
 | 
								"__x_forwarded_for_ip": null
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
 | 
						"extractor_key": "YoutubeTab",
 | 
				
			||||||
 | 
						"extractor": "youtube:tab",
 | 
				
			||||||
 | 
						"webpage_url": "https://www.youtube.com/playlist?list=PLNu0CXJQy5DBk_ca7C7YOZUFC8XzIYuQf",
 | 
				
			||||||
 | 
						"original_url": "https://www.youtube.com/playlist?list=PLNu0CXJQy5DBk_ca7C7YOZUFC8XzIYuQf",
 | 
				
			||||||
 | 
						"webpage_url_basename": "playlist",
 | 
				
			||||||
 | 
						"webpage_url_domain": "youtube.com",
 | 
				
			||||||
 | 
						"__files_to_move": {},
 | 
				
			||||||
 | 
						"epoch": 1678375177,
 | 
				
			||||||
 | 
						"_version": {
 | 
				
			||||||
 | 
							"version": "2023.03.04",
 | 
				
			||||||
 | 
							"current_git_head": null,
 | 
				
			||||||
 | 
							"release_git_head": "392389b7df7b818f794b231f14dc396d4875fbad",
 | 
				
			||||||
 | 
							"repository": "yt-dlp/yt-dlp"
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -0,0 +1,149 @@
 | 
				
			|||||||
 | 
					const { clipboard, shell, ipcRenderer } = require("electron");
 | 
				
			||||||
 | 
					const { default: YTDlpWrap } = require("yt-dlp-wrap-plus");
 | 
				
			||||||
 | 
					const path = require("path");
 | 
				
			||||||
 | 
					const os = require("os");
 | 
				
			||||||
 | 
					const fs = require("fs");
 | 
				
			||||||
 | 
					const { execSync } = require("child_process");
 | 
				
			||||||
 | 
					let url;
 | 
				
			||||||
 | 
					const ytDlp = localStorage.getItem("ytdlp");
 | 
				
			||||||
 | 
					const ytdlp = new YTDlpWrap(ytDlp);
 | 
				
			||||||
 | 
					const downloadDir = localStorage.getItem("downloadPath");
 | 
				
			||||||
 | 
					const i18n = new (require("../translations/i18n"))();
 | 
				
			||||||
 | 
					let cookieArg = "";
 | 
				
			||||||
 | 
					let browser = "";
 | 
				
			||||||
 | 
					const formats = {
 | 
				
			||||||
 | 
						144: 160,
 | 
				
			||||||
 | 
						240: 133,
 | 
				
			||||||
 | 
						360: 134,
 | 
				
			||||||
 | 
						480: 135,
 | 
				
			||||||
 | 
						720: 136,
 | 
				
			||||||
 | 
						1080: 137,
 | 
				
			||||||
 | 
						1440: 400,
 | 
				
			||||||
 | 
						2160: 401,
 | 
				
			||||||
 | 
						4320: 571,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					let originalCount = 0;
 | 
				
			||||||
 | 
					let ffmpeg;
 | 
				
			||||||
 | 
					let ffmpegPath;
 | 
				
			||||||
 | 
					if (os.platform() === "win32") {
 | 
				
			||||||
 | 
						ffmpeg = `"${__dirname}\\..\\ffmpeg.exe"`;
 | 
				
			||||||
 | 
						ffmpegPath = `${__dirname}\\..\\ffmpeg.exe`;
 | 
				
			||||||
 | 
					} else {
 | 
				
			||||||
 | 
						ffmpeg = `"${__dirname}/../ffmpeg"`;
 | 
				
			||||||
 | 
						ffmpegPath = `${__dirname}/../ffmpeg`;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if (!fs.existsSync(ffmpegPath)) {
 | 
				
			||||||
 | 
						try {
 | 
				
			||||||
 | 
							ffmpeg = execSync("which ffmpeg", { encoding: "utf8" });
 | 
				
			||||||
 | 
							ffmpeg = `"${ffmpeg.trimEnd()}"`;
 | 
				
			||||||
 | 
						} catch (error) {
 | 
				
			||||||
 | 
							console.log(error);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					console.log("ffmpeg:", ffmpeg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let foldernameFormat = "%(playlist_title)s";
 | 
				
			||||||
 | 
					let filenameFormat = "%(playlist_index)s.%(title)s.%(ext)s";
 | 
				
			||||||
 | 
					let playlistIndex = 1;
 | 
				
			||||||
 | 
					let playlistEnd = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function getId(id) {
 | 
				
			||||||
 | 
						return document.getElementById(id);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function pasteLink() {
 | 
				
			||||||
 | 
						const clipboardText = clipboard.readText();
 | 
				
			||||||
 | 
						const data = execSync(
 | 
				
			||||||
 | 
							`yt-dlp --yes-playlist --no-warnings -J --flat-playlist "${clipboardText}"`,
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								encoding: "utf8",
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						const parsed = JSON.parse(data);
 | 
				
			||||||
 | 
						console.log(parsed);
 | 
				
			||||||
 | 
						let items = "";
 | 
				
			||||||
 | 
						parsed.entries.forEach((entry) => {
 | 
				
			||||||
 | 
							const randId = Math.random().toFixed(10).toString().slice(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (entry.channel) {
 | 
				
			||||||
 | 
								items += `
 | 
				
			||||||
 | 
					            <div class="item" id="${randId}">
 | 
				
			||||||
 | 
								<img src="${
 | 
				
			||||||
 | 
									entry.thumbnails[3].url
 | 
				
			||||||
 | 
								}" alt="No thumbnail" class="itemIcon" crossorigin="anonymous">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								<div class="itemBody">
 | 
				
			||||||
 | 
									<div class="itemTitle">${entry.title}</div>
 | 
				
			||||||
 | 
									<div>${formatTime(entry.duration)}</div>
 | 
				
			||||||
 | 
					                <input type="checkbox" class="playlistCheck" id="c${randId}">
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
					            `;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
						getId("data").innerHTML = items;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getId("pasteLink").addEventListener("click", (e) => {
 | 
				
			||||||
 | 
						try {
 | 
				
			||||||
 | 
							pasteLink();
 | 
				
			||||||
 | 
						} catch (error) {
 | 
				
			||||||
 | 
							console.log(error);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					document.addEventListener("keydown", (event) => {
 | 
				
			||||||
 | 
						if (event.ctrlKey && event.key == "v") {
 | 
				
			||||||
 | 
							pasteLink();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function formatTime(seconds) {
 | 
				
			||||||
 | 
						let hours = Math.floor(seconds / 3600);
 | 
				
			||||||
 | 
						let minutes = Math.floor((seconds - hours * 3600) / 60);
 | 
				
			||||||
 | 
						seconds = seconds - hours * 3600 - minutes * 60;
 | 
				
			||||||
 | 
						let formattedTime = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (hours > 0) {
 | 
				
			||||||
 | 
							formattedTime += hours + ":";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if (minutes < 10 && hours > 0) {
 | 
				
			||||||
 | 
							formattedTime += "0";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						formattedTime += minutes + ":";
 | 
				
			||||||
 | 
						if (seconds < 10) {
 | 
				
			||||||
 | 
							formattedTime += "0";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						formattedTime += seconds;
 | 
				
			||||||
 | 
						return formattedTime;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					function closeMenu() {
 | 
				
			||||||
 | 
						getId("menuIcon").style.transform = "rotate(0deg)";
 | 
				
			||||||
 | 
						menuIsOpen = false;
 | 
				
			||||||
 | 
						let count = 0;
 | 
				
			||||||
 | 
						let opacity = 1;
 | 
				
			||||||
 | 
						const fade = setInterval(() => {
 | 
				
			||||||
 | 
							if (count >= 10) {
 | 
				
			||||||
 | 
								clearInterval(fade);
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								opacity -= 0.1;
 | 
				
			||||||
 | 
								getId("menu").style.opacity = opacity;
 | 
				
			||||||
 | 
								count++;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}, 50);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getId("preferenceWin").addEventListener("click", () => {
 | 
				
			||||||
 | 
						closeMenu();
 | 
				
			||||||
 | 
						ipcRenderer.send("load-page", __dirname + "/preferences.html");
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getId("aboutWin").addEventListener("click", () => {
 | 
				
			||||||
 | 
						closeMenu();
 | 
				
			||||||
 | 
						ipcRenderer.send("load-page", __dirname + "/about.html");
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					getId("homeWin").addEventListener("click", () => {
 | 
				
			||||||
 | 
						closeMenu();
 | 
				
			||||||
 | 
						ipcRenderer.send("load-win", __dirname + "/index.html");
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue