SOE451, hãy cùng tạo nên một nữ diễn viên hạng S! 2. Tên nghệ danh của tôi đã được quyết định! Quá trình huấn luyện cực kỳ nghiêm ngặt! Học hỏi từ những bậc thầy hàng đầu của ngành công nghiệp phim người lớn! ...
Fujimori Riho, một gái gọi, đã bị người đàn ông lớn tuổi hơn cưỡng hiếp dã man và bị xâm phạm bộ ngực lớn đến mức không kiểm soát được bàng quang.","lastmod":"2026-07-11","duration":"","url":"/play/19244727.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGUzNjBhMzQ3OTY4N2JlZGY0ZWY1ZTBlMDVjOTg2YmMuanBn.cache","vod_id":19098031,"title":"[Không kiểm duyệt] MADM-165 Lần đầu tiên của tôi là với người vợ ngực bự nhà bên cạnh... Trinh tiết của tôi đã bị lấy mất bởi bộ ngực của người hàng xóm, và trước khi tôi kịp nhận ra, tôi đã trở thành một kẻ bạo dâm.","lastmod":"2025-03-29","duration":"02:17:55","url":"/play/19098031.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGViODRlZmRlNWIxZTUyYjFhNzViYjBhZjYzMjYyY2EuanBn.cache","vod_id":19132617,"title":"MEYD-485 Vợ tôi rất ngưỡng mộ người cha tuyệt vời của cô ấy, người luôn thúc đẩy cô ấy duy trì hoạt động và hướng tới mục tiêu...","lastmod":"2025-03-29","duration":"01:57:39","url":"/play/19132617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWViYWE3YTc0ZmQ5MDUwNzc2ZGE4ZDczODdmZTA1MDguanBn.cache","vod_id":19049934,"title":"[Gian hàng Trung Quốc] Một cô gái xinh đẹp, cao ráo, gợi cảm với đôi chân dài miên man đang quan hệ tình dục với bạn trai trong phòng ký túc xá, vừa làm vừa chụp ảnh tự sướng. Cô rên rỉ và la hét khi anh ta đang làm tình với mình, \"Ôi, sâu quá, anh làm em chết mất! Không, em không chịu nổi nữa!\"","lastmod":"2025-03-28","duration":"","url":"/play/19049934.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzdkNzI4NWY3OThhYzhjZjk1MGE2YjkzZTgyYjhkNjMuanBn.cache","vod_id":19140332,"title":"[Vụ ngoại tình bị phanh phui] Sau vụ ngoại tình, người vợ lăng nhăng quyết định ly hôn với chồng, nhưng để tránh ly hôn, cô ta đã chấp nhận chuyện ngoại tình và chia sẻ người vợ với người tình của mình.","lastmod":"2025-03-29","duration":"11:22","url":"/play/19140332.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTVmYWM0ZDdjMjg1MGU3ZjEwY2Q5N2JiZjA5MGRjMzYuanBn.cache","vod_id":19156511,"title":"DYPE002 Cô em gái hay gây rắc rối: Khóa huấn luyện diễn viên","lastmod":"2025-03-29","duration":"01:14:24","url":"/play/19156511.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGFmYWNkYTA3ZDlkMzU0NjNhNjQwMWU2N2I5ZDg0ZTkuanBn.cache","vod_id":19124343,"title":"CATWALK POISON 118 You and Me Adagio","lastmod":"2025-03-29","duration":"01:59:39","url":"/play/19124343.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGQ1NmQyMGRmMjVjOTJiMmI0MWQ1Mjk1ZjZmNzU3MjYuanBn.cache","vod_id":19091619,"title":"DLDSS-155 Vợ tôi về nhà dự lễ tưởng niệm và bị bốn người anh trai có dương vật rất lớn cưỡng hiếp tập thể. Cô ấy không chịu buông tha... Ayaka Tomoda","lastmod":"2025-03-29","duration":"02:03:39","url":"/play/19091619.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGJiZmZiOGM1NGE4MTIwMDg5N2Y0M2IxMDIzMjZlZDYuanBn.cache","vod_id":19156503,"title":"PH-141 Cô gái bán hàng nửa dịch vụ quyết định dùng âm đạo của mình","lastmod":"2025-03-29","duration":"35:43","url":"/play/19156503.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTgxMGVjOTc2MTk1NDE4OGZmYzc1ODBjZDMyM2JkYzEuanBn.cache","vod_id":19105594,"title":"384SHSS-003 [Cảnh đầu tiên] Ứng dụng AV trực tuyến → Trải nghiệm AV Cảnh 1018 Một nữ lễ tân ngực khủng quyết định đóng phim AV để tìm kiếm cảm giác mạnh. Chỉ cần đưa một ngón tay vào vùng kín đã cạo sạch lông của cô ấy sẽ khiến cơ thể cô ấy co giật và rung lên, đạt cực khoái hết lần này đến lần khác…!","lastmod":"2025-03-29","duration":"","url":"/play/19105594.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDQyYjYzNTRkOTNkODlmOWQwNjU5NjZmMjFjMzlkMTMuanBn.cache","vod_id":19111806,"title":"Cô bạn thân gợi cảm của tôi đã trói tay chân tôi và cưỡng hiếp âm đạo tôi một cách tàn bạo trong khi đeo dương vật giả.","lastmod":"2025-03-29","duration":"","url":"/play/19111806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjllYWVhOTgzNmY4NzIyYWY2YjRlZGRjNzRmMzJlZDUuanBn.cache","vod_id":19042800,"title":"KIL-004 Tôi đã dùng cô em gái nhỏ nhắn, quyến rũ của mình làm vật thí nghiệm cho một loại thuốc kích dục và đã chơi đùa với cô ấy.","lastmod":"2025-03-28","duration":"01:41:22","url":"/play/19042800.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWNlMTI2ZGQ0YTViMDc4NjJiYTQ4OWEyZmM1ZTQ3YjMuanBn.cache","vod_id":19070117,"title":"HUNT-300 Tôi là một cậu bé nhút nhát, vì vậy khi một cô gái cùng lớp đến nhà tôi và muốn xem phim người lớn, tôi không thể từ chối.","lastmod":"2025-03-28","duration":"02:34:48","url":"/play/19070117.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWM2MGUwYmQyYjcxOTU3MjllNGM0ZTUxY2M0NWNlZjAuanBn.cache","vod_id":19037851,"title":"DOCP-073_B \"Bạn có thực sự là một thiên thần không?!\" Dương vật của tôi bị gãy và tôi không thể thủ dâm được.","lastmod":"2025-03-28","duration":"01:45:06","url":"/play/19037851.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzY2ZWY1MTY2YmE1MzcyNGNjYmJkMWVlNDE1ODgwZjEuanBn.cache","vod_id":19101290,"title":"MMMB-093 Mẹ vợ tôi đã già rồi nhưng vẫn muốn quan hệ tình dục! Một người mẹ kế 50 tuổi đang rất bức bối cầu xin được quan hệ tình dục suốt 4 tiếng đồng hồ.","lastmod":"2025-03-29","duration":"03:57:18","url":"/play/19101290.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2Y2OTg2NGFkNzBlZDViMWZjOTI3YzViODIxYjFiMWMuanBn.cache","vod_id":19148243,"title":"HOKS050 Gây sốc! (Shocking) Vợ tôi đã quan hệ tình dục với bố tôi, người giao hàng và anh trai tôi...","lastmod":"2025-03-29","duration":"02:06:29","url":"/play/19148243.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2NjY2RmYzU0Nzk5ZGZhMWU4MGRkOGM3NDFmOGIxNjkuanBn.cache","vod_id":19087221,"title":"10musume Natural Girl 022223_01 Hãy để em mút dương vật của anh thật sâu vào cổ họng em, Mami Tatsumi","lastmod":"2025-03-29","duration":"00:20:29","url":"/play/19087221.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjQ1OGMxNDBiN2Q0YzExODBlZmY2YTFjZTQwNTYwNWUuanBn.cache","vod_id":19113004,"title":"Lần này, tôi để cô bạn thân nhất của mình luồn tay vào hậu môn chật hẹp của tôi và thọc ra thọc vào trong khi rung âm đạo của tôi.","lastmod":"2025-03-29","duration":"","url":"/play/19113004.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjEyNmY4NGMyMTUzYWZhYTQwYjU2MGYxNDZmZjc4MDUuanBn.cache","vod_id":19070273,"title":"Ngôn ngữ vùng Caribbean 111717-540 Makoto Shiraishi, Nữ diễn viên Spirit ~Chương trình đặc biệt bất ngờ nhân dịp nghỉ hưu~","lastmod":"2025-03-28","duration":"00:57:13","url":"/play/19070273.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTQ4ODE2NDBkMzczZWI1NzcxMDlkNWU0ZmVjZmRkNzYuanBn.cache","vod_id":19046143,"title":"BF-594 Giáo viên chủ nhiệm của tôi làm việc trong một bồn tắm bong bóng đồng phục, vì vậy nếu bạn đề cử tôi,","lastmod":"2025-03-28","duration":"","url":"/play/19046143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjU5NDU5ZWMzMjliNmJkN2JkMzcwNWIzMGE0MGNmYzcuanBn.cache","vod_id":19159643,"title":"MIDE668 Bà chủ nhà hiền lành kia hóa ra lại là một con điếm chính hiệu!! Tôi bị trói và bị huấn luyện đến bờ vực cực khoái.","lastmod":"2025-03-29","duration":"02:57:35","url":"/play/19159643.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWUxOTYyYzk1ODUyMmVhZWM1OTFkZjlmY2Q0YmExZmUuanBn.cache","vod_id":19089685,"title":"[Không kiểm duyệt] STARS-757 Thử thách diễn xuất thực sự đầu tiên của Kominato Yotsuba: 7 điều tôi muốn bạn trai tàn bạo của mình làm cho cô gái ngây thơ, kiêu ngạo vừa chuyển đến Tokyo","lastmod":"2025-03-29","duration":"03:41:32","url":"/play/19089685.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvOWJkOGM4OWE5ZmZlMzExNjI1Nzk1MTI1OGFlNThiZjQuanBn.cache","vod_id":19244956,"title":"Câu lạc bộ nhìn trộm trường nữ sinh: Cưỡng hiếp bằng thuốc kích dục và xuất tinh trong 3P Yura Kana và các nữ diễn viên hàng đầu khác rơi vào bẫy","lastmod":"2026-07-11","duration":"","url":"/play/19244956.html"}]},
videoTitle: 'SOE451, hãy cùng tạo nên một nữ diễn viên hạng S! 2. Tên nghệ danh của tôi đã được quyết định! Quá trình huấn luyện cực kỳ nghiêm ngặt! Học hỏi từ những bậc thầy hàng đầu của ngành công nghiệp phim người lớn! ...',
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=/`;
}
};
}