Bas blancs, jambes magnifiques, visage ovale et pur, déesse du style universitaire, contraste extrême, masturbation avec des sextoys stimulant son petit trou rose, orgasme et humidité constante, ses gémissements coquins donnent instantanément envie de la violer.","lastmod":"2026-07-11","duration":"31:16","url":"/play/19153295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDQ3ZWZiYTMzNGY3YzI2NTIxNTA4N2Q3MTZiMWEwNDEuanBn.cache","vod_id":19089383,"title":"La discipline imposée par l'entraînement de Xin Youli a entraîné sa première masturbation et éjaculation.","lastmod":"2025-03-19","duration":"13:58","url":"/play/19089383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzEzMzk3MDI1ZDc2YjMyMDllMWE5NDU1ZGIyYmY0NDEuanBn.cache","vod_id":19005224,"title":"91 Mouse Brother's Latest High-End Internet Celebrity Series Season 7 - Number SG007 White and Tender Pepper Breasts Top-Quality Honey Goddess - 1080P High-Definition Original Version","lastmod":"2025-03-19","duration":"21:04","url":"/play/19005224.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGZiOWZkNmJkZTgxYTdiMzMxYzQ3ODk0NzhjYjY3ZTguanBn.cache","vod_id":18921521,"title":"#XiXiXiYan_Voiture Mannequin Femme mûre à la silhouette parfaite se masturbe et jouit dans une voiture (1)","lastmod":"2025-03-19","duration":"01:54:20","url":"/play/18921521.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjY4MzczNWU1MzZmYWYzMGNkN2JmMzViM2Q3NzE1OGMuanBn.cache","vod_id":19030942,"title":"Un bon repas a été gâché par un cochon. Une jeune et belle fille a couché avec un vieil étranger bedonnant pour économiser sur son loyer, prononçant de temps à autre quelques mots de chinois.","lastmod":"2025-03-19","duration":"08:37","url":"/play/19030942.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjZjMDJmMWM5YjZkZjlmMDNhNjBmYzk5NDhkZmZkMjMuanBn.cache","vod_id":18963349,"title":"Une jeune femme mince, récemment mariée et surnommée « Cat Kitten », a divulgué des vidéos privées et des vidéos de sexe oral.","lastmod":"2025-03-19","duration":"42:17","url":"/play/18963349.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWY1MzIzYWNiM2Y3MGZmYjZiODEzYjZmNGQ3ODQ5YjcuanBn.cache","vod_id":19141609,"title":"PRIN-053 Gros seins qui tremblent ! Une étudiante active de 1 an avec des seins naturellement doux comme de la barbe à papa (bonnet J) et une silhouette pleine et ferme.","lastmod":"2026-03-12","duration":"02:40:58","url":"/play/19141609.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTgvYjgwM2Q5MTYxYWZiNjM3M2JiOWYyMjhmNzQ1OTY4ODQuanBn.cache","vod_id":19129161,"title":"MMPB-087 Le plus beau visage ! Le plus beau corps ! Le meilleur sexe ! Dernière version Reiwa : Actrice super sexy et mince.","lastmod":"2026-02-13","duration":"04:00:37","url":"/play/19129161.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTgvY2YyYzZiYWY3M2JkMjdhMmE5MTJkNTU3YjU3MjNhNmUuanBn.cache","vod_id":19125213,"title":"EBWH-251 a une silhouette à faire pâlir d'envie une femme enceinte. Cette fille aux seins opulents, vendue par son beau-père, est désormais prostituée par un vieil homme.","lastmod":"2025-10-18","duration":"02:02:34","url":"/play/19125213.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDhmMjQxOGYwYWRkZWFjOTcxZmViMWRjODY1NTZlNmQuanBn.cache","vod_id":19001892,"title":"[Diffusion en direct depuis la Chine] Une jeune fille aux gros seins diffuse en direct une scène de sexe dans les toilettes d'un parc_44721493","lastmod":"2025-03-19","duration":"53:48","url":"/play/19001892.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDBjZDgzYzM3OTIzNDBkZDNkMTlmZWNiNTgzOTkwNGEuanBn.cache","vod_id":18928983,"title":"Une étudiante européenne a une relation sexuelle passionnée avec un bel homme français sur la plage.","lastmod":"2025-03-19","duration":"08:22","url":"/play/18928983.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmEzMzk5MDE1NTQ5ZDFmZWYwNGE5NzE4NGU2ZDI4OGUuanBn.cache","vod_id":19040835,"title":"Ma première masturbation !","lastmod":"2025-03-19","duration":"09:34","url":"/play/19040835.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjFkMzEyYzY3MWE3MWYyZWJkMWZlZjc2OTA3MWY5OWIuanBn.cache","vod_id":19134625,"title":"Des photos privées exclusives d'une jeune fille de 19 ans à la vulve rose exquise ont fuité, exclusivement pour les riches.","lastmod":"2026-02-17","duration":"26:42","url":"/play/19134625.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMmNhMmNmOTdiNjI4MmUzMjU2ZTk0YjMxNmI3NDljNzcuanBn.cache","vod_id":19149067,"title":"Tank Girl Chun Chun Jiang : Spectacle de masturbation des seins exquis","lastmod":"2026-05-27","duration":"18:35","url":"/play/19149067.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzk4MGNkOWNlZmU5YjQ2ZDM0MTZjMDZmOTA4NzM4MmIuanBn.cache","vod_id":19135532,"title":"104DANDYA-005 Au cours d'un massage glissant et huileux, un homme enfonce avec force dans ses fesses dressées et face contre terre, le forçant à se masturber sur le sol.","lastmod":"2026-02-13","duration":"03:08:19","url":"/play/19135532.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTEvZmM5N2U5NjI2ZDc1NGM4NmVmMGIwZDZiMTdkNDI5ODUuanBn.cache","vod_id":19124387,"title":"Les techniciens les plus qualifiés proposent des services tels que la « prise du tendon du dragon », des chevauchées intenses et vigoureuses et l'éjaculation interne.","lastmod":"2025-10-11","duration":"22:26","url":"/play/19124387.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGNmYjA3Mzk5OTUxMzA5Y2IzNjM1NDQwOTZjZDQwOGUuanBn.cache","vod_id":19014269,"title":"Langli War God Tanhua 3000 rencontres en ligne avec une déesse escort de haute qualité aux longues jambes et à la beauté sublime, se faisant baiser par une grosse bite jusqu'à ce qu'elle se tienne le ventre et implore grâce, un chef-d'œuvre explosif.","lastmod":"2025-03-19","duration":"01:04:15","url":"/play/19014269.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzkwMmM5YzY4Y2E4MGZjYThlZDBiOTcyNTM5YjEwYzUuanBn.cache","vod_id":19142336,"title":"Fuite TikTok - Une déesse pure et sexy, devenue populaire récemment, voit une vidéo d'elle dévoilant son vagin dans un karaoké circuler en ligne.","lastmod":"2026-03-18","duration":"12:10","url":"/play/19142336.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODkyOGU3NTA0ZmFmZTVhYjE4ZWI1OGM5ZDVkNmM2MWYuanBn.cache","vod_id":18975845,"title":"Le visage de cette superbe jeune femme mariée est à lui seul captivant ; elle sert son petit ami bien membré au lit, ses expressions de gorge profonde et de sexe oral sont si séduisantes, le laissant la ravager et la pénétrer dans diverses positions, ses gémissements constants sont vraiment stimulants.","lastmod":"2025-03-19","duration":"01:49:02","url":"/play/18975845.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTI2YjA4ZjVmMzM0NDg0NmQxNTAwMDNiYmI4N2ViODUuanBn.cache","vod_id":18931701,"title":"Une étudiante sexy en bas noirs fait l'amour avec passion à un homme sur un lit, lui léchant le pénis et se faisant pénétrer dans différentes positions. Elle gémit et crie face à la caméra avec une expression très provocante.","lastmod":"2025-03-19","duration":"35:53","url":"/play/18931701.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjgvZTE1M2YxZmFkYjg3MzgyNzMyYjhkNDBmMzQzOTFlNGIuanBn.cache","vod_id":19110244,"title":"(1) White Tiger Long Legs High Heels Belle jeune femme ayant des relations sexuelles et éjaculant à l'intérieur d'elle.","lastmod":"2025-06-28","duration":"08:51","url":"/play/19110244.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmYzYzZlOGQ2MjU4Y2VhZjE3OTU4YjBjNWJmOGEzMTMuanBn.cache","vod_id":18926806,"title":"La vidéo ultime de CMI-163 Guess : filmée à la troisième personne depuis l'intérieur de la voiture.","lastmod":"2025-03-19","duration":"02:00:29","url":"/play/18926806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjIvYmZhOWM4ZGM5ODEzYzg3NjFhOTJmNTU1ODQxOGFhODEuanBn.cache","vod_id":19101395,"title":"Cours de vente érotique de la Déesse : Formation de haut niveau en bas noirs pour sextoys (1)","lastmod":"2025-04-22","duration":"08:21","url":"/play/19101395.html"}]},
videoTitle: '#XiXiXiYan_Voiture Mannequin Femme mûre à la silhouette parfaite se masturbe et jouit dans une voiture (1)',
language: 'fr',
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('Lien copié !');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Lien copié !');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Lien copié !');
}
}
},
// 切换布局
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=/`;
}
};
}