Emi Hideo 03 Amateur Bait - Delusional Tribe","lastmod":"2026-07-11","duration":"05:44:19","url":"/play/19163816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMWExMDE3OTM2M2Q5YmQwY2M2MzM2MGY0NjhjMTU5MDUuanBn.cache","vod_id":19164372,"title":"Discipline d'une écolière esclave sexuelle, rapports sexuels non protégés, tentation en tenue de soubrette, super sexy","lastmod":"2026-07-11","duration":"26:31","url":"/play/19164372.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzZkOTE2ZmNhYWZlZmRmMDMzNTBjNzhiZjc0NGFmODUuanBn.cache","vod_id":18999091,"title":"Takayama Rin, une étudiante aux prises avec des désirs sexuels dans un restaurant","lastmod":"2025-03-23","duration":"01:49:19","url":"/play/18999091.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTA3MTQxMDZkNWFmNWQ3MGY2YzhkY2IyMTEyOTAxZjAuanBn.cache","vod_id":18936575,"title":"NHDTB-306 Incapable de résister à l'odeur d'urine sur ses fesses, il l'a forcée à avoir des rapports sexuels immédiatement ! Une étudiante, incapable de se détacher de son pénis aphrodisiaque, jouit à répétition.","lastmod":"2025-12-14","duration":"02:39:45","url":"/play/18936575.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTQvMGE1Zjk2NmU5ZDA5ZmViZTY5ZGE2YWY4ZDUzZTViZTkuanBn.cache","vod_id":19038163,"title":"En tant que professeur principal, je n'ai pas pu résister à la tentation de mes élèves et j'ai fini par avoir des relations sexuelles répétées avec elle dans un love hôtel après les cours...","lastmod":"2025-06-14","duration":"01:59:52","url":"/play/19038163.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvYjhmMTlmNmI1NGZmNDc5NzYwMmViMDQ5MmMxZjlhMTcuanBn.cache","vod_id":19057418,"title":"Débuts de MM ! Pour amateurs seulement ! Magic Mirror College Girl se lance le défi de se changer en bikini sous un ciel bleu azur ! 2. À la fin du temps imparti, un énorme pénis se dresse ! Acteur inconnu DVMM173","lastmod":"2025-10-11","duration":"03:57:20","url":"/play/19057418.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMzAvNTZjMDk2ZWY1N2I4MjczYzczMzE0NDBhZGFjYmMwNzMuanBn.cache","vod_id":19060156,"title":"N'importe qui peut asperger à volonté ! 2. En cours, pendant la pause déjeuner, n'importe quand, n'importe où, aspergez librement les étudiantes sur le campus… ! Acteur inconnu HSODA_046","lastmod":"2025-10-29","duration":"02:48:19","url":"/play/19060156.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmFlOGQyNDQ2MDlmNzM2NjdmYzkzNzgyNTA2M2E0MDcuanBn.cache","vod_id":18988084,"title":"NNPJ-372 Réservé aux étudiantes ! Course à la bière du Carnaval 2019 !!","lastmod":"2025-12-14","duration":"02:28:01","url":"/play/18988084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmM2MDE4ZTk1ODZmZmRkZDMwNmIwODhjNzZiNzEyMjMuanBn.cache","vod_id":18946001,"title":"SSNI-486 devient la cible d'un pervers en maillot de bain scolaire... Une élève en uniforme scolaire est filmée en secret et violée en réunion par un harceleur déséquilibré.","lastmod":"2025-12-14","duration":"02:21:56","url":"/play/18946001.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvM2I5Njg5Y2JmZWY0MzkzMTQyOGMzNjcyZjNjMzQ4NzkuanBn.cache","vod_id":19050509,"title":"FIT006 [Première fois strip-tease] Amateur.","lastmod":"2025-09-04","duration":"01:39:59","url":"/play/19050509.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWVmMzYxNGQ3ODAyNTAzM2I0ZGIxMTdkYjFhZmE5NTAuanBn.cache","vod_id":18989511,"title":"300NTK-175 Une magnifique jeune femme aux formes généreuses (bonnet G) apparaît dans une pose de cowgirl rebondissante ! Sa culotte, qui laisse entrevoir sa poitrine nue, est pressée contre ses fesses galbées par la danse ! Ses seins, pleins et magnifiques, ondulent sous l'effet du vibromasseur ! Son corps sexy se déhanche de haut en bas tandis qu'elle éjacule une énorme quantité de sperme dans une pose de cowgirl samba, avec une force telle qu'elle pourrait franchir l'équateur ! Une vidéo de coulisses très satisfaisante ! (002)","lastmod":"2025-03-23","duration":"01:02:01","url":"/play/18989511.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWNhM2YxZjIyOWFjZDQ0MzYxOTJiZmIxMTZmZTQyOTYuanBn.cache","vod_id":19156793,"title":"L'observation et la surveillance amateurs de vêtements érotiques et le spectacle de poitrines énormes vous laisseront bouche bée ! Coffret d'Azu Amatsuki et Momotaro Eizou.","lastmod":"2026-05-06","duration":"01:47:00","url":"/play/19156793.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZThmOTE0OWVlMGM4NDFhNmM5ODBhMDNiOTk5ZjM5NzQuanBn.cache","vod_id":18969689,"title":"CAWD-120 Par une nuit de typhon, une étudiante voluptueuse et un professeur aux attributs hors norme se retrouvent piégés chez eux et passent la journée à faire l'amour dans l'école déserte. (Emi Fukada)","lastmod":"2025-12-14","duration":"01:56:15","url":"/play/18969689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWM5NmE5ZjQxN2U3Mjk0M2U4YzFlZjY2NWIwMzQ5YzguanBn.cache","vod_id":18939918,"title":"91 Fat Kyo Bro Fuite - Troisième sortie - Double pénétration à l'hôtel avec une femme mûre et une écolière en uniforme Version HD 1080p","lastmod":"2025-03-22","duration":"00:56:38","url":"/play/18939918.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE2LzhtZ1RzZm54LzEuanBn.cache","vod_id":19144091,"title":"Une série de vidéos montrant des étudiants filmant secrètement leurs colocataires en train de se changer et de prendre une douche dans leurs chambres universitaires.","lastmod":"2026-02-18","duration":"07:51","url":"/play/19144091.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGQzZmUyNDUwZTU0Y2NlNjg4YzUxMWI0MTE0YjY4NzUuanBn.cache","vod_id":19003580,"title":"SHKD-878 L'enseignante Nanami Kawakami a été agressée à plusieurs reprises par son colocataire jusqu'au matin.","lastmod":"2025-03-23","duration":"01:59:35","url":"/play/19003580.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzA0MTA4ZGRlODhlM2RjZDZhYjYxZWEyY2M2ZGQ3NTUuanBn.cache","vod_id":19141395,"title":"Plusieurs belles femmes de Huajiao (une plateforme de médias sociaux chinoise) proposent des avantages explicites sur WeChat 2","lastmod":"2026-02-03","duration":"30:24","url":"/play/19141395.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvNTUxMTZmZTY2N2I5ZWFjNTg2MjgwMDAxY2U0ZDczNmIuanBn.cache","vod_id":19166325,"title":"Étudiante de haut niveau avec 3000 déesses aux formes généreuses, baisers langoureux et flirt, ambiance au top, sexe passionné","lastmod":"2026-07-11","duration":"32:23","url":"/play/19166325.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMmNjNTFjNjQ0YmU3ZTY0MjEzZGZiMTZhODhiNWY1MjguanBn.cache","vod_id":19066295,"title":"Une lycéenne se fait tromper par un homme bien doté. Ma petite amie préférée, aux gros seins, est séduite par un étudiant à temps partiel bien membré. (Amai Kurumi 348FNTR_005)","lastmod":"2025-12-14","duration":"02:20:10","url":"/play/19066295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDZlYjRiNDFmYTk2NTc0OTJkMTU0NzVjNThhNzk5ZmUuanBn.cache","vod_id":18925806,"title":"NPS-348_B Haruna, une séductrice lesbienne amateur ! Gros seins ! 20 filles sexy réunies.","lastmod":"2025-12-14","duration":"01:54:48","url":"/play/18925806.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGFjNDc4Y2ZmNzkyZjBmZjZkNmM5M2MzNTYwOWQ4NGEuanBn.cache","vod_id":18936202,"title":"[Sous-titres chinois] HOMA-072 La voisine étudiante à l'air banal a une poitrine énorme","lastmod":"2025-03-22","duration":"02:13:50","url":"/play/18936202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTkvMjFhMzQ5MDAwM2VmMzU4MDkyNmUyNzdiNWNiYjA3NDcuanBn.cache","vod_id":19039042,"title":"APNS374 « S'il te plaît, tripote mes seins et mes fesses... Oncle... » Une étudiante d'âge mûr, attirée par les pénis, était seule chez elle lorsque son voisin...","lastmod":"2025-06-19","duration":"02:06:22","url":"/play/19039042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTM3NWY2NTM3NDZkOGI1Y2UyYTRkMGZkNzU5NzBlOGQuanBn.cache","vod_id":18962367,"title":"200GANA-2029 South Park sérieux, mon premier tournage. Ikebukuro 1291, c'est chez moi ! Une étudiante sans expérience, fan de BL, se lance dans une formation de comédienne de doublage.","lastmod":"2025-12-14","duration":"01:00:02","url":"/play/18962367.html"}]},
videoTitle: 'FC2PPV-1178560 [Animation amateur] ♀239 Étudiante Ri◯-chan, 18 ans',
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=/`;
}
};
}