热门精选视频1783767053","lastmod":"2026-07-11","duration":"12:34","url":"/play/19153614.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjk2MjIzNTFjNjcwYTcwMzIxZmVmZWMzNGZlZDVlYmIuanBn.cache","vod_id":19066497,"title":"Une superbe beauté de 168 cm aux cheveux courts fait son retour, léchant sa chatte sexy avec ses bas noirs et ses belles jambes, la chevauchant et la baisant par derrière, remontant ses bas par derrière.","lastmod":"2025-03-19","duration":"01:39:51","url":"/play/19066497.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDMvYTI0OTM2ZjJmN2FhNDQyMWY1YzdmNzQ5MjM4NGZmYTguanBn.cache","vod_id":19127437,"title":"À la une #Selfies# Une jeune femme mariée me trompe souvent avec son mari 1","lastmod":"2025-11-03","duration":"01:32","url":"/play/19127437.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjE1ODAxZTRkNTRiYmZkOWVkZDc1YjI3YTc4YTU2Y2YuanBn.cache","vod_id":19000985,"title":"MBM-833 mpo.jp présente une super sélection de vidéos de drague amateur non fictionnelles ! Des filles à la peau claire et masochistes.","lastmod":"2025-03-19","duration":"04:02:40","url":"/play/19000985.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2E3NWQ5ZWYxMDI2ZjFiMzU4ZGRjNDMxMzZhYzA5ZjguanBn.cache","vod_id":19131835,"title":"Sélection quotidienne de chattes roses et tendres, mignonnes et prêtes pour la pénétration anale et les va-et-vient.","lastmod":"2026-02-13","duration":"15:32","url":"/play/19131835.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MzEvOTY0ZjBhZDNkYWNlYzk5ZWQ2ZGU1YzVlYjFhOTY2N2IuanBn.cache","vod_id":19106745,"title":"Une mannequin de renom, aussi glamour que belle, s'est lancée dans l'industrie du X. Son petit ami a eu des rapports sexuels avec elle sans préservatif, éjaculant dans son vagin. Ce petit ami obscène, portant une longue perruque, paraissait encore plus lubrique, et a visiblement amusé la déesse.","lastmod":"2025-05-31","duration":"09:09","url":"/play/19106745.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGM3ZDJjMDkxMzI2ZGI0ZWNmNzYwMjdhYmIxZGI0NTkuanBn.cache","vod_id":19057595,"title":"Les sœurs déesses [Rabbit Demon] portent des jupes moulantes rouges sexy et se lèchent mutuellement le vagin tout en se masturbant avec des godemichés et des œufs vibrants !","lastmod":"2025-03-19","duration":"01:36:41","url":"/play/19057595.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWE4YmJkNjYyNDFhNzJjYWU0ZmM1YzAyYmQ1OTkxZjQuanBn.cache","vod_id":18939008,"title":"Pacopacomama-070419_122 Masturbation intense de femmes mûres sélectionnées 3","lastmod":"2025-03-19","duration":"01:06:54","url":"/play/18939008.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODRhZjM5OGMwNTMwYzQ4NWZhMmJmYTNlMjI1M2ZmM2MuanBn.cache","vod_id":18930865,"title":"#ÀLaUne #BasNoirs Une jeune fille se fait violemment baiser par un homme plus âgé","lastmod":"2025-03-19","duration":"03:08","url":"/play/18930865.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2EwMzMzYzM3MmUxZjQ2ZDM1YTQyYjg2ZWNlZDM2OGMuanBn.cache","vod_id":19002726,"title":"91 Mr. Hang (Old Driver of Pleasure) Numéro spécial - Une lycéenne sexy, mince et aux longues jambes née en 1998 est baisée jusqu'à l'orgasme à plusieurs reprises, criant constamment : C'est tellement bon, j'adore que tu baises ma petite salope !","lastmod":"2025-03-19","duration":"26:34","url":"/play/19002726.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDMvMTQ4NzM0NjcxZGI4MDVkYWMzYTVhMzFjMmRhOWI5YmMuanBn.cache","vod_id":19098632,"title":"Sélection de selfies #Qui n'aimerait pas une copine qui sait s'amuser comme ça ?","lastmod":"2025-04-03","duration":"03:14","url":"/play/19098632.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTU3MTQ0OWViOGE1ZGEwZjljNTU0NjcyOGI2NWE0MTAuanBn.cache","vod_id":19078841,"title":"#ÀLaUne #Selfie Une jeune femme magnifique et élégante affiche son style chez elle","lastmod":"2025-03-19","duration":"00:00:59","url":"/play/19078841.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWUzNzZiMzhkNzdjN2Y1ZmFhYzgyNjYwZmVmNzEzZjQuanBn.cache","vod_id":19045132,"title":"Une collection de selfies de haute qualité mettant en scène des chiennes aux profils variés, incluant des scènes de sexe oral et d'ingestion de sperme. (7 éléments)","lastmod":"2025-03-19","duration":"01:10","url":"/play/19045132.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzFmM2I1NDQxNTI5YWUzODE4ODM3MDBkOGI4Y2Q3YTEuanBn.cache","vod_id":19020172,"title":"Une sélection de femmes aux fortes poitrines.","lastmod":"2025-03-19","duration":"05:00","url":"/play/19020172.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGMzZjUwODg0YTQwZTMzMmY0NmE1NTY2ODUyZjBkN2MuanBn.cache","vod_id":18990007,"title":"[Une petite salope qui se sent mal à l'aise si elle n'est pas baisée pendant une journée][1] Elle montre son visage tout le temps et a des relations sexuelles passionnées avec le gars, suçant sa bite et ne la lâchant pas, le laissant lécher sa chatte et jouer avec ses seins pendant qu'elle reçoit toutes sortes de coups de reins !","lastmod":"2025-03-19","duration":"29:40","url":"/play/18990007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTkvOTk3MDliNzI1MmNkYWE2MzdhMGU0ZTU4NDMzMTQ1NDAuanBn.cache","vod_id":19104969,"title":"Un cadeau de Nouvel An offert par une loli à deux queues : elle se masturbe avec sa meilleure amie à l’aide d’un godemichet à double embout. #loli #léchagedechatte #chattepute #whitetiger #sexeengroupe","lastmod":"2025-05-19","duration":"02:26:36","url":"/play/19104969.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjJmYTg0MWFjZDg3NmIxOGZjYjg0OWJkNWI2NmEwMzguanBn.cache","vod_id":18924209,"title":"HMN-011 La meilleure amie de ma copine, on a une relation sans engagement. Pendant notre escapade de deux jours et une nuit, elle m'a chuchoté des choses obscènes à l'oreille et m'a séduit jusqu'à ce que j'éjacule en elle, jusqu'à ce que mon pénis devienne fou. - Rina Tsukino","lastmod":"2025-03-19","duration":"02:38:37","url":"/play/18924209.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjkxZmM0YTZkMjNlMDIwNjgyMGI0NDcyYmM5NWQ3MWUuanBn.cache","vod_id":19001908,"title":"[Selfie] Vidéo intime d'une belle employée du TGV avec son petit ami gay, divulguée par un individu malveillant après leur rupture_122746297 - Copie","lastmod":"2025-03-19","duration":"27:15","url":"/play/19001908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTUvNTdjYjJjYWU4MWFmM2NkZWIwNWIxYWE2ZTU5MGE1MjQuanBn.cache","vod_id":19125003,"title":"IA - Liu Yifei - Passion et tentation estivales","lastmod":"2025-10-15","duration":"04:42","url":"/play/19125003.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvM2FiNTU3MGE0MmQ5ZjIzMWUzY2VmYjlhODkyYjYyNGQuanBn.cache","vod_id":19134713,"title":"Une collection de photos privées de Perry, une étudiante internationale devenue célébrité sur Internet.","lastmod":"2026-02-17","duration":"40:26","url":"/play/19134713.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWMwYjk1MWZkNzM2NWE3MTZkODdiZWVkMGM4OTc1YjYuanBn.cache","vod_id":19144866,"title":"Cette femme séduisante et mûre, une « déesse des jets d'eau », se masturbe avec frénésie, projetant de l'eau partout – une expérience intense et excitante.","lastmod":"2026-04-11","duration":"01:19:26","url":"/play/19144866.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWUyYjYxNGJjYjdjYjBmYWEzMWE3ODUzMDEyOTkzNzguanBn.cache","vod_id":19001254,"title":"[Selfies sélectionnés] Une femme fait l'amour avec vigueur à un homme qui gémit et halète ; c'est très séduisant et tentant. À ne pas manquer si ça vous plaît_303222965","lastmod":"2025-03-19","duration":"21:07","url":"/play/19001254.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTE0Yjg1MjVjZmUzMTNjY2ZiMzdhMjQ3ZjJiYzYxYzUuanBn.cache","vod_id":19005488,"title":"PKGP-010 Vidéo entièrement privée : Ma première fois avec Minami Ozu, la déesse érotique qui allie beauté noble et désir vulgaire","lastmod":"2025-03-19","duration":"02:12:43","url":"/play/19005488.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmI3Mjc1ZWFkOTQzZDU5NDg2OTNjMmJlYzhmMDM4NjkuanBn.cache","vod_id":19032717,"title":"Une écolière en uniforme scolaire et son partenaire sexuel ont des rapports sexuels passionnés.","lastmod":"2025-03-19","duration":"07:51","url":"/play/19032717.html"}]},
videoTitle: 'Sélection de photos privées illustrant des journées et des nuits passionnées avec des partenaires sexuelles magnifiques et sexy.',
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=/`;
}
};
}