Προς το περιεχόμενο
  • 0
Συνδεθείτε  
thiva7

Dailymotion graber

Ερώτηση

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

Γεια σας

 

 

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

 

θελω να περνω βιντεο απο το 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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

2 απαντήσεις σε αυτή την ερώτηση

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

  • 0

Καλημέρα

 

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

 

<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 ανάλογα με την ποιότητα που σου δίνει.

 

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

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

 

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

 

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

 

Ευχαριστω

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Χρήσιμες πληροφορίες

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.