其他教程

其他教程

Products

当前位置:首页 > 其他教程 >

万单哥:海外短视频怎么营销?

GG网络技术分享 2025-03-18 16:14 0


大家好,这里是关于[YouTube视频解析API],[万单哥:海外短视频怎么营销?]问题的解答,希望对您有所帮助。如果你还想了解更多这方面的信息,请关注本站其他相关内容,共同学习吧!

YouTube视频解析API

2018年9月22日教程大全YouTube,YouTube视频解析,YouTube解析API

YouTube视频解析API

下方为YouTube视频解析API源码,存储为.php文件调用即可

<?php

/**

*

* YouTuBe API

*

* @author DanMo <https://www.cheshirex.com/>

* @date 2018-08-18 19:42:30

* @version 0.26

*

*

*/

error_reporting(0);

header(\'Content-type: text/json;charset=utf-8\');

$ui = array();

foreach($_GET as $key => $value){

$ui[$key] = trim($value);

}

if( empty($ui[\'vid\']) ){

die(\'Please attach relevant parameters!\');

}

define(\'VID\',$ui[\'vid\'] );

define(\'VIDEO_URL\',\"https://www.youtube.com/watch?v=\");

define(\'YouTuBe_Api\',\"https://y2mate.com/zh-cn/analyze/ajax\");

define(\'TEST_API_KEY\', \'AIzaSyCOz5Yml_mICULfhM0s_u87l4MRvcL7_p0\' );

define(\'API_KEY\', \'AIzaSyBiMxVlkwUqqHbxVU3HJV3KcPFQPikfZwE\' );

function https_curl($url,$params=false,$ispost=0){

$httpInfo = array();

$ch = curl_init();

curl_setopt( $ch, CURLOPT_HTTP_VERSION , CURL_HTTP_VERSION_1_1 );

curl_setopt( $ch, CURLOPT_USERAGENT , \'JuheData\' );

curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT , 60 );

curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt( $ch, CURLOPT_TIMEOUT , 60);

curl_setopt( $ch, CURLOPT_RETURNTRANSFER , true );

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);

if( $ispost )

{

curl_setopt( $ch , CURLOPT_POST , true );

curl_setopt( $ch , CURLOPT_POSTFIELDS , $params );

curl_setopt( $ch , CURLOPT_URL , $url );

}

else

{

if($params){

curl_setopt( $ch , CURLOPT_URL , $url.\'?\'.$params );

}else{

curl_setopt( $ch , CURLOPT_URL , $url);

}

}

$response = curl_exec( $ch );

if ($response === FALSE) {

//echo \"cURL Error: \" . curl_error($ch);

return false;

}

$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );

$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );

curl_close( $ch );

return $response;

}

function api_curl($url,$data){

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_POST, 1);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($curl, CURLOPT_POSTFIELDS,$data);

curl_setopt($curl, CURLOPT_HEADER,0);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($curl);

if (curl_errno($curl)) {

return \'ERROR \'.curl_error($curl);

}

curl_close($curl);

return $response ;

}

$APIs = [

\'categories.list\' => \'https://www.googleapis.com/youtube/v3/videoCategories\',

\'videos.list\' => \'https://www.googleapis.com/youtube/v3/videos\',

\'search.list\' => \'https://www.googleapis.com/youtube/v3/search\',

\'channels.list\' => \'https://www.googleapis.com/youtube/v3/channels\',

\'playlists.list\' => \'https://www.googleapis.com/youtube/v3/playlists\',

\'playlistItems.list\' => \'https://www.googleapis.com/youtube/v3/playlistItems\',

\'activities\' => \'https://www.googleapis.com/youtube/v3/activities\',

];

function getApi($name){

global $APIs;

return $APIs[$name].\"?\";

}

function _parse_url_path($url){

$array = parse_url($url);

return $array[\'path\'];

}

function _parse_url_query($url){

$array = parse_url($url);

$query = $array[\'query\'];

$queryParts = explode(\'&\', $query);

$params = [];

foreach ($queryParts as $param) {

$item = explode(\'=\', $param);

$params[$item[0]] = empty($item[1]) ? \'\' : $item[1];

}

return $params;

}

function getVideoInfo($vId, $part = [\'id\', \'snippet\', \'contentDetails\', \'player\', \'statistics\', \'status\']){

$API_URL = getApi(\'videos.list\');

$params = [

\'id\' => is_array($vId) ? implode(\',\', $vId) : $vId,

\'key\' => API_KEY,

\'part\' => implode(\', \', $part),

];

return https_curl($API_URL,$params,0);

}

function getPageContent($id){

$page = \'http://www.youtube.com/watch?v=\'.$id;

$arr = array(

\"ssl\" => array(

\"verify_peer\" => false,

\"verify_peer_name\" => false,

),

);

$content = file_get_contents($page, false, stream_context_create($arr));

return $content;

}

function getDownloadLinks($id){

$videoMap = array(

\"13\" => array(\"3GP\", \"Low Quality - 176x144\"),

\"17\" => array(\"3GP\", \"Medium Quality - 176x144\"),

\"36\" => array(\"3GP\", \"High Quality - 320x240\"),

\"5\" => array(\"FLV\", \"Low Quality - 400x226\"),

\"6\" => array(\"FLV\", \"Medium Quality - 640x360\"),

\"34\" => array(\"FLV\", \"Medium Quality - 640x360\"),

\"35\" => array(\"FLV\", \"High Quality - 854x480\"),

\"43\" => array(\"WEBM\", \"Low Quality - 640x360\"),

\"44\" => array(\"WEBM\", \"Medium Quality - 854x480\"),

\"45\" => array(\"WEBM\", \"High Quality - 1280x720\"),

\"18\" => array(\"MP4\", \"Medium Quality - 480x360\"),

\"22\" => array(\"MP4\", \"High Quality - 1280x720\"),

\"37\" => array(\"MP4\", \"High Quality - 1920x1080\"),

\"38\" => array(\"MP4\", \"High Quality - 4096x230\")

);

$content = getPageContent($id);

$videos = array(\'MP4\' => array(), \'FLV\' => array(), \'3GP\' => array(), \'WEBM\' => array());

if(preg_match(\"\'\\\"url_encoded_fmt_stream_map\\\":\\\"(.*?)\\\"\'si\", $content, $r)){

$data = $r[1];

$data = explode(\',\', $data);

foreach($data As $cdata){

$cdata = str_replace(\'\\u0026\', \'&\', $cdata);

$cdata = explode(\'&\', $cdata);

foreach($cdata As $xdata){

if(preg_match(\'/^sig/\', $xdata)){

$sig = substr($xdata, 4);

}

if(preg_match(\'/^url/\', $xdata)){

$url = substr($xdata, 4);

}

if(preg_match(\'/^itag/\', $xdata)){

$type = substr($xdata, 5);

}

}

$url = urldecode($url);

$videos[$videoMap[$type][0]][$videoMap[$type][1]] = $url;

}

}

return $videos;

}

function format_bytes($size){

$units = array(\' B\', \' KB\', \' MB\', \' GB\', \' TB\');

for($i = 0; $size >= 1024 && $i < 4; $i++){

$size /= 1024;

}

return round($size, 2).$units[$i];

}

function itag($itag){

$stream_itag = array(

\"38\" =>\"3072p\",

\"85\" =>\"1080p\",

\"46\" =>\"1080p\",

\"37\" =>\"1080p\",

\"102\" =>\"720p\",

\"45\" =>\"720p\",

\"84\" =>\"720p\",

\"22\" =>\"720p\",

\"120\" =>\"720p\",

\"44\" =>\"480p\",

\"35\" =>\"480p\",

\"101\" =>\"360p\",

\"100\" =>\"360p\",

\"43\" =>\"360p\",

\"34\" =>\"360p\",

\"82\" =>\"360p\",

\"18\" =>\"270p/360p\",

\"6\" =>\"270p\",

\"83\" =>\"240p\",

\"13\" =>\"144p\",

\"5\" =>\"240p\",

\"36\" =>\"240p\",

\"17\" =>\"144p\"

);

//return $stream_itag[$itag];

parse_str($itag,$info);

return array(

\'iTag\' => $stream_itag[$info[\'itag\']],//清晰度

//\'Duration\' => $info[\'dur\'],//时间

\'mt\' => $info[\'expire\'],//文件大小

\'type\' => $info[\'mime\'] //文件形式

);

}

function compress_html_main($buffer){

$initial=strlen($buffer);

$buffer=explode(\"<!--html-->\", $buffer);

$count=count ($buffer);

for ($i = 0; $i <= $count; $i++){

if (stristr($buffer[$i], \'<!--html no compression-->\')){

$buffer[$i]=(str_replace(\"<!--html no compression-->\", \" \", $buffer[$i]));

}else{

$buffer[$i]=(str_replace(\"\\t\", \" \", $buffer[$i]));

$buffer[$i]=(str_replace(\"\\n\\n\", \"\\n\", $buffer[$i]));

$buffer[$i]=(str_replace(\"\\n\", \"\", $buffer[$i]));

$buffer[$i]=(str_replace(\"\\r\", \"\", $buffer[$i]));

while (stristr($buffer[$i], \' \'))

{

$buffer[$i]=(str_replace(\" \", \" \", $buffer[$i]));

}

}

$buffer_out.=$buffer[$i];

}

return $buffer_out;

}

function returns($data){

global $ui;

return $ui[\'callback\'] ? $ui[\'callback\'].\"({$data})\" : \"Jquery_\".bin2hex(base64_encode(\'sbtencentsbtencent\')).\"({$data})\";

}

$params = [

\'url\' => VIDEO_URL.VID,

\'ajax\' => 1,

];

//$_loc1_ = json_decode(api_curl(YouTuBe_Api,$params),true);

$_loc1_ = json_decode(https_curl(YouTuBe_Api,$params,1),true);

preg_match(\'|<div class=\"tab-pane fade active in\" id=\"mp4\">(.*?)</div> <div class=\"tab-pane fade\" id=\"mp3\">|\',compress_html_main($_loc1_[\'result\']),$_loc2_);

preg_match(\"#data-vlink=\\\"(.*?)\\\" .*class=\\\"video-thumbnail\\\".* >#\",compress_html_main($_loc1_[\'result\']),$_loc3_);//默认播放

preg_match_all(\"#data-vlink=\\\"(.*?)\\\" >#\",$_loc2_[1],$_loc4_);//视频链接

//preg_match_all(\"#</td> <td>(.*?)</td> <td class=\\\"txt-center\\\">#\",$_loc2_[1],$_loc5_);//视频大小

foreach( $_loc4_[1] as $row ){

$vinfo = itag($row);

$video[] = array(

\'url\' => $row,

\'itag\' => $vinfo[\'iTag\'],//清晰度

\'mt\' => $vinfo[\'mt\'],//文件大小

\'type\' => $vinfo[\'type\'] //文件形式

);

}

$_loc6_ = itag($_loc3_[1]);

$data = array(

\'date\' => gmdate(\"D M d Y h:i:s \").\"GMT+0800 (中国标准时间)\",

\'api\' => \'mtop.api.video.url.youtube.get\',

\'version\' => \'0.26\',

\'tip\' => \'More than 1080 definition films and audio segmentation are not provided\',

\'result\' => array(

\'default\' => array(

\'url\' => $_loc3_[1],

\'itag\' => $_loc6_[\'iTag\'],//清晰度

\'mt\' => $_loc6_[\'mt\'],//文件大小

\'type\' => $_loc6_[\'type\'] //文件形式

),

\'video\' => $video,

)

);

//print_r( $_loc4_[1] );

//print_r( compress_html_main($_loc1_[\'result\']) );

print_r( returns(json_encode($data)) );

万单哥:海外短视频怎么营销?

我们短视频五大营销内容:

(1)短视频裂变:我们运用多语种文字+图片+模板+背景+台词+标题+母视频,根据不同平台选择视频尺寸,素材组合方式、AI智能裂变生成N个视频

(2)短视频SEO:批量挖掘指定行业关键词、形成海外短视频SEO的词根库,然后按照国家地区、行业、修饰词批量裂变短视频的标题,用裂变后的标题+短视频,通过facebook、Instagram、TIKtok、Youtube官方api批量发布,我们用的是多账号+多视频+#多话题+#热门标签+多标题+#@用户的矩阵AI技术,更高效的实现短视频SEO排名和曝光,另外软件还可以根据数据分析,点赞数、评论数、点击数进行优化,结合每个国家的时差,使用定时自动发布功能,提升海外短视频SEO效果。

(3)矩阵多账号运营:做高质量的产品素材,打造N个短视频大号,然后通过官方api矩阵一键分发,包含自动回复私信、评论、意向客户不容易丢失,并且有流量询盘数据整合,赋能出海独立站、短视频大号、引流到Whatsapp,促进客户高效转化

(4)海外网红数据挖掘:批量挖掘YouTube、tiktok、ins全球网红的联系方式


标签:

提交需求或反馈

Demand feedback