Uống rượu làm tăng ham muốn tình dục!! Quan hệ tình dục NTR với 8 người vợ của bạn bè. Diễn viên bao gồm Ichijo Kimika, Enjo Hitomi, Shindo Nozomi, v.v. Dự án KSB - Emaniel","lastmod":"2026-07-11","duration":"04:03:20","url":"/play/19163495.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjAvYzlkZDlmNjAxMWVmODExMjRiNjg3OTliM2E3MmYxZWYuanBn.cache","vod_id":19039251,"title":"CEMD680 Tôi đang cố gắng nuôi dạy một búp bê tình dục biết vâng lời tôi, tập 14","lastmod":"2025-06-20","duration":"02:08:53","url":"/play/19039251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGE0ZWQyYmEzZjFkM2RjMWVmYmE4MDA3ZmNkMzdjNzAuanBn.cache","vod_id":18957324,"title":"[Phụ đề tiếng Trung] SDMUA-025 Một người chị gái lẳng lơ, sau khi lén nhìn bố mẹ tái hôn quan hệ tình dục, bị dục vọng chi phối và quyến rũ anh rể với dương vật khổng lồ! Chúng tôi đã ở bên nhau suốt thời gian đại dịch COVID-19.","lastmod":"2025-12-14","duration":"02:03:21","url":"/play/18957324.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTkvMDc0ZDQ2N2IzZDViZWU4MTdjZTE2MzQ0OWU4OGJlNTkuanBn.cache","vod_id":19047819,"title":"[Không kiểm duyệt] Kết quả giảm cân vượt trội! Đốt cháy calo bằng tình dục mãnh liệt. (Shan Zhongxiang, 10musume_100622_01)","lastmod":"2025-08-19","duration":"57:24","url":"/play/19047819.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzNjNWI4NTc3M2ZmZWYxMWViZGY2ZGNhNmQyMDViMDguanBn.cache","vod_id":18955080,"title":"Sự kiện tri ân người hâm mộ SNIS-627 S1: Nếu bạn có thể kiềm chế không xuất tinh, bạn có thể tận hưởng tình dục ngay lập tức! Sakurai Aya và các người mẫu nghiệp dư thực thụ mang đến 20 video hấp dẫn.","lastmod":"2025-12-14","duration":"02:39:08","url":"/play/18955080.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTUvZjlhNDBiMjEzYTc2MGI5OTA2NjdkZGZhNTk5Yjc0NzUuanBn.cache","vod_id":19043012,"title":"Hành vi dâm ô của người mẫu MDWP0017: một kỹ thuật viên tiệm massage quyến rũ Shu Kexin bằng dục vọng.","lastmod":"2025-07-14","duration":"29:03","url":"/play/19043012.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGQ2MDg2M2JlMmY2NzQ2YTUxMDYxYjU1MDJlN2JmNDcuanBn.cache","vod_id":19008309,"title":"Vớ đen cưỡi ngựa, BDSM không dùng bao cao su, tình dục nồng nhiệt","lastmod":"2025-03-24","duration":"13:56","url":"/play/19008309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmRhNDA2ZjBmNjFhYmE1NzgxNGQyZTAyZGVjYWY5MjcuanBn.cache","vod_id":18975242,"title":"MDTM-815 Quan hệ tình dục thô tục với một người đẹp mặc đồng phục thủy thủ 02","lastmod":"2025-03-23","duration":"01:59:14","url":"/play/18975242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTkwMjI2YjVjOGM3Mjk1MWYzMjBlMTJhOGU3OWI5YzYuanBn.cache","vod_id":19015192,"title":"Một buổi massage và trị liệu đã gặp sự cố; người phụ nữ nóng bỏng, quyến rũ đã bị tấn công tình dục! Tinh dịch đặc quánh bắn vào miệng cô ấy—cảm giác thật tuyệt!","lastmod":"2025-03-24","duration":"10:23","url":"/play/19015192.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTA0MzM2NWJhNGZhZjA0ZWNkNGRjOTgyZmY2ZjU5MGQuanBn.cache","vod_id":18924408,"title":"Một nữ hoàng quyến rũ hạng nhất, chuyên gia massage hộp đêm, đã quyến rũ một nhân viên massage tại tiệm massage với dương vật khổng lồ, dường như là một khách quen. Nhân viên massage để con gái mình ở phòng sau rồi quan hệ tình dục với cô ta.","lastmod":"2025-12-14","duration":"01:36:48","url":"/play/18924408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTI2YzkxYTg2NDkzMzg0ZGMyMGE3M2MxZDRkNjZmMmQuanBn.cache","vod_id":18931402,"title":"OFJE-239_D Tám Giờ Quan Hệ Tình Dục Khi Bạn Không Ở Nhà - Phần 1 - Nội dung đầy đủ, Tuyển tập 8 tác phẩm mới nhất (Đĩa Blu-ray), Phần 4","lastmod":"2025-12-14","duration":"02:08:47","url":"/play/18931402.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmRiOTNkZWI5OTQ5M2RiNDMwODcxOTNkMDQ5OTRkZDAuanBn.cache","vod_id":18961641,"title":"DOCP-060 Bất ngờ, cô ấy được mát-xa từ phía sau, đôi ngực ướt đẫm của cô ấy cũng được mát-xa. Mặc dù không thích, nhưng dần dần cô ấy cảm thấy hưng phấn và khoái cảm! Ngực cô ấy được mát-xa, và cơ thể cô ấy...","lastmod":"2025-12-14","duration":"03:44:45","url":"/play/18961641.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDM1N2JhNjcyZDI4MWE3N2U3YzJjNjRiNjFjNWYyN2YuanBn.cache","vod_id":19164024,"title":"Massage toàn thân thon gọn, co thắt cơ thể, tiểu không tự chủ, cực khoái, kích thích tình dục, massage dầu, Nishimiya Yume, nghiệp dư hạng S","lastmod":"2026-07-11","duration":"01:56:10","url":"/play/19164024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODUyYTI2YTU1ZDVkNGU5Mzc5ODk2OTc0MjEzZmFkYTQuanBn.cache","vod_id":18991966,"title":"300NTK-209 Một nữ sinh viên đại học năng động trong câu lạc bộ quần vợt trải nghiệm cực khoái uốn cong người!! Đằng sau cuộc sống câu lạc bộ quần vợt thú vị, cô ấy cũng tham gia vào những màn ân ái nồng nhiệt, đầy yêu thương với bạn trai! Chúng ta khám phá một nữ sinh viên đại học tràn đầy tình yêu, khao khát được thâm nhập và đạt cực khoái viên mãn, với tinh dịch trắng tràn ra từ âm hộ xinh đẹp của cô ấy!! Phim tài liệu Khách sạn Tình yêu Thời lượng 2 giờ 051","lastmod":"2025-03-23","duration":"01:05:38","url":"/play/18991966.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTQxZjMzZTA3NjI5NmMxMjY2YjQ0MWIwOTM1NjdjM2EuanBn.cache","vod_id":19135002,"title":"Tiệm massage NTR Gương Thần: Một cô bạn gái xinh đẹp, mảnh mai bị phản bội, nhưng cô không thể cưỡng lại sức quyến rũ khó cưỡng của người chị gái ngực khủng. (Natsu Nishida, Konatsu Kashiwagi HSODA-077)","lastmod":"2025-12-24","duration":"02:17:23","url":"/play/19135002.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWViNjQyZmEzMmIyOWFkMDkwYWU4YTBjNWRhYjhkMTcuanBn.cache","vod_id":18943633,"title":"Chúc ngủ ngon x2 - Chúc ngủ ngon tình dục 2","lastmod":"2025-12-14","duration":"00:16:14","url":"/play/18943633.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvOTdlYmFkYzU5MGNiYjRhN2ExNTkzNjZlZjVjOWRhODguanBn.cache","vod_id":19167099,"title":"HEYZO 3399 quan hệ tình dục ngoài màn ảnh với một nữ sinh viên tomboy! — Tomboy G-chan","lastmod":"2026-07-11","duration":"01:33:35","url":"/play/19167099.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzQ3YjAxZWNmMTljYjA1ZmM5OTczM2ViYzM0Y2VjMWQuanBn.cache","vod_id":18978713,"title":"FC2PPV 3567083 Lần quay phim đầu tiên! Phát hành độc quyền video sex đầu tiên và cũng là cuối cùng của một người đàn ông nghiêm túc và chân thành!!","lastmod":"2025-03-23","duration":"01:11:27","url":"/play/18978713.html"}]},
videoTitle: 'Tiệm Massage Quái Thú Tình Dục Tập 2: Cạm Bẫy Tình Dục Vô Hình - Qin Kexin',
language: 'vi',
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('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
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=/`;
}
};
}