Une étudiante sino-américaine, attirée par les hommes étrangers, pratique une fellation sur son petit ami étranger, transformant une étudiante innocente en soumise.
Contrasting Bitch - Top-Quality Married Woman/Young Woman Private Customized Large-Scale Welfare Leaked","lastmod":"2026-07-11","duration":"15:01","url":"/play/19129666.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTEvYzg2YzVhNGQxZGE1Y2EzZGYxMTkyYTQ1Mzg2OWY5YTYuanBn.cache","vod_id":19085754,"title":"Akari Shinmura - DDKM-011 Attention à cette femme féroce ! Cette chienne dressée est en chaleur et n'en fera qu'à sa tête. Toujours en rut, elle n'a qu'une envie : se faire baiser.","lastmod":"2025-06-11","duration":"01:51:47","url":"/play/19085754.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMDFjYjc2MDkyNzE1YjA1YjQyM2Y1YTg4YzM3Y2FiOTMuanBn.cache","vod_id":19107404,"title":"#FemmeSalope #Salope #FétichismeDesPieds #FétichismeDesPieds #Salope","lastmod":"2025-12-13","duration":"00:00:15","url":"/play/19107404.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDcxNGQ4OTM5NTkyMDNlN2E3MDQ0MjM0Y2Q0ZWFiYzQuanBn.cache","vod_id":19125473,"title":"Diffusion en direct d'une femme aux gros seins faisant l'amour avec son petit ami","lastmod":"2026-05-27","duration":"20:43","url":"/play/19125473.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjFkMDBiNGNmZjc3ZjZlNDMwYjdhMzkwMWM5Y2VhMTUuanBn.cache","vod_id":18970084,"title":"Une chienne d'une beauté et d'un raffinement exceptionnels.","lastmod":"2025-03-19","duration":"00:00:18","url":"/play/18970084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTA0NDY3MmVmODAzMDY3ZGZjNWYwMmZjYzc2YjMzYjEuanBn.cache","vod_id":18968842,"title":"Une étudiante chinoise aux seins de taille 34D désire ardemment se faire baiser dans la baignoire.","lastmod":"2025-03-19","duration":"14:07","url":"/play/18968842.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTI0MGE3ZDNlNzAzYWEwNDY4NjI1NTExYTg3NDAxZWMuanBn.cache","vod_id":18969849,"title":"Dressage de chiennes 2.","lastmod":"2025-03-19","duration":"00:00:19","url":"/play/18969849.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2Y2ZTZhYzhlMDgyMzkwMDY4NDcwZTJjY2RmYjdmNzEuanBn.cache","vod_id":18969192,"title":"Al-Zhang Yuanying, une jeune fille en uniforme, séduit son petit ami.","lastmod":"2025-03-19","duration":"17:51","url":"/play/18969192.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzZkZThkZjVhZWI5Nzk2MGVlMGU2ZThhZDg0YjI5NWMuanBn.cache","vod_id":18930175,"title":"Tout le monde pense que j'adore me battre.","lastmod":"2025-03-19","duration":"00:00:29","url":"/play/18930175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDIwOWRiNjI0ZjMzMjM1NDkzMDM4ZGQwYzc3YjQ2YTIuanBn.cache","vod_id":18981018,"title":"[Adorable écolière] Une écolière à lunettes ! J'avoue avoir un faible pour les petites chiennes qui portent des lunettes.","lastmod":"2025-03-19","duration":"07:48","url":"/play/18981018.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTQxZjVmMTZlNDhlNDA1NTYzNTU5YWNiZTM2ZWMyNDAuanBn.cache","vod_id":19074424,"title":"APNS-365 Visite à domicile honteuse : Entraînement masochiste et sexe de conception… Une belle professeure est baisée par un mauvais élève devant son mari.","lastmod":"2025-03-20","duration":"01:54:32","url":"/play/19074424.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDVlZjJmMGViNmM1ZWY3NmUwZjk1OGM0ZGZiNGY4MzQuanBn.cache","vod_id":19055125,"title":"MIDE-718 Nouvelle venue ! Une étudiante active de 19 ans fait ses débuts sous le nom de Shirasaka Yui.","lastmod":"2025-03-19","duration":"01:59:32","url":"/play/19055125.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDgxNzg2YWRhZjI3MThhOGI1N2YwNDY2ODY5MjJkNjMuanBn.cache","vod_id":18938509,"title":"[Chine] Une jeune streameuse en direct HD a des relations sexuelles avec son petit ami à la maison, y compris du sexe oral et une pénétration.","lastmod":"2025-03-19","duration":"25:51","url":"/play/18938509.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTBmNDI1MTU2NGYwYTRlYWRhYjkyMTMxZWRjZGMyNzIuanBn.cache","vod_id":19039604,"title":"JUQ-202 : Une rencontre fortuite avec son ancien professeur, harceleur sexuel, dans une salle de sport. Dès lors, elle devient son esclave sexuelle soumise…","lastmod":"2025-03-19","duration":"01:59:46","url":"/play/19039604.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWEzMzI1ZGM4MjY4MWI0NjM2ZTljOTMxM2U0MDdiODIuanBn.cache","vod_id":19066536,"title":"#ÀLaUne #Assaisonnement Petite chienne en uniforme scolaire, obéissante à tous les caprices","lastmod":"2025-03-20","duration":"00:00:52","url":"/play/19066536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTIxZWQwM2M4YThkMDJiMGIxMzllNTlkMTcxMDE0YmUuanBn.cache","vod_id":19056275,"title":"Une aventure d'un soir dans la vieille ville de Lijiang ; elle avait l'air innocente, mais je ne m'attendais pas à ce qu'elle soit aussi douée pour les fellations — sa langue était incroyable !","lastmod":"2025-03-19","duration":"01:08","url":"/play/19056275.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDc4YmUwNDdjYWJkNTk2ZTA1ZTE1ZDYxMDE0YTJlYzQuanBn.cache","vod_id":19071289,"title":"FC2-4098823 Elle fait l'innocente devant son copain, mais en réalité, elle aime les gros pénis. Pendant que son copain était à l'épicerie, elle a eu une relation sexuelle torride… Iyako","lastmod":"2025-03-20","duration":"53:09","url":"/play/19071289.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTEzNWY3OTgzZWFjZWM0Mjc0NzgxYzVkOTgzMGU2N2EuanBn.cache","vod_id":18934330,"title":"C'est tellement bon de baiser une écolière imberbe et tendre.","lastmod":"2025-03-19","duration":"01:28","url":"/play/18934330.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGExNjY0N2FmZWMyOTBjYjZjNzIzOGRjZTYwMzcwOGMuanBn.cache","vod_id":19039167,"title":"Un homme à lunettes avait rendez-vous avec une jeune étudiante qui travaillait à temps partiel. Il lui a d'abord demandé une fellation avec les pieds, et elle était très douée pour ça. Il l'a ensuite pénétrée par derrière, rapidement et profondément, ses fesses offertes à la vue de la caméra.","lastmod":"2025-03-19","duration":"36:23","url":"/play/19039167.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDE2N2EzNTI5NjA4ZmUxNmRhZWY4ZTQ5NDgyYmY5MzcuanBn.cache","vod_id":19006834,"title":"Règles tacites d'un réalisateur de troisième ordre, stockage de gaz, mannequins pour la publicité imprimée et sexe oral sur des jeunes filles.","lastmod":"2025-03-19","duration":"52:21","url":"/play/19006834.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTg2ZjFkYWNiMTNmOTEyNzcxNGI1ZTA0YTE2ODMzZDEuanBn.cache","vod_id":19010584,"title":"LUKE-029 Une étudiante naïve, lubrique et aux mœurs légères.","lastmod":"2025-03-19","duration":"02:11:39","url":"/play/19010584.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2RmNGZjMmYyZWU4NGU2ZDExMjE2OTA4ZjhmZGYyMjYuanBn.cache","vod_id":18942736,"title":"Une jeune et jolie mannequin de troisième catégorie originaire d'une certaine région, avant de devenir célèbre, a vu des photos intimes d'elle, prises chez elle avec son petit ami, fuiter en ligne.","lastmod":"2025-03-19","duration":"07:15","url":"/play/18942736.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODg5NjIyYzJiMzA4ZmE1NjAzMWM0ZTM2YWU4YTZlNDUuanBn.cache","vod_id":18965695,"title":"HUNTC-264 Des étudiants otaku invoquent une succube ! Mais qui apparaît ? Un vieil homme démon inattendu ! L'oncle impopulaire I","lastmod":"2025-03-19","duration":"01:38:11","url":"/play/18965695.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWYyYTNkYjE3NTBkN2FlMTE2ZTMyZmMzZGNhNGEwYTQuanBn.cache","vod_id":19026678,"title":"Une masseuse de luxe, très sexy et vêtue d'une minijupe, propose ses services dans un sauna pour 1000 yuans. Les caresses et le sexe oral sont autorisés, mais pas la pénétration. Un supplément de 200 yuans est demandé pour une relation sexuelle discrète. Elle est magnifique et a une silhouette de rêve !","lastmod":"2025-03-19","duration":"40:06","url":"/play/19026678.html"}]},
videoTitle: 'Une étudiante sino-américaine, attirée par les hommes étrangers, pratique une fellation sur son petit ami étranger, transformant une étudiante innocente en soumise.',
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=/`;
}
};
}