随机小姐姐视频

随机小姐姐视频,采集全网视频链接,视频全部源自于网络,本站不存储任何视频,并支持播放指定id编号视频 ,极速秒级响应

接口地址: https://wzapi.com/api/sjxjjsp

返回格式: JSON

请求方式: GET

请求示例: https://wzapi.com/api/sjxjjsp?category=shejie&format=json

请求参数说明:

名称 必填 类型 说明
format string type=输出json
category string baisi=随机白丝视频
category string heisi=随机黑丝视频
category string gaozhiliang=随机高质量视频
category string chuanda=随机穿搭视频
category string shejie=随机蛇姐视频
category string qingchun=随机清纯视频
category string rewu=随机热舞视频
category string nvda=随机女大视频
category string jk=随机jk视频

返回参数说明:

名称 类型 说明
timestamp string 时间戳,无视即可
video string 视频链接
category string 当前视频分类
id string 播放视频ID
status string 返回状态

返回示例:


请求参数设置:

参数名称 参数值


错误码格式说明:

名称 类型 说明

代码示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>随机小姐姐视频 - 自动播放+ID检索</title>
<meta name="description" content="万站API小姐姐视频,支持分类选择、ID精确检索、自动连播和一键复制视频链接。">
<meta name="keywords" content="小姐姐视频,随机视频接口,万站API,视频连播工具">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui@2.8.18/dist/css/layui.css">
<style>
body { background:#f6f7fb; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
.hero { display:none; }
.container { max-width:1100px;margin:20px auto;padding:0 15px 40px; }
.panel { background:#fff;border-radius:14px;box-shadow:0 10px 25px rgba(15,23,42,.08);padding:24px;margin-bottom:20px; overflow:visible; }
.panel-title { font-size:18px;font-weight:600;color:#1d2129;margin-bottom:18px;display:flex;align-items:center; }
.panel-title i { margin-right:8px;color:#ff5f6d; }
.video-wrapper { position:relative;border-radius:14px;overflow:hidden;background:#000;padding-top:56.25%; }
.video-wrapper video { position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;background:#000; }
.video-info { margin-top:15px; display:flex; flex-wrap:wrap; gap:10px; font-size:14px; color:#555; }
.video-info span { background:#f5f6fa;padding:6px 12px;border-radius:16px; }
.status-open { color:#16baaa; }
.status-error { color:#ff5722; }
.history-list { margin-top:15px; }
.history-item { display:flex; justify-content:space-between; padding:10px 0;border-bottom:1px solid #f0f0f0;font-size:13px; }
.history-item:last-child { border-bottom:none; }
.faq { display:none; }
.control-form { display:flex; flex-wrap:wrap; gap:16px; }
.control-field { flex:1 1 240px; display:flex; flex-direction:column; }
.control-field label { font-size:14px; color:#555; margin-bottom:6px; }
.control-field select,
.control-field input[type="number"] { height:38px; border:1px solid #e4e7ed; border-radius:6px; padding:0 10px; font-size:14px; }
.switch-field { display:flex; align-items:center; gap:8px; }
.switch-field input { width:18px; height:18px; }
.control-actions { width:100%; text-align:right; margin-top:10px; }
@media (max-width:768px) {
.container { margin-top:15px;padding:0 10px 30px; }
.panel { padding:18px; }
.video-wrapper { padding-top:177.78%; }
.control-form { flex-direction:column; }
.control-field { flex:1 1 auto; }
}
</style>
</head>
<body>
<div class="container" style="margin-top:25px;">
<div class="panel video-panel">
<div class="panel-title"><i class="layui-icon layui-icon-camera-fill"></i> 播放器</div>
<div class="video-wrapper">
<video id="videoPlayer" controls autoplay playsinline poster="https://wzapi.com/static/video-placeholder.jpg">
<source src="" type="video/mp4">
当前浏览器不支持播放,请更换浏览器。
</video>
</div>
<div class="video-info" id="videoInfo" style="display:none;">
<span>分类:<strong id="infoCategory">-</strong></span>
<span>ID:<strong id="infoId">-</strong></span>
</div>
</div>

<div class="panel control-panel">
<div class="panel-title"><i class="layui-icon layui-icon-play"></i> 播放控制</div>
<form id="controlForm" class="control-form">
<div class="control-field">
<label for="categorySelect">视频分类</label>
<select id="categorySelect">
<option value="baisi">白丝视频</option>
<option value="heisi">黑丝视频</option>
<option value="gaozhiliang">高质量</option>
<option value="chuanda">穿搭</option>
<option value="shejie">蛇姐</option>
<option value="qingchun">清纯</option>
<option value="rewu">热舞</option>
<option value="nvda">女大</option>
<option value="jk">JK</option>
</select>
</div>
<div class="control-field">
<label for="idInput">指定ID</label>
<input id="idInput" type="number" placeholder="可选,输入视频ID直达">
</div>
<div class="control-field">
<label>自动连播</label>
<div class="switch-field">
<input id="autoplayToggle" type="checkbox" checked>
<span>开启</span>
</div>
</div>
<div class="control-field">
<label>声音</label>
<div class="switch-field">
<input id="soundToggle" type="checkbox" checked>
<span>开启</span>
</div>
</div>
<div class="control-actions">
<button id="playBtn" class="layui-btn layui-btn-danger" type="submit">
<i class="layui-icon layui-icon-video"></i> 获取视频
</button>
<button type="button" class="layui-btn layui-btn-primary" id="nextVideo">
<i class="layui-icon layui-icon-refresh-3"></i> 下一条
</button>
</div>
</form>
</div>

<div class="panel history-panel">
<div class="panel-title"><i class="layui-icon layui-icon-log"></i> 播放历史</div>
<div class="history-list" id="historyList">
<div style="color:#999;font-size:13px;">暂无播放记录</div>
</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/layui@2.8.18/dist/layui.js"></script>
<script>
layui.use(['form', 'layer'], function() {
const form = layui.form;
const layer = layui.layer;
const videoPlayer = document.getElementById('videoPlayer');
const videoInfo = document.getElementById('videoInfo');
const infoCategory = document.getElementById('infoCategory');
const infoId = document.getElementById('infoId');
const nextBtn = document.getElementById('nextVideo');
const historyList = document.getElementById('historyList');
const controlForm = document.getElementById('controlForm');
const categorySelect = document.getElementById('categorySelect');
const idInput = document.getElementById('idInput');
const autoplayToggle = document.getElementById('autoplayToggle');
const soundToggle = document.getElementById('soundToggle');
const playBtn = document.getElementById('playBtn');
let formData = {category: 'baisi', id: '', autoplay: true, sound: true};
let history = [];

function syncFormData() {
formData.category = categorySelect.value || 'baisi';
formData.id = (idInput.value || '').trim();
formData.autoplay = autoplayToggle.checked;
formData.sound = soundToggle.checked;
}

controlForm.addEventListener('submit', function(e) {
e.preventDefault();
syncFormData();
fetchVideo();
});

categorySelect.addEventListener('change', function() {
formData.category = categorySelect.value || 'baisi';
});

idInput.addEventListener('input', function() {
formData.id = (idInput.value || '').trim();
});

autoplayToggle.addEventListener('change', function() {
formData.autoplay = autoplayToggle.checked;
});

soundToggle.addEventListener('change', function() {
formData.sound = soundToggle.checked;
videoPlayer.muted = !formData.sound;
if (formData.sound) {
videoPlayer.volume = 1;
videoPlayer.play().catch(()=>{});
}
});

nextBtn.addEventListener('click', function() {
formData.id = '';
idInput.value = '';
fetchVideo();
});

videoPlayer.addEventListener('ended', function() {
if (formData.autoplay) {
formData.id = '';
idInput.value = '';
fetchVideo(false);
}
});

function fetchVideo(showLoading = true) {
if (showLoading) layer.load(2, {shade: 0.2});
const params = new URLSearchParams();
params.append('format', 'json');
params.append('category', formData.category);
if (formData.id) params.append('id', formData.id);

fetch('https://wzapi.com/api/sjxjjsp?' + params.toString())
.then(res => res.json())
.then(data => {
layer.closeAll('loading');
if (data.status === 'success' && data.data) {
renderVideo(data.data);
} else {
layer.msg(data.message || '获取视频失败', {icon: 5});
}
})
.catch(() => {
layer.closeAll('loading');
layer.msg('请求失败,请稍后重试', {icon: 5});
});
}

function renderVideo(data) {
videoPlayer.src = data.video;
videoPlayer.muted = !formData.sound;
videoPlayer.play().catch(()=>{});
infoCategory.innerText = data.category || '-';
infoId.innerText = data.id || '-';
videoInfo.style.display = 'flex';
addHistory(data);
}

function addHistory(data) {
history.unshift({
id: data.id,
category: data.category,
video: data.video,
time: new Date().toLocaleTimeString()
});
history = history.slice(0, 6);
historyList.innerHTML = history.map(item => `
<div class="history-item">
<div>
<strong>${item.category}</strong> · ID ${item.id}
<div style="color:#999;font-size:12px;">${item.time}</div>
</div>
<div>
<button class="layui-btn layui-btn-xs history-btn" data-id="${item.id}" data-cat="${item.category}">
播放
</button>
</div>
</div>
`).join('');
historyList.querySelectorAll('.history-btn').forEach(btn => {
btn.addEventListener('click', function() {
categorySelect.value = btn.dataset.cat;
idInput.value = btn.dataset.id;
syncFormData();
fetchVideo();
});
});
}

// 默认加载一次
categorySelect.value = 'baisi';
autoplayToggle.checked = true;
soundToggle.checked = true;
syncFormData();
fetchVideo();
});
</script>
</body>
</html>