From 84a4ea0ac308947c1e0a2912a6a7ea5852038567 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 20 Oct 2026 14:52:03 +0200 Subject: [PATCH] =?UTF-8?q?Web=20inicial=20de=20Anda=20Que=20No=20Sabes=20?= =?UTF-8?q?N=C3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 ++ Dockerfile | 11 +++ README.md | 7 ++ build.py | 200 +++++++++++++++++++++++++++++++++++++++++ entrypoint.sh | 5 ++ nginx.conf | 13 +++ public/index.html | 159 ++++++++++++++++++++++++++++++++ public/privacidad.html | 59 ++++++++++++ public/styles.css | 176 ++++++++++++++++++++++++++++++++++++ public/terminos.html | 55 ++++++++++++ 10 files changed, 691 insertions(+) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 build.py create mode 100644 entrypoint.sh create mode 100644 nginx.conf create mode 100644 public/index.html create mode 100644 public/privacidad.html create mode 100644 public/styles.css create mode 100644 public/terminos.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7c064c1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +chan.html +feed.xml +thumb_*.jpg +avatar.jpg +banner.jpg +__pycache__/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5a94512 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM nginx:1.27-alpine +RUN apk add --no-cache python3 py3-pillow +COPY public/ /usr/share/nginx/html/ +COPY build.py /app/build.py +COPY nginx.conf /etc/nginx/conf.d/default.conf +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh +ENV SITE_DIR=/usr/share/nginx/html +EXPOSE 80 +HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://127.0.0.1/ >/dev/null || exit 1 +ENTRYPOINT ["/entrypoint.sh"] diff --git a/README.md b/README.md new file mode 100644 index 0000000..1d975da --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +# andaquenosabesna.thax.es + +Web estática de *Anda Que No Sabes Ná*. Un contenedor nginx regenera `index.html` +cada 15 min leyendo el feed RSS de YouTube (`build.py`) y cachea las miniaturas en `img/`. + +- Local: `SITE_DIR=public python3 build.py && python3 -m http.server -d public 8000` +- Contenedor: `docker build -t aqnsn-site . && docker run -p 8080:80 aqnsn-site` diff --git a/build.py b/build.py new file mode 100644 index 0000000..5275caf --- /dev/null +++ b/build.py @@ -0,0 +1,200 @@ +"""Genera index.html a partir del feed RSS del canal (se ejecuta cada 15 min en el contenedor).""" +import html +import os +import shutil +import sys +import urllib.request +import xml.etree.ElementTree as ET + +from PIL import Image, ImageStat + +OUT = os.environ.get('SITE_DIR', 'public') +FEED = os.environ.get('FEED_URL', 'https://www.youtube.com/feeds/videos.xml?channel_id=UC8gVtzB3Lqm7nnfMhMvXGxQ') +MAX_VIDEOS = 15 +NS = {'a': 'http://www.w3.org/2005/Atom', 'y': 'http://www.youtube.com/xml/schemas/2015'} +MESES = ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'] +YT = 'https://www.youtube.com/@andaquenosabesna' +TT = 'https://www.tiktok.com/@andaquenosabesna' +IG = 'https://www.instagram.com/andaquenosabesna' +MAIL = 'andaquenosabesnada@gmail.com' + + +def fetch(url, timeout=20): + req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0 (aqnsn-site)'}) + return urllib.request.urlopen(req, timeout=timeout).read() + + +try: + root = ET.fromstring(fetch(FEED)) +except Exception as exc: # sin red o feed caído: se conserva la web anterior + print('feed no disponible, se mantiene index.html:', exc, file=sys.stderr) + sys.exit(0) + +videos = [] +for e in root.findall('a:entry', NS)[:MAX_VIDEOS]: + d = e.find('a:published', NS).text[:10].split('-') + videos.append({ + 'id': e.find('y:videoId', NS).text, + 'title': e.find('a:title', NS).text, + 'date': f'{int(d[2])} {MESES[int(d[1]) - 1]} {d[0]}', + }) + +def sync_thumbs(vids): + img_dir = os.path.join(OUT, 'img') + os.makedirs(img_dir, exist_ok=True) + keep = {'avatar.jpg', 'banner.jpg'} + ok = [] + for v in vids: + path = os.path.join(img_dir, v['id'] + '.jpg') + if not os.path.exists(path): + try: + open(path, 'wb').write(fetch(f"https://i.ytimg.com/vi/{v['id']}/hqdefault.jpg")) + except Exception as exc: + print('miniatura no descargada', v['id'], exc, file=sys.stderr) + continue + keep.add(v['id'] + '.jpg') + ok.append(v) + for f in os.listdir(img_dir): + if f not in keep: + os.remove(os.path.join(img_dir, f)) + return ok + + +videos = sync_thumbs(videos) +if not videos: + sys.exit(0) + + +def is_short(vid): + """Los Shorts llevan barras laterales desenfocadas: poca textura en los laterales.""" + im = Image.open(os.path.join(OUT, 'img', vid + '.jpg')).convert('L') + w, h = im.size + return ImageStat.Stat(im.crop((0, 0, int(w * .18), h))).stddev[0] < 25 + + +esc = html.escape +featured, rest = videos[0], videos[1:] # el feed viene del más nuevo al más antiguo + + +def url(v): + return f"https://www.youtube.com/watch?v={v['id']}" + + +def card(v, n): + return f''' + + + {esc(v['title'])} + ''' + + +cards = ''.join(card(v, i) for i, v in enumerate(rest)) + +page = f''' + + + + +Anda Que No Sabes Ná · El programa nocturno 100% granaíno + + + + + + + + + + + + +
+ Anda que no sabes ná + +
+ +
+
+ +
+ Anda Que No Sabes Ná +

Directo desde Granada, de noche

+

El programa nocturno
100% granaíno

+

Charlas sin guion sobre lo que sabemos, lo que no, y lo que creemos saber.

+ +
+ +
+ + + +
+
+

Últimos vídeos

+ Todos los vídeos → +
+
{cards} +
+
+ +
+

De qué va

+

Un programa de noche, con tertulia y sin prisa. Cada semana entra gente distinta, con su oficio y su manía, y se habla de lo que sale: de cómo se educa a un adolescente, de la vida en las calles de El Cairo, de si el árabe es tan antiguo como dicen, de qué tienen en común las religiones o de cómo se hace un truco de cartas.

+
    +
  • Educación
  • Egipto
  • Lengua árabe
  • Religiones
  • Magia
  • Cultura granaína
  • Entrevistas
  • +
+
+ + +
+ + + + + + +''' +tmp = os.path.join(OUT, 'index.html.tmp') +open(tmp, 'w', encoding='utf-8').write(page) +shutil.move(tmp, os.path.join(OUT, 'index.html')) +print('index.html', len(page), 'bytes;', len(videos), 'videos; destacado:', featured['id']) diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..60f3e6d --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Primer build al arrancar y después cada 15 minutos; si el feed falla se conserva la web anterior. +python3 /app/build.py || true +( while true; do sleep 900; python3 /app/build.py || true; done ) & +exec nginx -g 'daemon off;' diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..ec274bf --- /dev/null +++ b/nginx.conf @@ -0,0 +1,13 @@ +server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + add_header X-Content-Type-Options nosniff; + add_header Referrer-Policy strict-origin-when-cross-origin; + location = /index.html { add_header Cache-Control "no-cache"; } + location = / { add_header Cache-Control "no-cache"; } + location /img/ { expires 7d; add_header Cache-Control "public"; } + location ~* \.(css)$ { add_header Cache-Control "no-cache"; } + location / { try_files $uri $uri/ =404; } +} diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..a50a3e3 --- /dev/null +++ b/public/index.html @@ -0,0 +1,159 @@ + + + + + +Anda Que No Sabes Ná · El programa nocturno 100% granaíno + + + + + + + + + + + + +
+ Anda que no sabes ná + +
+ +
+
+ +
+ Anda Que No Sabes Ná +

Directo desde Granada, de noche

+

El programa nocturno
100% granaíno

+

Charlas sin guion sobre lo que sabemos, lo que no, y lo que creemos saber.

+ +
+ +
+ + + +
+
+

Últimos vídeos

+ Todos los vídeos → +
+ +
+ +
+

De qué va

+

Un programa de noche, con tertulia y sin prisa. Cada semana entra gente distinta, con su oficio y su manía, y se habla de lo que sale: de cómo se educa a un adolescente, de la vida en las calles de El Cairo, de si el árabe es tan antiguo como dicen, de qué tienen en común las religiones o de cómo se hace un truco de cartas.

+
    +
  • Educación
  • Egipto
  • Lengua árabe
  • Religiones
  • Magia
  • Cultura granaína
  • Entrevistas
  • +
+
+ + +
+ + + + + + diff --git a/public/privacidad.html b/public/privacidad.html new file mode 100644 index 0000000..c11c141 --- /dev/null +++ b/public/privacidad.html @@ -0,0 +1,59 @@ + + + + + +Política de privacidad · Anda Que No Sabes Ná + + + + + + +
+ Anda que no sabes ná + +
+ +
+

Política de privacidad

+

Última actualización: 20 de octubre de 2026

+ +

1. Quién somos

+

Anda Que No Sabes Ná es un programa de pódcast y vídeo producido en Granada (España). Esta política cubre la web andaquenosabesna.thax.es y la aplicación privada que usamos para publicar nuestros propios vídeos en YouTube, TikTok e Instagram.

+

Contacto para cualquier asunto de privacidad: andaquenosabesnada@gmail.com.

+ +

2. Esta web

+

La web es estática. No usa cookies, no tiene analítica, no tiene formularios ni cuentas de usuario y no carga scripts, fuentes ni imágenes de terceros: las miniaturas están alojadas en este mismo sitio.

+

Como cualquier servidor web, nuestro servidor puede registrar de forma temporal la dirección IP, la fecha y la página solicitada, únicamente por seguridad y para detectar abusos. No usamos esos registros para identificar a nadie ni los compartimos.

+

Los enlaces a YouTube, TikTok e Instagram llevan a servicios de terceros, que tienen sus propias políticas de privacidad.

+ +

3. Nuestra aplicación de publicación

+

Usamos una aplicación de gestión de redes sociales de código abierto (Postiz), instalada en un servidor propio, para programar y publicar el contenido del programa. La aplicación está pensada para uso interno: solo la utiliza el propietario de las cuentas y no está abierta al público.

+

Para funcionar, la aplicación solicita autorización a las cuentas del propio programa y accede a:

+ +

Los tokens de acceso se guardan en una base de datos de nuestro servidor. No vendemos, alquilamos ni compartimos estos datos con nadie, no los usamos para publicidad ni los transferimos a terceros. Usamos los datos solo para publicar y programar el contenido del programa en sus propias cuentas.

+ +

4. Servicios de API de YouTube

+

La aplicación usa los Servicios de API de YouTube. Al utilizarla, aceptas quedar sujeto a los Términos del Servicio de YouTube. La política de privacidad de Google está disponible en policies.google.com/privacy.

+

El uso que hace la aplicación de la información recibida de las API de Google se ajusta a la Política de datos de usuario de los Servicios de API de Google, incluidos los requisitos de uso limitado.

+

Puedes revocar en cualquier momento el acceso de la aplicación a tu cuenta de Google desde myaccount.google.com/connections.

+ +

5. TikTok e Instagram

+

El acceso a TikTok se rige también por los Términos del Servicio de TikTok y su política de privacidad. El acceso a Instagram, por las condiciones y la política de datos de Meta. Puedes revocar el acceso de la aplicación desde la configuración de seguridad de cada plataforma.

+ +

6. Conservación y eliminación

+

Conservamos los tokens solo mientras la cuenta esté conectada. Si desconectamos una cuenta o revocas el acceso, el token deja de ser válido y se elimina de nuestra base de datos. Si quieres que borremos cualquier dato asociado a ti, escríbenos al correo de contacto.

+ +

7. Tus derechos

+

Conforme al Reglamento General de Protección de Datos (RGPD) y a la normativa española, puedes ejercer tus derechos de acceso, rectificación, supresión, oposición, limitación y portabilidad escribiendo a andaquenosabesnada@gmail.com. También puedes reclamar ante la Agencia Española de Protección de Datos (aepd.es).

+ +

8. Cambios

+

Si cambiamos esta política, publicaremos la nueva versión en esta misma página con su fecha de actualización.

+
+ + diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..e2f0916 --- /dev/null +++ b/public/styles.css @@ -0,0 +1,176 @@ +:root { + --bg: #06080d; + --bg2: #0b0f18; + --card: #0e1420; + --line: #1b2535; + --ink: #eaf6ff; + --muted: #8fa3b8; + --neon: #2ee6ff; + --neon-d: #12a9c2; + --amber: #ffb45a; + --radius: 16px; + --glow: 0 0 6px rgba(46, 230, 255, .8), 0 0 22px rgba(46, 230, 255, .45), 0 0 60px rgba(46, 230, 255, .25); +} +* { box-sizing: border-box; } +html { scroll-behavior: smooth; } +body { + margin: 0; + background: var(--bg); + color: var(--ink); + font: 16px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; + -webkit-font-smoothing: antialiased; +} +img { max-width: 100%; display: block; } +a { color: inherit; text-decoration: none; } +.wrap { width: min(1120px, 100% - 32px); margin-inline: auto; } +.skip { position: absolute; left: -999px; top: 8px; background: var(--neon); color: #001; padding: 8px 14px; border-radius: 8px; z-index: 99; } +.skip:focus { left: 8px; } +:focus-visible { outline: 2px solid var(--neon); outline-offset: 3px; border-radius: 6px; } + +/* header */ +.top { + position: fixed; inset: 0 0 auto 0; z-index: 20; + display: flex; align-items: center; justify-content: space-between; gap: 16px; + padding: 10px max(16px, calc((100% - 1120px) / 2)); + background: linear-gradient(#06080dd9, #06080d00); + backdrop-filter: blur(6px); +} +.brand { display: flex; align-items: center; gap: 10px; font-weight: 600; letter-spacing: .02em; } +.brand img { border-radius: 50%; box-shadow: 0 0 14px rgba(46, 230, 255, .5); } +.top nav { display: flex; gap: 22px; font-size: .95rem; color: var(--muted); } +.top nav a:hover { color: var(--neon); } +@media (max-width: 640px) { .brand span { display: none; } .top nav { gap: 16px; } } + +/* hero */ +.hero { + position: relative; min-height: 100svh; display: grid; place-items: center; text-align: center; + overflow: hidden; padding: 110px 16px 80px; +} +.hero-bg { + position: absolute; inset: 0; + background: + radial-gradient(60% 50% at 50% 38%, rgba(46, 230, 255, .16), transparent 70%), + linear-gradient(180deg, rgba(6, 8, 13, .78) 0%, rgba(6, 8, 13, .92) 65%, var(--bg) 100%), + url("img/banner.jpg") center / cover no-repeat; + filter: blur(2px) saturate(.9); + transform: scale(1.04); + animation: drift 18s ease-in-out infinite alternate; +} +@keyframes drift { to { transform: scale(1.1) translateY(-1.5%); } } +.hero-inner { position: relative; max-width: 760px; } +.neon { + width: clamp(130px, 22vw, 190px); margin: 0 auto 18px; border-radius: 50%; + border: 1px solid rgba(46, 230, 255, .35); + animation: flicker 6s infinite; +} +@keyframes flicker { + 0%, 18%, 22%, 62%, 64%, 100% { opacity: 1; box-shadow: 0 0 22px rgba(46, 230, 255, .55), 0 0 70px rgba(46, 230, 255, .3); } + 20%, 63% { opacity: .8; box-shadow: 0 0 8px rgba(46, 230, 255, .3), 0 0 24px rgba(46, 230, 255, .12); } +} +.kicker { margin: 0 0 10px; text-transform: uppercase; letter-spacing: .28em; font-size: .78rem; color: var(--amber); } +h1 { margin: 0 0 18px; font-size: clamp(2rem, 6.4vw, 4rem); line-height: 1.08; letter-spacing: -.02em; } +h1 em { font-style: normal; color: var(--neon); text-shadow: var(--glow); } +.lead { margin: 0 auto 30px; max-width: 520px; color: #c3d3e3; font-size: 1.1rem; } +.cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; } +.btn { + padding: 13px 26px; border-radius: 999px; border: 1px solid var(--line); background: #0e1420b3; + font-weight: 600; transition: .25s; +} +.btn:hover { border-color: var(--neon); color: var(--neon); transform: translateY(-2px); } +.btn.primary { background: var(--neon); color: #001a20; border-color: var(--neon); box-shadow: 0 0 24px rgba(46, 230, 255, .35); } +.btn.primary:hover { color: #001a20; box-shadow: 0 0 38px rgba(46, 230, 255, .6); } +.scroll { position: absolute; bottom: 24px; left: 50%; width: 26px; height: 42px; margin-left: -13px; border: 2px solid #ffffff55; border-radius: 14px; } +.scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--neon); animation: wheel 1.8s infinite; } +@keyframes wheel { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(14px); } } + +/* sections */ +section { padding-block: 56px; } +h2 { margin: 0 0 22px; font-size: clamp(1.5rem, 3.6vw, 2.2rem); letter-spacing: -.01em; } +h2 em { font-style: normal; color: var(--neon); text-shadow: 0 0 18px rgba(46, 230, 255, .5); } +.sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; } +.more { color: var(--muted); font-size: .95rem; } +.more:hover { color: var(--neon); } + +/* thumbs */ +.thumb { position: relative; display: block; overflow: hidden; border-radius: 12px; aspect-ratio: 16 / 9; background: #000; } +.thumb img { width: 100%; height: 100%; object-fit: cover; transform: scale(var(--z, 1)); transition: transform .5s; } +.thumb img.short { --z: 2.15; transform-origin: 50% 32%; } +.play { + position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; transition: .3s; + background: radial-gradient(circle, rgba(6, 8, 13, .1), rgba(6, 8, 13, .55)); +} +.play::after { + content: ""; width: 54px; height: 54px; border-radius: 50%; + background: var(--neon) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23001a20' d='M9 6.5v11l9-5.5z'/%3E%3C/svg%3E") center / 60% no-repeat; + box-shadow: var(--glow); +} +.play.big::after { width: 76px; height: 76px; } + +/* featured */ +.feat { + display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(18px, 4vw, 40px); align-items: center; + padding: clamp(14px, 2.4vw, 22px); border: 1px solid var(--line); border-radius: 22px; + background: linear-gradient(135deg, var(--card), var(--bg2)); + box-shadow: 0 30px 80px -40px rgba(46, 230, 255, .25); +} +.feat-text { display: grid; gap: 10px; } +.tag { justify-self: start; padding: 4px 12px; border-radius: 999px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: #001a20; background: var(--amber); font-weight: 700; } +.feat-text strong { font-size: clamp(1.25rem, 2.8vw, 1.9rem); line-height: 1.2; } +.feat-text time, .meta time { color: var(--muted); font-size: .88rem; } +.go { color: var(--neon); font-weight: 600; } +.go i { display: inline-block; transition: transform .25s; font-style: normal; } +.feat:hover .go i { transform: translateX(6px); } +.feat:hover img, .card:hover img { transform: scale(calc(var(--z, 1) * 1.06)); } +.feat:hover .play, .card:hover .play { opacity: 1; } +@media (max-width: 760px) { .feat { grid-template-columns: 1fr; } } + +/* grid */ +.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 22px; } +.card { + display: grid; gap: 12px; padding: 10px 10px 16px; border-radius: var(--radius); + border: 1px solid transparent; transition: .3s; background: transparent; +} +.card:hover { background: var(--card); border-color: var(--line); transform: translateY(-4px); box-shadow: 0 18px 40px -22px rgba(46, 230, 255, .35); } +.meta { display: grid; gap: 4px; padding-inline: 4px; } +.meta strong { font-size: 1rem; line-height: 1.3; font-weight: 600; } + +/* about */ +.about { max-width: 780px; } +.about p { color: #c3d3e3; font-size: 1.1rem; } +.chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 26px 0 0; } +.chips li { padding: 7px 16px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--muted); font-size: .92rem; transition: .25s; } +.chips li:hover { border-color: var(--neon); color: var(--neon); box-shadow: 0 0 16px rgba(46, 230, 255, .25); } + +/* follow */ +.socials { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; } +.socials a { + display: grid; gap: 2px; padding: 22px 24px; border-radius: var(--radius); + border: 1px solid var(--line); background: linear-gradient(135deg, var(--card), var(--bg2)); transition: .3s; +} +.socials a:hover { border-color: var(--neon); transform: translateY(-4px); box-shadow: 0 0 28px rgba(46, 230, 255, .25); } +.socials b { font-size: 1.15rem; } +.socials span { color: var(--muted); font-size: .92rem; } + +/* footer */ +footer { margin-top: 40px; border-top: 1px solid var(--line); background: var(--bg2); padding-block: 28px; color: var(--muted); font-size: .92rem; } +.foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; } +.foot p { margin: 0; } +.links { display: flex; gap: 20px; flex-wrap: wrap; } +.links a:hover { color: var(--neon); } + +/* reveal */ +.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease var(--d, 0ms), transform .7s ease var(--d, 0ms); } +.reveal.in { opacity: 1; transform: none; } +@media (prefers-reduced-motion: reduce) { + *, *::before, *::after { animation: none !important; transition: none !important; } + .reveal { opacity: 1; transform: none; } + html { scroll-behavior: auto; } +} + +/* páginas legales */ +.legal { max-width: 760px; margin: 0 auto; padding: 120px 16px 60px; } +.legal h1 { font-size: clamp(1.8rem, 5vw, 2.6rem); text-align: left; } +.legal h2 { margin-top: 36px; font-size: 1.3rem; color: var(--neon); } +.legal p, .legal li { color: #c3d3e3; } +.legal a { color: var(--neon); text-decoration: underline; text-underline-offset: 3px; } +.legal .upd { color: var(--muted); font-size: .9rem; } diff --git a/public/terminos.html b/public/terminos.html new file mode 100644 index 0000000..3948a68 --- /dev/null +++ b/public/terminos.html @@ -0,0 +1,55 @@ + + + + + +Condiciones del servicio · Anda Que No Sabes Ná + + + + + + +
+ Anda que no sabes ná + +
+ +
+

Condiciones del servicio

+

Última actualización: 20 de octubre de 2026

+ +

1. Objeto

+

Estas condiciones regulan el uso de la web andaquenosabesna.thax.es, del programa Anda Que No Sabes Ná y de la aplicación privada con la que publicamos nuestro contenido en YouTube, TikTok e Instagram. Al usar la web aceptas estas condiciones.

+ +

2. La web

+

La web es informativa: presenta el programa y enlaza a nuestros vídeos y redes sociales. No requiere registro y no ofrece servicios de pago. Intentamos que la información sea correcta, pero puede cambiar o contener errores.

+ +

3. La aplicación de publicación

+

La aplicación es una herramienta de uso interno, instalada en un servidor propio, que sirve para programar y publicar el contenido del programa en las cuentas del propio programa. No está abierta al público ni ofrece a terceros ninguna funcionalidad. El tratamiento de datos asociado se describe en la política de privacidad.

+ +

4. Servicios de terceros

+

La publicación se realiza a través de plataformas de terceros, cuyas condiciones se aplican además de estas:

+ + +

5. Propiedad intelectual

+

Los vídeos, textos, imágenes, el nombre y el logotipo de Anda Que No Sabes Ná pertenecen a sus autores y a las personas que participan en el programa. No está permitido reproducirlos, distribuirlos ni usarlos con fines comerciales sin autorización previa por escrito. Puedes compartir los enlaces a nuestros vídeos libremente.

+ +

6. Enlaces externos

+

La web contiene enlaces a sitios de terceros. No controlamos su contenido ni somos responsables de sus políticas o prácticas.

+ +

7. Limitación de responsabilidad

+

La web se ofrece «tal cual», sin garantías de disponibilidad continua. En la medida permitida por la ley, no seremos responsables de los daños derivados de su uso o de la imposibilidad de acceder a ella. Las opiniones expresadas en el programa son de quienes las dicen.

+ +

8. Cambios

+

Podemos actualizar estas condiciones. La versión vigente es la publicada en esta página, con su fecha de actualización.

+ +

9. Ley aplicable y contacto

+

Estas condiciones se rigen por la legislación española. Para cualquier duda, escríbenos a andaquenosabesnada@gmail.com.

+
+ +