집에서 여동생을 몰래 지켜보던 중 (화장실, 자위, 옷 갈아입는 모습 등) 수영 클럽 때문에 갑자기 깨어나면서 우울해짐 → 네 명의 여동생들이 강제로 성희롱을 당하고 정신적으로 무너짐.","lastmod":"2026-07-11","duration":"05:16:49","url":"/play/19161712.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGVkMDI2NTRiZjAwNTM4YjMyZGQxZDAyMjVjZjIxN2QuanBn.cache","vod_id":19136592,"title":"인생은 단 한 번뿐! 아주 신나는 커플 스와핑 게임. 출연 배우 미상. MTES-137","lastmod":"2026-01-03","duration":"03:01:03","url":"/play/19136592.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWRhYTFjM2VlNjRlNTBiZjZkNzQ0YzQ1ODdiZTExNDIuanBn.cache","vod_id":19153225,"title":"S급 미녀의 첫 원초적 성적 만남과 질내 사정 SPECIAL DLDSS-397-C","lastmod":"2026-04-13","duration":"01:58:34","url":"/play/19153225.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjYzODVhMTA2ZWE3NGEzMWY4NWI0OTBhMjM3M2I3ZDcuanBn.cache","vod_id":18993004,"title":"KAWD-989 저는 항상 비밀로 해왔지만, 가슴이 커요. 키는 145cm인데, 가슴 사이즈는 97cm H컵이에요! 리오짱(19세)은 유혹에 넘어가 AV 데뷔 촬영을 하게 되었습니다.","lastmod":"2025-12-14","duration":"01:57:46","url":"/play/18993004.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2JhNWZjOGVmZTI3ZWMxMGUzZGRiMzg4NTIyYmNiZDcuanBn.cache","vod_id":18949491,"title":"MEYD-258 친구의 어머니와 아들의 친구에게 강간당했고, 심지어 여러 번 오르가즘까지 느꼈습니다... 나카모리 이츠키","lastmod":"2025-03-22","duration":"01:58:44","url":"/play/18949491.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGNmMWE4ZDFjZGIzNTIwOGYwZjgzYTkxZjk5YTQwNDUuanBn.cache","vod_id":18960023,"title":"FSDSS-491 갑작스러운 폭우로 학생들이 러브호텔로 대피했는데, 방과 후 나는 정신을 잃고 그녀의 축축하고 큰 가슴을 곧바로 탐했다… 카나메 모모이사리","lastmod":"2025-12-14","duration":"02:00:57","url":"/play/18960023.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTMzZjNlZTczOWE5YzIzNjEwYjhjMTAwMGQ5OTJkYzIuanBn.cache","vod_id":19156418,"title":"절대 성교육 절정 셀렉션 8시간 Vol.01 스즈무라 아이리(스즈무라 아이리, 카와이 아스나, 노리우라 단 등) PRESTIGE","lastmod":"2026-05-04","duration":"07:57:35","url":"/play/19156418.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmZkMDRkZjJiNjg4YjBkZGVmZjA3YWVkZTRiNmQ2NzguanBn.cache","vod_id":19008191,"title":"MEYD509는 남편이 집을 비운 사이 고향에 친척들을 만나러 갔다. 그곳에서 우연히 어린 시절 첫사랑을 만나게 된 그녀는 열정적이고 은밀한 키스를 나누었다. 절정에 이른 후에도 그녀는 엉덩이를 흔들며 히시마 아이리와 3일 밤낮으로 뜨거운 관계를 이어갔다.","lastmod":"2025-03-24","duration":"01:59:58","url":"/play/19008191.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTQ0NTU4NDM1OWY3ZTJiZGNjYzU3M2E3OTI2ZjY3ZWUuanBn.cache","vod_id":18960327,"title":"[무삭제판] CAWD-352 [선생님에게는 존재해서는 안 될 순수한 사랑. 남학생의 열정에 굴복해 단 하룻밤만 그곳에 머물렀다.]","lastmod":"2025-03-22","duration":"01:57:14","url":"/play/18960327.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE4L3phQkpWUVdILzEuanBn.cache","vod_id":19144330,"title":"걸컴은 아시아 전역에 사정하며 여러 번 오르가즘을 느끼게 했다. [GirlCum]","lastmod":"2026-02-19","duration":"10:33","url":"/play/19144330.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvNTczMzNlY2E4ZTQ2ZWQzZjQ1YTM1Y2RmZmJmNTk3NzIuanBn.cache","vod_id":19134517,"title":"그는 항상 만날 수 있고 다른 선택지가 없는 글래머러스한 여판매원과 계약을 맺으라는 뉘앙스를 은근히 풍긴다. 그는 그녀의 젖꼭지를 주무르며 오르가즘에 이르게 하고, 그녀를 희롱하다가 질 안에 사정하여 그녀를 가슴 자위 기구로 만들어 버린다. (레이카 타케다 LULU-398)","lastmod":"2025-12-21","duration":"02:40:04","url":"/play/19134517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTIxNGFiNGY1MmM1Nzk2MWY5OGNjOGZiNzhiMWM2YzkuanBn.cache","vod_id":19005658,"title":"결혼식을 앞둔 F컵 가슴의 신혼 아내는 성적 감각을 증진시키기 위한 시술을 받았다. 그녀는 온몸에 오일을 발랐고, 그 오일의 감촉을 끊임없이 느낄 수 있었다. 커다란 남성의 성기가 그녀의 예민하고 풍만한 가슴에 삽입되었다.","lastmod":"2025-03-24","duration":"01:37:06","url":"/play/19005658.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDZmZWNlNWUyODg1NTA5OThjM2M5NDRhOGJlODk0YzguanBn.cache","vod_id":18953371,"title":"유출된 사적인 사진: 대조적인 얼굴을 가진 젊은 여대생 공개 [황가원] 고금리로 돈을 빌려 몸으로 갚아야 하는 상황; 수많은 음란 셀카와 샤워 사진 공개; 그녀의 몸매는 최고 수준 (14)","lastmod":"2025-12-14","duration":"00:02:34","url":"/play/18953371.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjZlNzRiYzRlNjg5ZTUyOWJlZThkNjUxYzgzZGJkYzIuanBn.cache","vod_id":19005017,"title":"IPZZ-144-C 이 몸의 끝없는 쾌락 - 풍만한 몸매의 음탕한 언니가 오르가즘에 도달하는 3가지 장면!","lastmod":"2025-03-23","duration":"02:31:54","url":"/play/19005017.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTdlZDAyYmI4NjA0MmNmMDFmOWUzMzU3MjQzM2MyMjIuanBn.cache","vod_id":18943615,"title":"안경 쓴 중년 남자가 호텔에서 사범대학에 다니는 젊고 섹시한 2학년 여학생과 하룻밤을 보냈다. 침대에서 바닥으로 옮겨 다니며 섹스를 했고, 남자는 그녀를 들어 올려 격렬하게 관계를 가졌다. 그는 건장하고 근육질이었고, 두 번 관계를 가진 후 더 이상 참을 수 없었다! 에피소드 2","lastmod":"2025-03-22","duration":"00:13:13","url":"/play/18943615.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvYTg2NjlmYWE2MmU0YmVjNTY4OTU1MmZkY2IwYWQxY2IuanBn.cache","vod_id":19054109,"title":"가슴을 흔들고, 젖꼭지를 주무르고, 부드러운 피부를 움켜쥐고, 심지어 젖꼭지 장난감까지! 현재 구직 중인 릭수 JD는 배우 HAME033이 제작한 제목 미상의 영상에 출연했습니다.","lastmod":"2025-09-25","duration":"57:35","url":"/play/19054109.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDU1MzdiODRlNzhkNmI3ZTYzZDU0M2Q0NTJiYTM1MmYuanBn.cache","vod_id":18926732,"title":"50세의 파렴치한 남자가 아내와 교복을 입은 어린 딸과 성관계를 갖는 장면을 생중계했습니다. 그는 성욕이 너무 강해서 \"아빠, 하고 싶어!\"라고 계속 소리쳤습니다.","lastmod":"2025-12-14","duration":"00:44:23","url":"/play/18926732.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjY2ZDc3MzYwYzM0ZDNkM2U4ZTYzMjM5NjBhNjc5OTguanBn.cache","vod_id":18962619,"title":"\"새로운 트렌드 ✅ 리소스\" 인터넷 유명인, 양성애자, SM 훈련, 성숙한 여성, 마야 퀸, 구독 완료~ 로프 결박, 가슴 고문, 구속, 강제 오르가즘, 채찍질 (11)","lastmod":"2025-12-14","duration":"00:02:54","url":"/play/18962619.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDU5NDI3NjM1MjllZmUzMGIyNjY3OThiN2Y3NTQzZTAuanBn.cache","vod_id":18960190,"title":"NPJB-080 유니폼 레벨 18 유니폼을 입은 소녀들과의 성관계 유니폼을 입은 소녀 5명 4시간 이내 사정","lastmod":"2025-12-14","duration":"03:56:14","url":"/play/18960190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWRhMWJhMGFlMTQ4Zjk5ZmQ3ZDQ5NzEwZWM0ZTdkZWEuanBn.cache","vod_id":18931959,"title":"PPPD-193 미나미 아야세, 넌 졌어!! 일류 여성 거인이 평범한 남자에게 강제로 오르가즘을 당했다.","lastmod":"2025-03-22","duration":"01:58:28","url":"/play/18931959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmE3YmQzOTg2N2MzYTQxZDI2MWNkNWIwZmRiMTkyMzEuanBn.cache","vod_id":18993439,"title":"FC2PPV-1245722 [기적의 재등장] [얼굴 전체 노출] ♥ 전직 모델 마나 ♥ 직접 촬영한 자위 영상 비밀 공개 ☆ 팬티, 스타킹 없이, M라인 다리와 욕망으로 가득 찬 질 ♥ 자위 중 피부가 벗겨지는 절정! 수줍지만 황홀한 오르가즘","lastmod":"2025-12-14","duration":"13:14","url":"/play/18993439.html"}]},
videoTitle: 'KNAM-013 완전히 야생적인 [email protected] 히카루 #타이트하고야성적인토끼 #아름다운가슴 #D컵학생 #눈가리개장난감오르가즘 #지속적인자극 #그녀는야성을저항할수없다 #오직야성만이그녀가오르가즘을달릴수있다 히카루 타카기',
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=/`;
}
};
}