Προς το περιεχόμενο

Dailymotion graber


thiva7

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Γεια σας

 

 

θα ηθελα την βοηθεια σας για ενα σιτε που εχω...

 

θελω να περνω βιντεο απο το Dailymotion και να το βαζω στο δικο μου σιτε.

 

πιο αναλυτικα

 

στο σκριπ που δουλευω εχω την δυνατοτητα βαζοντας απλα το λινκ απο τα υποστηριζομενα σιτε να περνω τα βιντεο στο σερβερ μου και να τα hostαρο εγω.

μεσα σε αυτα δεν ειναι το Dailymotion ομως :(

 

προσπαθησα να φτιαξω εγω κωδικα με την ελαχιστες γνωσεις που εχω αλλα απετηχα ( οπως ηταν αναμενομενο :P ) καταφερα ομως βασιζομενος στο υπαρχων κωδικα απο τα αλλα σιτε να περνω τιτλο και περιγραφη απο το Dailymotion αλλα οχι το λινκ του βιντεο.

 

ο κωδικας ειναι αυτος

<?php
defined('_VALID') or die('Restricted Access!');
class VGraber_dailymotion
{
	private $url;
	private $html;
	private $video;
	
	private $error		= FALSE;
	private $errors 	= array(
		'html_error'		=> 'Failed to get html for the requested url!',
		'title_error'		=> 'Failed to get video title!',
		'category_error'	=> 'Failed to get video category!',
		'file_Error'		=> 'Failed to get video file!'
	);
	
	public function __construct($url)
	{
		$this->url	= $url;
	}
	
	public function process()
	{
		$this->get_html($this->url);
		if (!$this->error) {
			$this->video['title']		= $this->get_title();
			$this->video['description']	= $this->get_description();
			$this->video['tags']		= $this->get_tags();
			$this->video['category']	= $this->get_category();
			$this->video['file']		= $this->get_file();
			$this->video['size']		= $this->get_size();
		}
	}
	
	public function get_video()
	{
		return $this->video;
	}
	
	public function get_html($url)
	{
		if (!$this->html = VCurl::string($url, 'iVisited=1; cookAV=1')) {
			$this->error = $this->errors['html_error'];
		}
		
		$this->html	= str_replace(array("\n", "\r"), '', $this->html);
		$this->html = preg_replace('/\s\s+/', ' ', $this->html);
	}
	
	public function is_error()
	{
		return ($this->error) ? TRUE : FALSE;
	}
	
	public function get_error()
	{
		return $this->error;
	}
	
	private function get_title()
	{
//		preg_match('/<h2 style="margin: 5px;">(.*?)<\/h2>/', $this->html, $match);
		preg_match('/<title>(.*?)<\/title>/', $this->html, $match);
		if (isset($match['1']) && $match['1']) {
			$string	= htmlspecialchars(strip_tags(trim($match['1'])), ENT_QUOTES, 'UTF-8');
			if (!empty($string)) {
				return $string;
			}
		}
		
		$this->error = $this->errors['title_error'];
	}
	
	private function get_description()
	{
		return '';
	}
	
	private function get_tags()
	{
		preg_match('/<strong>Tags:<\/strong>(.*?)<\/div>/', $this->html, $match);
		if (isset($match['1']) && !empty($match['1'])) {
			preg_match_all("/<a href='(.*?)'>(.*?)<\/a>/", $match['1'], $matches);
            if (isset($matches['2']) && $matches['2']) {
                return $matches['2'];
            }			
		}
	}
	
	private function get_category()
	{		
		return '';
	}
	
	private function get_file()
	{
		preg_match('/<iframe src=\'http:\/\/www\.Dailymotion\.com\/videos\/embed\/(.*?)\' frameborder=\'0\'/', $this->html, $match);
		if (isset($match['1']) && $match['1']) {
			$html = VCurl::string('http://www.Dailymotion.com/videos/embed/'.$match['1']);
			if ($html) {
				preg_match('/so.addVariable\("file",encodeURIComponent\("(.*?)"\)\);/', $html, $match);
				if (isset($match['1']) && $match['1']) {
					return urldecode(trim($match['1']));
				}
			}
		}
		
		return FALSE;
	}
	
	private function get_size()
	{
        if (isset($this->video['file'])) {
            return VCurl::size($this->video['file']);
        }	
	}
}

με αυτο το κωδικα περνω τιτλο κανονικα αλλα δεν περνω λινκ για το source του βιντεο

 

πχ ¨http://proxy-56.dailymotion.com/sec(d8b2a55e80f42b139e67ecfb5ba05b50)/frag(3)/video/277/944/17449772_mp4_h264_aac.flv

 

μου βγαζει απλα κενο αντι για ενα τετοιο λινκ

 

Ευχαριστω

 

 

 

 

 

 

 

Επεξ/σία από thiva7
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καλημέρα

 

Δοκίμασε το παρακάτω

 

<br>
<object width="760" height="461">
<param name="movie" value="http://www.dailymotion.com/swf/video/***?autoplay=0&logo=0&hideInfos=1&start=0&syndication=&foreground=&highlight=&forcedQuality=hd1080"></param>
<param name="allowFullScreen" value="true">
</param><param name="allowScriptAccess" value="always"></param>
<param name="wmode" value="transparent"></param>
<embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/***?autoplay=0&logo=0&hideInfos=1&start=0&syndication=&foreground=&highlight=&background=" width="760" height="461" wmode="transparent" allowfullscreen="true" allowscriptaccess=""></embed></object><br />

 

 

Όπου *** θα πρέπει να βάλεις από  το Permalink (ανοίγει στο εξαγωγή) μόνο το κομμάτι που σου έχω κοκκινίσει:http://dai.ly/x11ws8o

 

Δηλαδή:

 

<br>
<object width="760" height="461">
<param name="movie" value="http://www.dailymotion.com/swf/video/x11ws8o?autoplay=0&logo=0&hideInfos=1&start=0&syndication=&foreground=&highlight=&forcedQuality=hd1080"></param>
<param name="allowFullScreen" value="true">
</param><param name="allowScriptAccess" value="always"></param>
<param name="wmode" value="transparent"></param>
<embed type="application/x-shockwave-flash" src="http://www.dailymotion.com/swf/video/x11ws8o?autoplay=0&logo=0&hideInfos=1&start=0&syndication=&foreground=&highlight=&background=" width="760" height="461" wmode="transparent" allowfullscreen="true" allowscriptaccess=""></embed></object><br />

 

 

Tο width & height ρύθμισέ το ανάλογα με τις διαστάσεις του video και το forcedQuality=hd1080 ανάλογα με την ποιότητα που σου δίνει.

 

Ελπίζω να βοήθησα!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ευχαριστω για την απαντηση

 

αλλα αυτο δεν ειναι για embed? εγω δεν θελω να κανω embed τα βιντεο, θελω να περνω το flv/mp4 αρχειο στο δικο μου σερβερ και να το streamαρο εγω.

 

καμια βοηθεια για αυτο?

 

Ευχαριστω

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...