| Ratings |  | Unique User Downloads |  | Download Rankings | 
| Not yet rated by the users |  | Total: 150 |  | All time:  9,088 This week: 81  | 
|  | 
| Description |  | Author | 
| This package can download movie subtitles with EasySubtitles API.
 It can send HTTP requests to the EasySubtitles API Web server to obtain subtitles for a given movie.
 
 The downloaded subtitles are returned as a string.
Innovation Award 
|  January 2018
 Number 5
 | This package can download movie subtitles with EasySubtitles API. 
 It can send HTTP requests to the EasySubtitles API Web server to obtain subtitles for a given movie.
 
 The downloaded subtitles are returned as a string.
 
 Manuel Lemos
 |  |  | 
|  |  | Innovation award 
  Nominee: 3x
 | 
 
 | 
Example
| 
<?php
 use alesinicio\Easysubtitle\EasysubtitleDownloader;
 
 require './vendor/alesinicio/Easysubtitle/EasysubtitleDownloader.php';
 
 $sub = new EasysubtitleDownloader();
 
 //THE WHOLE THING THROWS EXCEPTIONS ON ERRORS, SO KEEP EVERYTHING IN A TRY/CATCH BLOCK.
 try {
 //SETS THE PATH TO THE VIDEO FILE
 $sub->setVideofile(__DIR__.'/tests/alesinicio/Easysubtitle/justified.mp4');
 
 //SETS THE USER AGENT FOR THE API CALL -- USE YOUR OWN PROJECT DATA
 $sub->setUserAgent('SubDB/1.0 (YOUR_NAME/VERSION; PROJECT_URL)');
 
 //SETS WHAT ARE YOUR PREFERRED LANGUAGES FOR THE SUBTITLE -- EITHER AN ARRAY OR COMMA-SEPARATED VALUES
 $sub->setPreferredLanguages('pt,en');
 
 //CALLS THE API AND GET WHAT SUBTITLES ARE AVAILABLE FOR THAT VIDEO FILE
 $strSubtitlesAvailable = $sub->getAvailableSubtitles();
 
 //GIVEN THE AVAILABLE SUBTITLES, GETS THE BEST CHOICE BASED ON YOUR PREFERENCES
 $bestAvailableSubtitle = $sub->searchForPreferredSubtitle($strSubtitlesAvailable);
 
 //DOWNLOADS THE SUBTITLE TO THE SAME FOLDER OF THE VIDEO FILE
 $sub->downloadSubtitle($bestAvailableSubtitle);
 
 echo "Subtitle in language `{$bestAvailableSubtitle}` downloaded!";
 } catch (Exception $e) {
 die($e->getMessage());
 }
 | 
Details
EasysubtitleDownloader
PHP implementation for the easysubtitles.com REST API. 
Downloads subtitles for video files given preferred language.
Can be used in an object-oriented fashion or in procedural format.
The file 'tests.php' runs unit-tests for most common situations.
Feel free to contribute.
Examples
Object-oriented style
try {
	$sub = new EasysubtitleDownloader();
	//SETS THE PATH TO THE VIDEO FILE
	$sub->setVideofile(__DIR__.'/tests/alesinicio/Easysubtitle/justified.mp4');
	
	//SETS THE USER AGENT FOR THE API CALL -- USE YOUR OWN PROJECT DATA
	$sub->setUserAgent('SubDB/1.0 (YOUR_NAME/VERSION; PROJECT_URL)');
	
	//SETS WHAT ARE YOUR PREFERRED LANGUAGES FOR THE SUBTITLE -- EITHER AN ARRAY OR COMMA-SEPARATED VALUES
	$sub->setPreferredLanguages('pt,en');
	
	//CALLS THE API AND GET WHAT SUBTITLES ARE AVAILABLE FOR THAT VIDEO FILE
	$strSubtitlesAvailable = $sub->getAvailableSubtitles();
	
	//GIVEN THE AVAILABLE SUBTITLES, GETS THE BEST CHOICE BASED ON YOUR PREFERENCES
	$bestAvailableSubtitle = $sub->searchForPreferredSubtitle($strSubtitlesAvailable);
	
	//DOWNLOADS THE SUBTITLE TO THE SAME FOLDER OF THE VIDEO FILE
	$sub->downloadSubtitle($bestAvailableSubtitle);
	
	echo "Subtitle in language `{$bestAvailableSubtitle}` downloaded!";
} catch (Exception $e) {
	die($e->getMessage());
}
Procedural styles
try {
	//SETS THE PATH TO THE VIDEO FILE
	$strVideofile		= __DIR__.'/tests/alesinicio/Easysubtitle/justified.mp4';
	
	//SETS THE USER AGENT FOR THE API CALL -- USE YOUR OWN PROJECT DATA
	$strUserAgent		= 'SubDB/1.0 (YOUR_NAME/VERSION; PROJECT_URL)';
	
	//SETS WHAT ARE YOUR PREFERRED LANGUAGES FOR THE SUBTITLE -- EITHER AN ARRAY OR COMMA-SEPARATED VALUES
	$preferredLanguages	= ['pt','en'];
	//TRIES TO DOWNLOAD THE SUBTITLE
	$result = EasysubtitleDownloader::downloadSubtitleForVideoFile($strUserAgent, $strVideofile, $preferredLanguages);
	//PARSES THE RESULT OF THE DOWNLOAD ATTEMPT
	if ($result['code'] == 1) {
		echo "Subtitle downloaded!";
	} else {
		die('Error > '.$result['message']);
	}
} catch (Exception $e) {
	die($e->getMessage());
}
|  | Applications that use this package |  | 
No pages of applications that use this class were specified.
 If you know an application of this package, send a message to the author to add a link here.
 If you know an application of this package, send a message to the author to add a link here.