实现原理非常简单。网上有很多vip视频解析网站如 无名小站 等等,找到输入vip视频的接口。然后再加上一段vip视频地址,最后把整个链接在默认浏览器打开。
打开vip视频解析网站如无名小站 ,可以看到直接的接口。我们要做的就是找到这个接口的链接。
输入一个vip视频链接如https://v.qq.com/x/cover/eiltk86r8o001mf.html(敦刻尔克)然后就可以看了。
上图画圈便是先前看到的接口链接,然后加上“”敦刻尔克”视频链接就可以播放了。
我们要做就是编程实现接口与视频链接的相加,最后在浏览器打开。
我在网上找了很久,看了很多网页源代码终于找到五个接口链接供大家使用。
http://www.wmxz.wang/video.php?url=
http://www.a305.org/weixin.php?url=
http://www.vipjiexi.com/tong.php?url=
http://jx.aeidu.cn/index.php?url=
http://tv.dsqndh.com/?jk=http%3A%2F%2Fjqaaa.com%2Fjx.php%3Furl%3D&url=
string str1 = "http://www.wmxz.wang/video.php?url=";
//定义一个全局变量用来存放解析接口
//这句代码用来实现用默认浏览器打开链接
System.Diagnostics.Process.Start(str1 + textBox1.Text.ToString());
//下面是radiobutton改变监控事件,每次选择一个通道便对str1赋予对应的接口
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://www.vipjiexi.com/tong.php?url=";
}
上面是核心的代码。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace wardseptember
{
public partial class Form1 : Form
{
string str1 = "http://www.wmxz.wang/video.php?url=";
public Form1()
{
InitializeComponent();
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://www.wmxz.wang/video.php?url=";
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (textBox1.Text == "")
{
MessageBox.Show("Please input correct video URL", "Warning Message", MessageBoxButtons.OKCancel);
}
else
{
System.Diagnostics.Process.Start(str1 + textBox1.Text.ToString());
}
}
catch
{
MessageBox.Show("Please check your input", "Warning Message", MessageBoxButtons.OKCancel);
}
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://www.vipjiexi.com/tong.php?url=";
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://jx.aeidu.cn/index.php?url=";
}
private void radioButton5_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://tv.dsqndh.com/?jk=http%3A%2F%2Fjqaaa.com%2Fjx.php%3Furl%3D&url=";
}
private void radioButton4_CheckedChanged(object sender, EventArgs e)
{
str1 = "http://www.a305.org/weixin.php?url=";
}
}
}
namespace wardseptember
{
partial class Form1
{
///
/// Required designer variable.
///
private System.ComponentModel.IContainer components = null;
///
/// Clean up any resources being used.
///
/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radioButton1 = new System.Windows.Forms.RadioButton();
this.radioButton2 = new System.Windows.Forms.RadioButton();
this.radioButton3 = new System.Windows.Forms.RadioButton();
this.radioButton4 = new System.Windows.Forms.RadioButton();
this.radioButton5 = new System.Windows.Forms.RadioButton();
this.textBox1 = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.textBox2 = new System.Windows.Forms.TextBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.radioButton5);
this.groupBox1.Controls.Add(this.radioButton4);
this.groupBox1.Controls.Add(this.radioButton3);
this.groupBox1.Controls.Add(this.radioButton2);
this.groupBox1.Controls.Add(this.radioButton1);
this.groupBox1.Location = new System.Drawing.Point(89, 33);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(269, 148);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "选择播放通道";
//
// radioButton1
//
this.radioButton1.AutoSize = true;
this.radioButton1.Checked = true;
this.radioButton1.Location = new System.Drawing.Point(98, 28);
this.radioButton1.Name = "radioButton1";
this.radioButton1.Size = new System.Drawing.Size(59, 16);
this.radioButton1.TabIndex = 0;
this.radioButton1.TabStop = true;
this.radioButton1.Text = "通道一";
this.radioButton1.UseVisualStyleBackColor = true;
this.radioButton1.CheckedChanged += new System.EventHandler(this.radioButton1_CheckedChanged);
//
// radioButton2
//
this.radioButton2.AutoSize = true;
this.radioButton2.Location = new System.Drawing.Point(98, 50);
this.radioButton2.Name = "radioButton2";
this.radioButton2.Size = new System.Drawing.Size(59, 16);
this.radioButton2.TabIndex = 0;
this.radioButton2.Text = "通道二";
this.radioButton2.UseVisualStyleBackColor = true;
this.radioButton2.CheckedChanged += new System.EventHandler(this.radioButton2_CheckedChanged);
//
// radioButton3
//
this.radioButton3.AutoSize = true;
this.radioButton3.Location = new System.Drawing.Point(98, 72);
this.radioButton3.Name = "radioButton3";
this.radioButton3.Size = new System.Drawing.Size(59, 16);
this.radioButton3.TabIndex = 0;
this.radioButton3.Text = "通道三";
this.radioButton3.UseVisualStyleBackColor = true;
this.radioButton3.CheckedChanged += new System.EventHandler(this.radioButton3_CheckedChanged);
//
// radioButton4
//
this.radioButton4.AutoSize = true;
this.radioButton4.Location = new System.Drawing.Point(98, 116);
this.radioButton4.Name = "radioButton4";
this.radioButton4.Size = new System.Drawing.Size(59, 16);
this.radioButton4.TabIndex = 0;
this.radioButton4.Text = "通道五";
this.radioButton4.UseVisualStyleBackColor = true;
this.radioButton4.CheckedChanged += new System.EventHandler(this.radioButton4_CheckedChanged);
//
// radioButton5
//
this.radioButton5.AutoSize = true;
this.radioButton5.Location = new System.Drawing.Point(98, 94);
this.radioButton5.Name = "radioButton5";
this.radioButton5.Size = new System.Drawing.Size(59, 16);
this.radioButton5.TabIndex = 0;
this.radioButton5.Text = "通道四";
this.radioButton5.UseVisualStyleBackColor = true;
this.radioButton5.CheckedChanged += new System.EventHandler(this.radioButton5_CheckedChanged);
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(158, 212);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(200, 21);
this.textBox1.TabIndex = 1;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(87, 215);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(65, 12);
this.label1.TabIndex = 2;
this.label1.Text = "视频链接:";
//
// button1
//
this.button1.Location = new System.Drawing.Point(205, 249);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(78, 35);
this.button1.TabIndex = 3;
this.button1.Text = "播放";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// textBox2
//
this.textBox2.ForeColor = System.Drawing.Color.Red;
this.textBox2.Location = new System.Drawing.Point(89, 290);
this.textBox2.Multiline = true;
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(269, 64);
this.textBox2.TabIndex = 4;
this.textBox2.Text = "注意:此软件仅用于学习交流,请勿用于任何商业用途。\r\n建议:建议将Chrome浏览器设置为默认浏览器。\r\nanthor:wardseptember";
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(448, 374);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.groupBox1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Form1";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "VIP视频解析助手";
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RadioButton radioButton5;
private System.Windows.Forms.RadioButton radioButton4;
private System.Windows.Forms.RadioButton radioButton3;
private System.Windows.Forms.RadioButton radioButton2;
private System.Windows.Forms.RadioButton radioButton1;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox textBox2;
}
}
https://blog.csdn.net/wardseptember/article/details/78942553
用python实现这个小程序是我今天刚写的(2018.7.16),这次可以说是进行一些优化,vip视频解析接口已经增加到了18个,几乎全网的视频都可以免费观看。另外,这次是直接打包成可执行文件,免安装,方便使用。
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'WatchVIPVideo.ui'
# Created by: PyQt5 UI code generator 5.10.1
# @Time:2018/7/16 14:05
# @Author: wardseptember
# @File: VIPVideoWatch.py
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QWidget, QLabel,QGridLayout,QLineEdit,QMainWindow,QMessageBox,
QComboBox, QApplication)
from PyQt5.QtGui import QIcon,QColor
from PyQt5.QtCore import Qt
import sys
import webbrowser
class VIPVideo(QWidget):
def __init__(self):
super().__init__()
self.setupUi(self)
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(447, 338)
Form.setWindowIcon(QIcon('cat.ico'))
self.comboBox_2 = QtWidgets.QComboBox(Form)
self.comboBox_2.setGeometry(QtCore.QRect(200, 60, 171, 22))
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("Channel 1")
self.comboBox_2.addItem("Channel 2")
self.comboBox_2.addItem("Channel 3")
self.comboBox_2.addItem("Channel 4")
self.comboBox_2.addItem("Channel 5")
self.comboBox_2.addItem("Channel 6")
self.comboBox_2.addItem("Channel 7")
self.comboBox_2.addItem("Channel 8")
self.comboBox_2.addItem("Channel 9")
self.comboBox_2.addItem("Channel 10")
self.comboBox_2.addItem("Channel 11")
self.comboBox_2.addItem("Channel 12")
self.comboBox_2.addItem("Channel 13")
self.comboBox_2.addItem("Channel 14")
self.comboBox_2.addItem("Channel 15")
self.comboBox_2.addItem("Channel 16")
self.comboBox_2.addItem("Channel 17")
self.comboBox_2.addItem("Channel 18")
self.comboBox_2.setEditable(False)
self.label_1 = QtWidgets.QLabel(Form)
self.label_1.setGeometry(QtCore.QRect(70, 60, 121, 21))
self.label_1.setObjectName("label_1")
self.label_2 = QtWidgets.QLabel(Form)
self.label_2.setGeometry(QtCore.QRect(70, 110, 121, 21))
self.label_2.setObjectName("label_2")
self.lineEdit = QtWidgets.QLineEdit(Form)
self.lineEdit.setGeometry(QtCore.QRect(200, 110, 171, 20))
self.lineEdit.setObjectName("lineEdit")
self.textEdit = QtWidgets.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(70, 210, 301, 111))
self.textEdit.setObjectName("textEdit")
self.textEdit.setEnabled(False)
self.pushButton = QtWidgets.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(100, 160, 75, 23))
self.pushButton.setObjectName("pushButton")
self.pushButton.clicked.connect(self.OpenUrl)
self.pushButton_2 = QtWidgets.QPushButton(Form)
self.pushButton_2.setGeometry(QtCore.QRect(260, 160, 75, 23))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_2.clicked.connect(self.close)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
Form.setFixedSize(Form.width(),Form.height())
Form.show()
def OpenUrl(self,Form):
str=""
str1=self.lineEdit.text()
str2=self.comboBox_2.currentText()
if str2=="Channel 1":
str="http://www.wmxz.wang/video.php?url="
elif str2=="Channel 2":
str="http://goudidiao.com/?url="
elif str2 == "Channel 3":
str="http://api.baiyug.cn/vip/index.php?url="
elif str2 == "Channel 4":
str="http://www.a305.org/weixin.php?url="
elif str2=="Channel 5":
str="http://www.vipjiexi.com/tong.php?url="
elif str2 == "Channel 6":
str="http://jx.aeidu.cn/index.php?url="
elif str2 == "Channel 7":
str="http://www.sonimei.cn/?url="
elif str2=="Channel 8":
str="https://api.vparse.org/?url="
elif str2 == "Channel 9":
str="https://jx.maoyun.tv/index.php?id="
elif str2 == "Channel 10":
str="http://pupudy.com/play?make=url&id="
elif str2=="Channel 11":
str="http://www.qxyingyuan.vip/play?make=url&id="
elif str2 == "Channel 12":
str="http://appapi.svipv.kuuhui.com/svipjx/liulanqichajian/browserplugin/qhjx/qhjx.php?id="
elif str2 == "Channel 13":
str="http://api.xfsub.com/index.php?url="
elif str2 == "Channel 14":
str="https://jiexi.071811.cc/jx.php?url="
elif str2 == "Channel 15":
str="http://q.z.vip.totv.72du.com/?url="
elif str2=="Channel 16":
str="http://jx.api.163ren.com/vod.php?url="
elif str2 == "Channel 17":
str="http://www.sfsft.com/admin.php?url="
elif str2 == "Channel 18":
str="http://v.renrenfabu.com/jiexi.php?url="
else:
str="https://api.vparse.org/?url="
if str1=="":
reply = QMessageBox.question(self, 'Message',
"Please correctly input url !",
QMessageBox.Yes | QMessageBox.No,
QMessageBox.Yes)
else:
webbrowser.open(str+str1)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "WatchVIPVideo"))
self.label_1.setText(_translate("Form", "Select a channel:"))
self.label_2.setText(_translate("Form", "Input VIPVideo URL:"))
self.textEdit.setHtml(_translate("Form", "\n"
"\n"
"Note: This software is for learning technology only and should not be used for any commercial purposes.
\n"
"Recommendation: It is recommended to set the Chrome browser as the default browser.
\n"
"Author:wardseptember
\n"
"Author\'s email:[email protected]
"))
self.pushButton.setText(_translate("Form", "Play"))
self.pushButton_2.setText(_translate("Form", "Exit"))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = VIPVideo()
sys.exit(app.exec_())
打包成app更新于2019.2.28
在mac终端输入
pip3 install py2app sip
py2applet --make-setup WatchVIPVideo.py
python3 setup.py py2app
然后就可以在WatchVIPVideo.py同目录下dist文件夹中看到WatchVIPVideo.app
vs2017 C#vip视频解析助手源码
链接:https://pan.baidu.com/s/1nzOM1VVl8r2MyH6N1jcuog 密码:swn5
vip视频解析助手软件下载(c#书写 windows下使用):
链接:https://pan.baidu.com/s/1o92Bi247-DT-ilDK0niN8g 密码:3wqb
vip视频解析助手软件下载(python书写 windows下使用):
链接:https://pan.baidu.com/s/1sV_o2FMVabw1CxqOm74Fhg 密码:gir1
由于百度网盘上传文件受限所以mac版本放到了github上
下载链接
WatchVIPVideoforMac.app/Contents/MacOS/找到WatchVIPVideoforMac运行即可