php获取视频信息,支持优酷土豆新浪腾讯等多家网站

2024-02-11 13:58

本文主要是介绍php获取视频信息,支持优酷土豆新浪腾讯等多家网站,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

video.php类

<?php
/**
*	解析 视频信息 类
*
*	支持 优酷, 土豆 酷6 56 新浪 qq播客 乐视 乐视
**/class class_video{// 超时时间var $timeout = 5;/***	解析视频**	1 参数 url 地址**	返回值 数组 or false**/function parse( $url ) {$arr = parse_url( $url );if ( empty( $arr['host'] ) ) {return false;}$host = strtolower( preg_replace( '/.*(?:$|\.)(\w+(?:\.(?:com|net|org|co|info)){0,1}\.[a-z]+)$/iU', '$1', $arr['host'] ) );if ( $host == 'youku.com' ) {return $this->youku( $url );}if ( $host == 'tudou.com' ) {return $this->tudou( $url );}if ( $host == 'ku6.com' ) {return $this->ku6( $url );}if ( $host == '56.com' ) {return $this->_56( $url );}if ( $host == 'sina.com.cn' ) {return $this->sina( $url );}if ( $host == 'qq.com' ) {return $this->qq( $url );}if ( $host == 'letv.com' ) {return $this->letv( $url );}if ( $host == 'sohu.com' ) {return $this->sohu( $url );}return false;}/***	优酷的**	1 参数 vid or url**	返回值 false array**/function youku( $vid ) {	if ( !$vid ) {return false;}if ( !preg_match( '/^[0-9a-z_-]+$/i', $vid ) ) {if ( !preg_match( '/^http\:\/\/v\.youku\.com\/v_show\/id_([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/player\.youku\.com\/player\.php[0-9a-z\/_-]*\/sid\/([0-9a-z_-]+)/i', $vid, $match ) ) {return false;}$vid = $match[1];}$url = 'http://v.youku.com/player/getPlayList/VideoIDS/' . $vid;if ( !$json = $this->url( $url ) ) {return false;}if ( !$json = @json_decode( $json, true ) ) {return false;}if ( empty( $json['data'][0] ) ) {return false;}$json = $json['data'][0];$r['vid'] = $json['vidEncoded'];$r['url'] = 'http://v.youku.com/v_show/id_'. $json['vidEncoded'] .'.html?f=http://www.lianyue.org/';$r['swf'] = 'http://player.youku.com/player.php/sid/'. $json['vidEncoded'] .'/lianyue.swf';$r['title'] = $json['title'];$r['img']['large'] = $json['logo'];$r['img']['small'] = str_replace( '.com/11', '.com/01', $json['logo'] );$r['time'] = $json['seconds'];$r['tag'] = $json['tags'];return $r;}/***	土豆的**	1 参数 vid or url**	返回值 false array**/function tudou( $vid ) {if ( !$vid ) {return false;}if ( !preg_match( '/^[0-9a-z_-]+$/i', $vid ) ) {if ( !preg_match( '/^http\:\/\/www\.tudou\.com\/programs\/view\/([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/www\.tudou\.com\/v\/([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/www\.tudou\.com\/(?:listplay|albumplay)\/[0-9a-z_-]+\/([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/www\.tudou\.com\/(?:a|l)\/[0-9a-z_-]+\/.+iid\=(\d+)/i', $vid, $match ) ) {return false;}$vid = $match[1];}$url = 'http://www.tudou.com/v/'. $vid .'/v.swf';$this->url( $url, $header );if( empty( $header['Location'] ) ) {return false;}$parse = parse_url( $header['Location'] );if ( empty( $parse['query'] ) ) {return false;}$this->parse_str( $parse['query'], $arr );if ( empty( $arr['snap_pic'] ) ) {return false;}$r['vid'] = $arr['code'];$r['url'] = 'http://www.tudou.com/programs/view/'. $arr['code'] .'/?FR=http://www.lianyue.org/';$r['swf'] = 'http://www.tudou.com/v/'. $arr['code'] .'/lianyue.swf';$r['title'] = $arr['title'];$r['img']['large'] = $arr['snap_pic'];$r['img']['small'] = str_replace( array( '/w.jpg', 'ykimg.com/11' ), array( '/p.jpg', 'ykimg.com/01' ), $arr['snap_pic'] );$r['time'] = $arr['totalTime'] / 1000;$r['tag'] = empty( $arr['tag'] ) || $arr['tag'] == 'null' ? array() : $this->array_unempty( explode( ',', $arr['tag'] ) );return $r;}/***	酷 6 的**	1 参数 vid or url**	很老的视频某些 没大图*	返回值 false array**/function ku6( $vid ) {if ( !$vid ) {return false;}if ( !preg_match( '/^[0-9a-z_-]+\.{0,2}$/i', $vid ) ) {if ( !preg_match( '/^http\:\/\/v\.ku6\.com\/show\/([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/player\.ku6\.com\/refer\/([0-9a-z_-]+)/i', $vid, $match ) && !preg_match( '/^http\:\/\/v\.ku6\.com\/special\/show_\d+\/([0-9a-z_-]+)/i', $vid, $match ) ) {return false;}$vid = $match[1];}$vid = preg_replace( '/^([0-9a-z_-]+)\.*$/i', '$1..', $vid );if ( !$json = $this->url( 'http://v.ku6.com/fetchVideo4Player/'. $vid .'.html' ) ) {return false;}if ( !$json = @json_decode( $json, true ) ) {return false;}if ( empty( $json['data']['picpath'] ) ) {return false;}$json = $json['data'];$json['vtime'] = explode( ',', $json['vtime'] );$r['vid'] = $vid;$r['url'] = 'http://v.ku6.com/show/'. $vid .'.h

这篇关于php获取视频信息,支持优酷土豆新浪腾讯等多家网站的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699967

相关文章

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

使用Python实现获取网页指定内容

《使用Python实现获取网页指定内容》在当今互联网时代,网页数据抓取是一项非常重要的技能,本文将带你从零开始学习如何使用Python获取网页中的指定内容,希望对大家有所帮助... 目录引言1. 网页抓取的基本概念2. python中的网页抓取库3. 安装必要的库4. 发送HTTP请求并获取网页内容5. 解

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的