Автоматизиран код за сваляне на видео и субтитри

Ticketa

Registered
Привет,
Опитвам се да направя код, който сваля уроци от chess.com

За момента съм направил кода да сваля файловете, когато си поставил линка на съответния урок. Обаче ми се иска да го направя по следния начин:
Създаваме папка с името на категорията:
Beginner (Fundamentals)
Създаваме под папка с името на под категорията:
Opening Principles
=> Сваляме файловете

Използвам: https://simplehtmldom.sourceforge.io/

Код:
<?php
include("simple_html_dom.php");
// Create DOM from URL or file
$html = file_get_html('https://www.chess.com/lessons/opening-principles/develop-your-pieces');

// Find all links
// Find all article blocks
$str_html=str_get_html($html);
// $file_html=file_get_html($html); // use file_get_html if you parse an url.
$div=$str_html->find("div#lessons-upgrade-modal");
$count=count($div)-1;
for($a=0;$a<=$count;$a++){
    $url = $str_html->find("div#lessons-upgrade-modal", $a)->getAttribute('data-lesson');
	
	$prefix_video = 'video_url'; 
	$index = strpos($url, $prefix_video) + strlen($prefix_video);
	$result1 = substr($url, $index);
	$variable = strstr($result1, '.mp4', true);
	$variable = str_replace("":"", '', $variable);
	
	shell_exec("wget $variable . ".mp4"");
	//echo $variable.".mp4";
	//echo "<br />";
	
	$prefix_subs = '[{"url":"'; 
	$index_subs = strpos($url, $prefix_subs) + strlen($prefix_subs);
	$result_subs = substr($url, $index_subs);
	$variable_subs = strstr($result_subs, '.vtt', true);
	#$variable_subs = str_replace("":"", '', $variable_subs);
	shell_exec("wget $variable_subs . ".vtt"");
	//echo $variable_subs.".vtt";
	//,"video_url":"https://media.chesscomfiles.com/videos/square/ENG-develop-your-pieces-b2s.mp4"
	//[{"url":"https://media.chesscomfiles.com/subtitles/develop-your-pieces5e54d9bf759ec.en_US.vtt"
	
	/*
	Създаваме папка с името на категорията:
	Beginner (Fundamentals)
		Създаваме под папка с името на под категорията:
			Opening Principles
				=> Сваляме файловете
	
	
	
	First the grab:
	=> https://www.chess.com/lessons
	====> Beginner (Fundamentals)
	mkdir Beginner (Fundamentals)
		=> open url
			=> https://www.chess.com/lessons/opening-principles
				=> mkdir "Opening Principles"
					=> open url
						=> https://www.chess.com/lessons/opening-principles/control-the-center
							=> download video and subtitres
								=> https://media.chesscomfiles.com/videos/square/ENG-develop-your-pieces-b2s.mp4
								=> https://media.chesscomfiles.com/subtitles/develop-your-pieces5e54d9bf759ec.en_US.vtt
								
						=> https://www.chess.com/lessons/opening-principles/develop-your-pieces
							=> download video and subtitres
								=>
								=>
						=> https://www.chess.com/lessons/opening-principles/protect-your-king
							=> download video and subtitres
								=>
								=>
						=> https://www.chess.com/lessons/opening-principles/active-pieces
							=> download video and subtitres
								=>
								=>
						=> https://www.chess.com/lessons/opening-principles/phases-of-the-game
							=> download video and subtitres
								=>
								=>
				
			=> https://www.chess.com/lessons/winning-the-game
				=> mkdir "Winning the Game"
				
			=> https://www.chess.com/lessons/capturing-pieces
				=> mkdir "Capturing Pieces"
				
			=> https://www.chess.com/lessons/finding-checkmate
				=> mkdir "Finding Checkmate"
				
			=> https://www.chess.com/lessons/intro-to-book-openings
				=> mkdir "Intro to Book Openings"
	
	====> Intermediate (Key Concepts)
	mkdir Intermediate (Key Concepts)
	
	====> Advanced (Taking Control)
	mkdir Advanced (Taking Control)

	
	
	*/
	
}
 

Blinky

Administrator
Екип
https://catch.tube/

С код ще стане до момента, в който някой не те засече и блокне. Повечето скриптове са доста по агресивни и нямат хюмън бивейвиър и биват банвани, разбирай IP-то, от което се изпълняват. Има няколко онлайн тула, които може да използваш, а ако не ти вършат работа, винаги има някъде написана библиотека по въпроса.
 

Горе