High-value, plump, fat, mature woman [Little Butterfly] rubbing her breasts and touching her vagina, close-up close-up of finger insertion, very tempting, don't miss it if you like it.","lastmod":"2026-07-11","duration":"00:46:08","url":"/play/18923530.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzM4YTY4NThjNzYyZjUzYmU4MGNhOGE3OWM1Y2E5NTMuanBn.cache","vod_id":19156981,"title":"A beautiful young lady's support for a skinny, lewd man's livestream resulted in excellent sales.","lastmod":"2026-05-07","duration":"01:56:52","url":"/play/19156981.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2ZmNjJjOGZlNzNkNmFjYzgxYzY0MTNjYzVlZTE5OWUuanBn.cache","vod_id":18938635,"title":"AUKS-083_A Slim yet voluptuous lesbian! A super obscene lingerie fanatic!! Hayakawa Serina, Ninomiya Kazuka Part 1","lastmod":"2025-03-22","duration":"01:26:10","url":"/play/18938635.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMzAvNDdiMjljNmRjNjljMmRiNTU4MDJhNzkxMTdkYmY3MjQuanBn.cache","vod_id":19060193,"title":"My sister's best friend and I had sex during lunch break.","lastmod":"2025-10-29","duration":"17:42","url":"/play/19060193.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzM2MTgyM2ZmNTE1NGNhZTFjOGNkYjk4NzYxMTFkMDguanBn.cache","vod_id":18931976,"title":"Carib082518-738 Shiro Yuzu's H-cup jiggling","lastmod":"2025-12-14","duration":"01:00:46","url":"/play/18931976.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTUvM2E5YjFiNTdkYWFlZTJmNWYxOTY2NTIwNmQyNTNhZTUuanBn.cache","vod_id":19062666,"title":"A Southeast Asian mixed-race woman with K-cup breasts working in a factory. \"I might have sex addiction...\" She's driven to near madness by being violently penetrated by a huge penis. (Unknown actress KTKC_190)","lastmod":"2025-12-13","duration":"01:58:53","url":"/play/19062666.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzAzMzFlNDIxNGE1OTQ2NTc2ZjIxYjc0Nzg1NTBhZDguanBn.cache","vod_id":19146742,"title":"Ejaculation Dependence Improvement and Rehabilitation Center: New nurse M-chan is incredibly gentle, helping men with intense libido and long-lasting erections relieve stress ~ START-422","lastmod":"2026-03-06","duration":"02:19:56","url":"/play/19146742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjM1YmQ3YmJhMjNmZmNiMDNhZGJkMDViYzE3MDc5OTguanBn.cache","vod_id":18988873,"title":"413INST-020 [Personal Shooting] 24-year-old busty beautician Akiho enjoys a reverse massage with her H-cup breasts covered in essential oils! Her soft breasts and vulva are soaking wet, yearning to be penetrated in this creamy pie sex!","lastmod":"2025-12-14","duration":"48:35","url":"/play/18988873.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY0NDc3NzdlODVmYzNiZjQwY2Q5MzA3YWZlYzUyZmUuanBn.cache","vod_id":18997302,"title":"A special 4-shot compilation of H-cup voluptuous girls' first orgasm - Sasaki An","lastmod":"2025-12-14","duration":"02:29:35","url":"/play/18997302.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzgyNjQyNTc3NzFmYWQyMmZiNDAwMWEzYzY2YzE5Y2IuanBn.cache","vod_id":18994735,"title":"The older sister saw her younger brother masturbating and immediately went to help him. (From a \"Family Fantasy Series\") S6: E!","lastmod":"2025-12-14","duration":"25:05","url":"/play/18994735.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2M2OGQ4NjhlZDUwNGRmMDlkZTZkYWY1NGZjZDYxNWQuanBn.cache","vod_id":19136040,"title":"Staring intently at the penis! A middle-aged woman who absolutely loves oral sex performs a sadistic vacuum sucking blowjob. Tsujii Honoka MIAB-538","lastmod":"2025-12-31","duration":"02:31:48","url":"/play/19136040.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzAxZmM0NDFiNGM3NmMyYTJkYmRkZjQ4NDM1MmFmNDQuanBn.cache","vod_id":18984525,"title":"XVSR-462 Bubble Bath Princess H-Cup Beautiful Big Breasts Cumshot Service Bubble Bath Girl Mao Kurata","lastmod":"2025-03-23","duration":"01:58:15","url":"/play/18984525.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjI3NjgzNDdhMDQzNDBjYjQwYmM3YzExMDRlMzg5MjUuanBn.cache","vod_id":18990934,"title":"HongKongDoll Doll Sister Cosplays National Team","lastmod":"2025-03-23","duration":"27:17","url":"/play/18990934.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjNmNGNhZDUwYjVmMjM3ZDNjYTE5MTMzYWQ1NmRlYmUuanBn.cache","vod_id":18966910,"title":"FC2PPV 3237348 [Personal] At home, the H-cup wife, who has no sexual experience with anyone other than her husband, is putting her daughter to sleep and is keeping her voice down so as not to wake her daughter.","lastmod":"2025-03-22","duration":"01:02:20","url":"/play/18966910.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTc3NGM2ZTI2NmYzY2RhMmM4Yzg0YTc1YmE3NTc1YzYuanBn.cache","vod_id":19016526,"title":"SORA225: J●'s First Group Sex Party. A serious young woman with natural F-cup breasts is forcibly taken to a group sex party with delinquent boys. Stripped naked and gang-raped in public, she experiences a masochistic frenzy!","lastmod":"2025-03-24","duration":"02:11:32","url":"/play/19016526.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2U5ODBhYWNjNjVjZmE5OGNhZTI0ZjRhMDViZjI4NzAuanBn.cache","vod_id":18954315,"title":"[Big-breasted mature woman][Milk bar] A woman with very beautiful breasts is showing off her \"little white rabbit\" in her live stream! ✨✨✨--She's very pretty, I'm watching her live stream with milk bar #1","lastmod":"2025-12-14","duration":"00:38:43","url":"/play/18954315.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzJhZjA4YzEwNDVjZDIzOTEwYWRkNGE2YjlkYTM4MTAuanBn.cache","vod_id":19147010,"title":"A slender, busty young woman gets fucked by a guy in all sorts of positions.","lastmod":"2026-03-07","duration":"20:34","url":"/play/19147010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTZhYjYyZGQzMGVmMzBkNTNjM2M5ZjM4Y2EzNWFkZGEuanBn.cache","vod_id":19024046,"title":"JUNY104C is a voluptuous, sexy, and lewd food delivery girl whose nipples are so sensitive that they leak vaginal fluid.","lastmod":"2025-03-24","duration":"02:31:55","url":"/play/19024046.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjA4MDIyNmFjNWQ1NWJmM2IzMWViNTRiNTYwNWUzNzkuanBn.cache","vod_id":18935320,"title":"KTKC-070 A voluptuous female student and a middle-aged teacher get close to a cream pie - A crazy extramarital affair leading to procreation.","lastmod":"2025-12-14","duration":"02:02:29","url":"/play/18935320.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTUvMWY1M2RmMGI1M2Y3ZjE3OTg3MzlhZGJmMzM2MTk5MTAuanBn.cache","vod_id":19047175,"title":"Blonde woman gets in-house massage service","lastmod":"2025-08-14","duration":"20:20","url":"/play/19047175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGEzOGQ2ZmVkZDYzNWI4OGY0NjA5MDNlMWJlYzViYTcuanBn.cache","vod_id":18965425,"title":"\"Surveillance hacking ✅ Real leak\" Several attractive women in an urban village rented a bungalow and converted it into a brothel to provide fast food services. They had clients of all ages, and their business was booming because of their good looks. (1)","lastmod":"2025-03-22","duration":"00:03:53","url":"/play/18965425.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjc1OWIwZmQ2MGE0YzcwNjVkMGZlYTJkOTJmNDgxYmIuanBn.cache","vod_id":19149123,"title":"The young lady in a white nightgown at the love hotel","lastmod":"2026-03-19","duration":"58:38","url":"/play/19149123.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTFkY2U0NzBiZGMzZDZjYWM5OTg0NWUyMzQyNzgzMjguanBn.cache","vod_id":19018535,"title":"SSNI674 A voluptuous boss and a virgin subordinate.","lastmod":"2025-03-24","duration":"01:59:50","url":"/play/19018535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmY5MjkxNGJmZmY2MzQ1MDU4ODZkMjIxZmU5NThjYTIuanBn.cache","vod_id":19022674,"title":"EYAN142 Real flight attendant service!! Unlimited ejaculation OK bubble bath girl former CA wife Asakura Nagi's unbanned ejaculation.","lastmod":"2025-03-24","duration":"01:58:47","url":"/play/19022674.html"}]},
videoTitle: 'MIDV393 Soft G-cup breast play service! A gentle and voluptuous older sister who makes you want to fuck her right away.',
language: 'en',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Link copied!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link copied!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}