Một cặp đôi sinh viên đại học đặt phòng khách sạn, cô gái thay đồ và mặc quần tất đen, bạn trai xé toạc quần tất, không dùng bao cao su, xuất tinh bên trong","lastmod":"2026-07-11","duration":"53:45","url":"/play/19164200.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDM4MzY4MjUyZWJjYjJlZmE4ZTFlYzZlMjE1YWM5ZjUuanBn.cache","vod_id":18989289,"title":"200GANA-2239 Softcore nghiêm túc, Lần đầu quay phim. 1449 Một nữ sinh viên đại học 18 tuổi được phát hiện ở Gotanda trong mùa tiệc cuối năm, chúng tôi rất vui mừng khi gặp cô ấy! Cô ấy nhút nhát và muốn gần gũi với một anh chàng khóa trên mà cô ấy thích, nhưng không biết làm thế nào, vì vậy chúng tôi đã thực hiện một buổi tập dượt (về cơ bản là quan hệ tình dục). Trong buổi tập, cô ấy nhiệt tình mút dương vật, đạt cực khoái bằng ngón tay và tận hưởng tư thế cưỡi ngựa cùng những chuyển động hông sống động, bộc lộ sự dâm đãng thầm kín của mình trước ống kính! (0002).","lastmod":"2025-03-23","duration":"01:00:59","url":"/play/18989289.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGM5ZTJjODY4MWE5YzA0ZTIwYWQ0MTYzODM4MmIwZWUuanBn.cache","vod_id":18976555,"title":"200GANA-1594 Phim nhẹ nhàng nghiêm túc, quay lần đầu. 975 (広瀬そば)","lastmod":"2025-03-23","duration":"00:59:16","url":"/play/18976555.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTUxMGFhZGExYjIyN2YxMmExZDkyZmU3NzM1YWFmNjEuanBn.cache","vod_id":18953477,"title":"SSPD-099 Học trò-giáo viên đáng hổ thẹn 3: Tsubasa Amane","lastmod":"2025-03-22","duration":"01:57:16","url":"/play/18953477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTEvNzAyZWE2ZGY2Yzk5ODBlNTRiMmU4ODhiZjBlYWYyNDAuanBn.cache","vod_id":19046454,"title":"Milan, một người phụ nữ chuyển giới xinh đẹp hơn bất kỳ người phụ nữ nào, đang ở một mình trong khách sạn, tự thỏa mãn và nói rằng cô ấy thích ăn những dương vật to.","lastmod":"2025-08-10","duration":"02:38","url":"/play/19046454.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvN2UwMGU5ZDRmOTRiZDk5N2FmZmE4MmU1ZDNkOGZhMjMuanBn.cache","vod_id":19164989,"title":"Nữ sinh trung học thủ dâm trong nhà vệ sinh, mặc quần lót trùm đầu, lộn ngược, tiểu tiện khắp mặt","lastmod":"2026-07-11","duration":"08:11","url":"/play/19164989.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDcvZTUwMGQxNmFhZDA5NjcwN2Y3Njc3ZWM0MWEwNDM0OTYuanBn.cache","vod_id":19051343,"title":"CHUC121 Cô sinh viên đại học siêu dễ thương Aya (22 tuổi)","lastmod":"2025-09-06","duration":"01:12:10","url":"/play/19051343.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDRiOGFkN2U4MzRmZWFkNWY2MDAzYTRiMjhkNDQ0ZGIuanBn.cache","vod_id":19140681,"title":"Bỏ qua những rào cản bên lề, cô gái sinh viên đại học bán thời gian trầm lặng","lastmod":"2026-01-28","duration":"08:03","url":"/play/19140681.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDc4NmE3ZGE3OGM0YWY4MWVhZTAyMGEzODJjZjg0NGUuanBn.cache","vod_id":19159203,"title":"Trải nghiệm đầu tiên cực kỳ xấu hổ của tôi với máy khoan bê tông trần truồng - bộ phận sinh dục của tôi bị lộ ra! Hậu môn của tôi cũng hoàn toàn lộ rõ! Cần gạt máy mát xa điện Primo","lastmod":"2026-05-21","duration":"03:57:25","url":"/play/19159203.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWU3MDNjODAzYjgxYWJiYTFkNTEzMTI1Y2U1NTY4YjEuanBn.cache","vod_id":19009634,"title":"[Câu chuyện có thật] Một nữ sinh trung học ở Fushun kể lại trải nghiệm mất trinh tiết của mình với một người đàn ông lớn tuổi hơn, bao gồm cả câu chuyện đau lòng về việc bị bắt vì đưa một chàng trai về nhà!","lastmod":"2025-03-24","duration":"01:43","url":"/play/19009634.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDMvNTJlMGU0MWJmMGIyYTE3YzdiN2YzYzZjNzM0ZDY2YjUuanBn.cache","vod_id":19060943,"title":"Lần đầu tiên một bác sĩ quấy rối trong quá trình khám sức khỏe _ Rei Kamiki (24), một nữ nhân viên văn phòng, mặc dù là một kẻ biến thái START_193","lastmod":"2025-11-02","duration":"02:13:47","url":"/play/19060943.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvOWM2OWZhNDk5YzMyMzZlMzA0MTBhOTZjNmI4YTNiNTAuanBn.cache","vod_id":19167984,"title":"Sinh viên nam đại học giúp tìm căn hộ bị tấn công tình dục; nữ môi giới bất động sản cực kỳ gợi cảm; Miyamoto Koyuki; Miyamoto Koyuki; Center Village","lastmod":"2026-07-12","duration":"01:39:48","url":"/play/19167984.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjhlYmIzYTE0OTBlMTQyOTgwYWZlZjYyNjljZDEwYzEuanBn.cache","vod_id":18966614,"title":"Việc lộ mặt là chìa khóa! Aisha, một cựu người có ảnh hưởng trên Pornhub và là sinh viên Thượng Hải đã rời khỏi lĩnh vực này, là một người phụ nữ lăng nhăng đáng ngạc nhiên với vẻ ngoài tinh tế, tham gia vào nhiều hình thức quan hệ tình dục và xuất tinh. (7)","lastmod":"2025-12-14","duration":"00:16:44","url":"/play/18966614.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjkvN2UzYzAzZDE0ODhhNjE3NzRhMTAyOTM0ODM3N2MyYTIuanBn.cache","vod_id":19055145,"title":"Hiện đang là sinh viên đại học.","lastmod":"2025-09-28","duration":"34:45","url":"/play/19055145.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWE3MTkzZDJmZGU3MGY1MmNhN2IwOGM0MzI4NzZjNWIuanBn.cache","vod_id":19005586,"title":"Sau khi bị 100 công ty từ chối, hy vọng cuối cùng của MIFD-256-C là trở thành diễn viên phim người lớn!! Nếu không thể trở thành diễn viên phim người lớn, tôi sẽ phải quay về nước.","lastmod":"2025-03-24","duration":"02:29:16","url":"/play/19005586.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTcyODc0YWRmYjg5ZmE0ODM2MDk4Zjc3YzdmZWY0ODEuanBn.cache","vod_id":19142032,"title":"\"Cái gì?! Mình đang cương cứng à?\" Tôi đến một tiệm làm đẹp để thử việc, và hóa ra ở đó toàn là những cô gái ngây thơ, chỉ có mình tôi là đàn ông! (Quá trình trải nghiệm HUNTC-468)","lastmod":"2026-02-07","duration":"03:39:35","url":"/play/19142032.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWM0MDExYmVmM2FkYzkzNjM5OWU5MWM0YTMzNDMzODMuanBn.cache","vod_id":18952113,"title":"Ảnh riêng tư bị rò rỉ: Một nữ sinh trẻ với khuôn mặt trái ngược lộ diện [Huang Jiawen] vay tiền với lãi suất cao và bị ép buộc phải bù đắp bằng thân thể; Cô ấy chụp nhiều ảnh tự sướng khêu gợi và tắm; Ziwei có thân hình đỉnh cao (15)","lastmod":"2025-12-14","duration":"00:00:57","url":"/play/18952113.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTA0YzJiMGMyODZhMmExNzQ5OGFhMzU2NDQyZjFiMjcuanBn.cache","vod_id":18927122,"title":"Cô gái xuất tinh YMDD-163: Cô gái Futa xuất tinh bằng dương vật Mari Rika","lastmod":"2025-12-14","duration":"02:35:21","url":"/play/18927122.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTVkZWZhNTY4NWQ5ZTVkMjA1ZGNhMDQyZjM1YTA3NzkuanBn.cache","vod_id":18963953,"title":"ED Mosaic Newcomer ❤️ Sinh viên đại học sở hữu vòng một G-cup tự nhiên chất lượng hàng đầu - Chenxi!","lastmod":"2025-12-14","duration":"00:47:23","url":"/play/18963953.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjIzYzlkZGZmMTUwNzE5ZjA0MDg3MjdmYzY1MDNmZTkuanBn.cache","vod_id":19020529,"title":"Có phụ nữ nào từng trải qua hiện tượng \"nổ tung miệng\" chưa? (Dựa trên thử nghiệm thực tế!)","lastmod":"2025-03-24","duration":"11:07","url":"/play/19020529.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGQyMzYyZjA1YTE2OGZmYzFkZDNiZmI2MGM0YmQ1OTAuanBn.cache","vod_id":19151663,"title":"Cô nữ sinh dễ thương với mái tóc buộc hai bím mua đồ chơi tình dục và tự thỏa mãn để đạt khoái cảm tối đa.","lastmod":"2026-04-04","duration":"01:46:00","url":"/play/19151663.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTcvMjRlZDQzZjRjNzk1ZDRkMmY3ZDljOTNjNmEyZGJhNDIuanBn.cache","vod_id":19053111,"title":"Bánh trái cây hé lộ bí quyết giúp nữ nhân viên bán hàng đạt hiệu suất bán hàng cao nhất.","lastmod":"2025-09-16","duration":"15:27","url":"/play/19053111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2M1MTlkYjYwYmY4NThkNDI4NDhlYWQ2ZDBiNzFmMzQuanBn.cache","vod_id":18980607,"title":"[Phụ đề tiếng Trung] IPZZ-061 Thầy giáo trung niên biến thái cưỡng hiếp và chiếm đoạt đôi môi non nớt của học sinh - Kana Momonogi","lastmod":"2025-12-14","duration":"02:03:43","url":"/play/18980607.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDgvNzY2NGU1NmM3NzIwZTgzYzgwNDZlZGFhYWZhOTlhYzEuanBn.cache","vod_id":19051656,"title":"Mất trinh, mang thai, xuất tinh vào bên trong 50 cô gái, sự kiện đặc biệt kéo dài 4 giờ. Diễn viên không rõ danh tính BDSR532","lastmod":"2025-09-07","duration":"04:00:19","url":"/play/19051656.html"}]},
videoTitle: 'Ngọt! Nhà vô địch 25 nữ sinh trung học TỐT NHẤT! [Sinh viên danh dự đặc biệt 2] Nữ sinh, góc nhìn thứ nhất フレッシュ・ゴードン-妄想族',
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=/`;
}
};
}