Jump to content
CMSTOOLS.org - форум поддержки и развития CMS

[FIX] Добавление видео с https


Recommended Posts

Как мы все знаем в вии видео можно добавить тк с началом на http, после установки эта проблема решится!

 

 

 

В videos.php найти:

         case "send":
            NoAjaxQuery();

           
И ниже найти:

 

                //Если youtube то добавляем префикс src=" и составляем ответ для скрипта, для вставки в БД
                if(preg_match("/src=\"http:\/\/www.youtube.com|src=\"http:\/\/youtube.com/i", 'src="'.$good_video_lnk)){
                    $good_video_lnk = str_replace(array('#', '!'), '', $good_video_lnk);
                    $exp_y = explode('v=', $good_video_lnk);
                    $exp_x = explode('&', $exp_y[1]);
                    $result_video_lnk = '<iframe width="770" height="420" src="http://www.youtube.com/embed/'.$exp_x[0].'" frameborder="0" allowfullscreen></iframe>';
                }
                
                //Если rutube, То добавляем префикс value="
                if(preg_match("/value=\"http:\/\/www.rutube.ru|value=\"http:\/\/rutube.ru/i", 'value="'.$good_video_lnk)){
                    $exp_frutube = explode('?v=', $good_video_lnk);
                    $result_video_lnk = '<OBJECT width="770" height="420"><PARAM name="movie" value="http://video.rutube.ru/'.$exp_frutube[1].'"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/'.$exp_frutube[1].'" type="application/x-shockwave-flash" wmode="window" width="770" height="420" allowFullScreen="true" ></EMBED></OBJECT>';
                }
                
                //Если vimeo, То добавляем префикс src="
                if(preg_match("/src=\"http:\/\/www.vimeo.com|src=\"http:\/\/vimeo.com/i", 'src="'.$good_video_lnk)){
                    $exp_frutube = explode('com/', $good_video_lnk);
                    $result_video_lnk = '<iframe src="http://player.vimeo.com/video/'.$exp_frutube[1].'" width="770" height="420" frameborder="0"></iframe>';
                }
                
                //Если smotri, То добавляем префикс src="
                if(preg_match("/src=\"http:\/\/www.smotri.com|src=\"http:\/\/smotri.com/i", 'src="'.$good_video_lnk)){
                    $exp = explode('id=', str_replace('#', '', $good_video_lnk));
                    $result_video_lnk = '<object id="smotriComVideoPlayer'.$exp[1].'_1314557535.5897_7726" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="770" height="420"><param name="movie" value="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"  width="770" height="420" type="application/x-shockwave-flash"></embed></object>';
                }

 

 

 

 

И заменить на:


 

                //Если youtube то добавляем префикс src=" и составляем ответ для скрипта, для вставки в БД
                if(preg_match("/src=\"http(?:s)?:\/\/www.youtube.com|src=\"http:\/\/youtube.com/i", 'src="'.$good_video_lnk)){
                    $good_video_lnk = str_replace(array('#', '!'), '', $good_video_lnk);
                    $exp_y = explode('v=', $good_video_lnk);
                    $exp_x = explode('&', $exp_y[1]);
                    $result_video_lnk = '<iframe width="770" height="420" src="http://www.youtube.com/embed/'.$exp_x[0].'" frameborder="0" allowfullscreen></iframe>';
                }
                
                //Если rutube, То добавляем префикс value="
                if(preg_match("/value=\"http(?:s)?:\/\/www.rutube.ru|value=\"http:\/\/rutube.ru/i", 'value="'.$good_video_lnk)){
                    $exp_frutube = explode('?v=', $good_video_lnk);
                    $result_video_lnk = '<OBJECT width="770" height="420"><PARAM name="movie" value="http://video.rutube.ru/'.$exp_frutube[1].'"></PARAM><PARAM name="wmode" value="window"></PARAM><PARAM name="allowFullScreen" value="true"></PARAM><EMBED src="http://video.rutube.ru/'.$exp_frutube[1].'" type="application/x-shockwave-flash" wmode="window" width="770" height="420" allowFullScreen="true" ></EMBED></OBJECT>';
                }
                
                //Если vimeo, То добавляем префикс src="
                if(preg_match("/src=\"http(?:s)?:\/\/www.vimeo.com|src=\"http:\/\/vimeo.com/i", 'src="'.$good_video_lnk)){
                    $exp_frutube = explode('com/', $good_video_lnk);
                    $result_video_lnk = '<iframe src="http://player.vimeo.com/video/'.$exp_frutube[1].'" width="770" height="420" frameborder="0"></iframe>';
                }
                
                //Если smotri, То добавляем префикс src="
                if(preg_match("/src=\"http(?:s)?:\/\/www.smotri.com|src=\"http:\/\/smotri.com/i", 'src="'.$good_video_lnk)){
                    $exp = explode('id=', str_replace('#', '', $good_video_lnk));
                    $result_video_lnk = '<object id="smotriComVideoPlayer'.$exp[1].'_1314557535.5897_7726" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="770" height="420"><param name="movie" value="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="bgcolor" value="#ffffff" /><embed src="http://pics.smotri.com/player.swf?file='.$exp[1].'&bufferTime=3&autoStart=false&str_lang=rus&xmlsource=http%3A%2F%2Fpics.smotri.com%2Fcskins%2Fblue%2Fskin_color.xml&xmldatasource=http%3A%2F%2Fpics.smotri.com%2Fskin_ng.xml" quality="high" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"  width="770" height="420" type="application/x-shockwave-flash"></embed></object>';
                }

               

 

 

Найти:

 

        //################### Парсер . Загрузка данных о видео ###################//
        case "load":
            NoAjaxQuery();
            
            $video_lnk = $_POST['video_lnk'];
            
            if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com|http:\/\/rutube.ru|http:\/\/www.rutube.ru|http:\/\/www.vimeo.com|http:\/\/vimeo.com|http:\/\/smotri.com|http:\/\/www.smotri.com/i", $video_lnk)){
            
                //Открываем ссылку
                
                //Если ссылка youtube, то формируем xml ссылку для получения данных
                if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){
                    $exp_y = explode('v=', $video_lnk);
                    $exp_x = explode('&', $exp_y[1]);
                    $sock = fopen('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$exp_x[0].'&format=xml', 'r');
                } elseif(preg_match("/http:\/\/www.vimeo.com|http:\/\/vimeo.com/i", $video_lnk)){
                    $sock = fopen('http://vimeo.com/api/oembed.xml?url='.$video_lnk, 'r');
                } else {
                    $sock = fopen($video_lnk, 'r');
                }
                
                if(!$sock){
                    echo 'no_serviece';
                } else {
                    $html = '';
                    
                    //Если сервис youtube, rutube, smotri то просто выводи
                    if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com|http:\/\/rutube.ru|http:\/\/www.rutube.ru|http:\/\/smotri.com|http:\/\/www.smotri.com/i", $video_lnk)){
                        while(!feof($sock)){
                            $html .= fgets($sock);
                        }
                    }
                    
                    //Если сервис Vimeo, то сразу применяем кодировку utf-8, win-1251
                    if(preg_match("/http:\/\/www.vimeo.com|http:\/\/vimeo.com/i", $video_lnk)){
                        while(!feof($sock)){
                            $html .= ajax_utf8(fgets($sock));
                        }
                    }
                    
                    fclose($sock);
                    
                    //Если сервис Vimeo, то выводим без кодировки
                    $data = str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html);
                    
                    //Если сервис youtube применяем кодировку utf-8, win-1251
                    $data_all = ajax_utf8(str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html));

                    //Если видеосервис youtube
                    if(preg_match("/http:\/\/www.youtube.com|http:\/\/youtube.com/i", $video_lnk)){
                        preg_match_all('`(<title>[^\[]+\</title>)`si', $data_all, $parse);
                        $res_title = rn_replace(str_replace(array('<title>', '</title>'), '', $parse[1][0]));

                        //Делаем фотку для youtube
                        $parse_start = explode('v=', $video_lnk);
                        $parse_end = explode('&', $parse_start[1]);
                        $res_img = "http://img.youtube.com/vi/{$parse_end[0]}/0.jpg";
                    }
                    
                    //Если видеосервис rutube
                    if(preg_match("/http:\/\/rutube.ru|http:\/\/www.rutube.ru/i", $video_lnk)){
                        $data_rutube = iconv('koi8-u', 'windows-1251', str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html));
                        
                        preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:description")`si', $data_rutube, $parse_rutube);
                        $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:description"', '" />'), '', $parse_rutube[1][0]));
                        
                        preg_match_all('`(<meta property="og:description" content="[^\[]+\<meta property="og:image")`si', $data_rutube, $parse_rutube_descr);
                        $res_descr = rn_replace(str_replace(array('<meta property="og:description" content="', '<meta property="og:image"', '" />'), '', $parse_rutube_descr[1][0]));
                        
                        $exp_rutube_img = explode('v=', $video_lnk);
                        $exp_img_dir = substr($exp_rutube_img[1], 0, 2);
                        $exp_img_dir_2 = substr($exp_rutube_img[1], 2, 2);
                        $res_img = "http://tub.rutube.ru/thumbs/{$exp_img_dir}/{$exp_img_dir_2}/{$exp_rutube_img[1]}-1.jpg";
                    }
                    
                    //Если видеосервис vimeo
                    if(preg_match("/http:\/\/www.vimeo.com|http:\/\/vimeo.com/i", $video_lnk)){
                        preg_match_all('`(<title>[^\[]+\</title>)`si', $data, $parse);
                        $res_title = str_replace(array('<title>', '</title>'), '', $parse[1][0]);
                        
                        preg_match_all('`(<thumbnail_url>[^\[]+\</thumbnail_url>)`si', $data, $parse_img);
                        $res_img = str_replace(array('<thumbnail_url>', '</thumbnail_url>'), '', $parse_img[1][0]);
                        
                        preg_match_all('`(<description>[^\[]+\</description>)`si', $data, $parse_descr);
                        $res_descr = myBrRn(rn_replace($parse_descr[1][0]));
                    }
                    
                    //Если видеосервис smotri
                    if(preg_match("/http:\/\/smotri.com|http:\/\/www.smotri.com/i", $video_lnk)){
                        $html = iconv('utf-8', 'windows-1251', $html);
                    
                        preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:image")`si', $html, $parse_title);
                        $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:image"', '" />'), '', $parse_title[1][0]));
                        
                        preg_match_all('`(<link rel="image_src" href="[^\[]+\<!-- Open Graf Protocol. Facebook/Yandex -->)`si', $html, $parse_img);
                        $res_img = rn_replace(str_replace(array('<link rel="image_src" href="', '<!-- Open Graf Protocol. Facebook/Yandex -->', '" />'), '', $parse_img[1][0]));
                    }

                    $result_img = $res_img;
                    $result_title = trim(strip_tags(strtr($res_title, array(''' => "'", '"' => '"', '&iqu;' => '[', '&iqu2;' => ']'))));
                    $result_descr = trim(strip_tags($res_descr));
                    
                    if($result_img && $result_title)
                        echo "{$result_img}:|:{$result_title}:|:{$result_descr}";
                    else
                        echo 'no_serviece';
                }
            } else
                echo 'no_serviece';
            
            die();
        break;

 

 

 

И заменить на:

 

        //################### Парсер . Загрузка данных о видео ###################//
        case "load":
            NoAjaxQuery();
            
            $video_lnk = $_POST['video_lnk'];
            
            if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i", $video_lnk)){
            
                //Открываем ссылку
                
                //Если ссылка youtube, то формируем xml ссылку для получения данных
                if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com/i", $video_lnk)){
                    $exp_y = explode('v=', $video_lnk);
                    $exp_x = explode('&', $exp_y[1]);
                    $sock = fopen('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$exp_x[0].'&format=xml', 'r');
                } elseif(preg_match("/http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com/i", $video_lnk)){
                    $sock = fopen('http://vimeo.com/api/oembed.xml?url='.$video_lnk, 'r');
                } else {
                    $sock = fopen($video_lnk, 'r');
                }
                
                if(!$sock){
                    echo 'no_serviece';
                } else {
                    $html = '';
                    
                    //Если сервис youtube, rutube, smotri то просто выводи
                    if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i", $video_lnk)){
                        while(!feof($sock)){
                            $html .= fgets($sock);
                        }
                    }
                    
                    //Если сервис Vimeo, то сразу применяем кодировку utf-8, win-1251
                    if(preg_match("/http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com/i", $video_lnk)){
                        while(!feof($sock)){
                            $html .= ajax_utf8(fgets($sock));
                        }
                    }
                    
                    fclose($sock);
                    
                    //Если сервис Vimeo, то выводим без кодировки
                    $data = str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html);
                    
                    //Если сервис youtube применяем кодировку utf-8, win-1251
                    $data_all = ajax_utf8(str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html));

                    //Если видеосервис youtube
                    if(preg_match("/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com/i", $video_lnk)){
                        preg_match_all('`(<title>[^\[]+\</title>)`si', $data_all, $parse);
                        $res_title = rn_replace(str_replace(array('<title>', '</title>'), '', $parse[1][0]));

                        //Делаем фотку для youtube
                        $parse_start = explode('v=', $video_lnk);
                        $parse_end = explode('&', $parse_start[1]);
                        $res_img = "http://img.youtube.com/vi/".$parse_end[0]."/0.jpg";
                    }
                    
                    //Если видеосервис rutube
                    if(preg_match("/http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru/i", $video_lnk)){
                        $data_rutube = iconv('koi8-u', 'windows-1251', str_replace(array('[', ']'), array('&iqu;', '&iqu2;'), $html));
                        
                        preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:description")`si', $data_rutube, $parse_rutube);
                        $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:description"', '" />'), '', $parse_rutube[1][0]));
                        
                        preg_match_all('`(<meta property="og:description" content="[^\[]+\<meta property="og:image")`si', $data_rutube, $parse_rutube_descr);
                        $res_descr = rn_replace(str_replace(array('<meta property="og:description" content="', '<meta property="og:image"', '" />'), '', $parse_rutube_descr[1][0]));
                        
                        $exp_rutube_img = explode('v=', $video_lnk);
                        $exp_img_dir = substr($exp_rutube_img[1], 0, 2);
                        $exp_img_dir_2 = substr($exp_rutube_img[1], 2, 2);
                        $res_img = "http://tub.rutube.ru/thumbs/{$exp_img_dir}/{$exp_img_dir_2}/{$exp_rutube_img[1]}-1.jpg";
                    }
                    
                    //Если видеосервис vimeo
                    if(preg_match("/http:\/\/www.vimeo.com|http:\/\/vimeo.com/i", $video_lnk)){
                        preg_match_all('`(<title>[^\[]+\</title>)`si', $data, $parse);
                        $res_title = str_replace(array('<title>', '</title>'), '', $parse[1][0]);
                        
                        preg_match_all('`(<thumbnail_url>[^\[]+\</thumbnail_url>)`si', $data, $parse_img);
                        $res_img = str_replace(array('<thumbnail_url>', '</thumbnail_url>'), '', $parse_img[1][0]);
                        
                        preg_match_all('`(<description>[^\[]+\</description>)`si', $data, $parse_descr);
                        $res_descr = myBrRn(rn_replace($parse_descr[1][0]));
                    }
                    
                    //Если видеосервис smotri
                    if(preg_match("/http:\/\/smotri.com|http:\/\/www.smotri.com/i", $video_lnk)){
                        $html = iconv('utf-8', 'windows-1251', $html);
                    
                        preg_match_all('`(<meta property="og:title" content="[^\[]+\<meta property="og:image")`si', $html, $parse_title);
                        $res_title = rn_replace(str_replace(array('<meta property="og:title" content="', '<meta property="og:image"', '" />'), '', $parse_title[1][0]));
                        
                        preg_match_all('`(<link rel="image_src" href="[^\[]+\<!-- Open Graf Protocol. Facebook/Yandex -->)`si', $html, $parse_img);
                        $res_img = rn_replace(str_replace(array('<link rel="image_src" href="', '<!-- Open Graf Protocol. Facebook/Yandex -->', '" />'), '', $parse_img[1][0]));
                    }

                    $result_img = $res_img;
                    $result_title = trim(strip_tags(strtr($res_title, array(''' => "'", '"' => '"', '&iqu;' => '[', '&iqu2;' => ']'))));
                    $result_descr = trim(strip_tags($res_descr));
                    
                    if($result_img && $result_title)
                        echo "{$result_img}:|:{$result_title}:|:{$result_descr}";
                    else
                        echo 'no_serviece';
                }
            } else
                echo 'no_serviece';
            
            die();
        break;
        

 

 

 

В profile.js найти
 

var pattern = new RegExp(/http:\/\/www.youtube.com|http:\/\/youtube.com|http:\/\/rutube.ru|http:\/\/www.rutube.ru|http:\/\/www.vimeo.com|http:\/\/vimeo.com|http:\/\/smotri.com|http:\/\/www.smotri.com/i);

И заменить на:

var pattern = new RegExp(/http(?:s)?:\/\/www.youtube.com|http(?:s)?:\/\/youtube.com|http(?:s)?:\/\/rutube.ru|http(?:s)?:\/\/www.rutube.ru|http(?:s)?:\/\/www.vimeo.com|http(?:s)?:\/\/vimeo.com|http(?:s)?:\/\/smotri.com|http(?:s)?:\/\/www.smotri.com/i);

Все! Кликни post-6-0-86410200-1453829540.png!

  • Upvote 8
Link to comment
Share on other sites

  • 3 months later...

Ребят, подскажите, почему вий берет ссылки выборочно, не пойму механизм правильной вставки. Фикс установлен. Например, что не нравится вию в этой ссылке? https://www.youtube.com/watch?v=y3RRKjm8ORs

Edited by Aleina- show
Link to comment
Share on other sites

Ребят, подскажите, почему вий берет ссылки выборочно, не пойму механизм правильной вставки. Фикс установлен. Например, что не нравится вию в этой ссылке? https://www.youtube.com/watch?v=y3RRKjm8ORs

Возможно не получается с видео выдрать превью или еще че

  • Upvote 1
Link to comment
Share on other sites

Ребят, подскажите, почему вий берет ссылки выборочно, не пойму механизм правильной вставки. Фикс установлен. Например, что не нравится вию в этой ссылке? https://www.youtube.com/watch?v=y3RRKjm8ORs

Это vii. И этим всё сказано) :lol:

  • Upvote 1
Link to comment
Share on other sites

  • 5 years later...
4 часа назад, Admin22 сказал:

Не работает, Удалите не актуально!

Удалять не будем. Но за это время с момента написания поста прошло много времени, может уже что и не работает.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...