@jjlmoya/utils-streaming 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +60 -0
- package/src/category/i18n/en.ts +134 -0
- package/src/category/i18n/es.ts +134 -0
- package/src/category/i18n/fr.ts +134 -0
- package/src/category/index.ts +12 -0
- package/src/category/seo.astro +14 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +11 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +24 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +148 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/sorteo/bibliography.astro +14 -0
- package/src/tool/sorteo/component.astro +1319 -0
- package/src/tool/sorteo/engine.ts +143 -0
- package/src/tool/sorteo/i18n/en.ts +253 -0
- package/src/tool/sorteo/i18n/es.ts +253 -0
- package/src/tool/sorteo/i18n/fr.ts +253 -0
- package/src/tool/sorteo/index.ts +29 -0
- package/src/tool/sorteo/seo.astro +14 -0
- package/src/tool/sorteo/ui-manager.ts +81 -0
- package/src/tool/sorteo/ui.ts +30 -0
- package/src/tool/tebasCheck/bibliography.astro +14 -0
- package/src/tool/tebasCheck/component.astro +587 -0
- package/src/tool/tebasCheck/engine.ts +116 -0
- package/src/tool/tebasCheck/i18n/en.ts +254 -0
- package/src/tool/tebasCheck/i18n/es.ts +254 -0
- package/src/tool/tebasCheck/i18n/fr.ts +254 -0
- package/src/tool/tebasCheck/index.ts +29 -0
- package/src/tool/tebasCheck/ips.json +31 -0
- package/src/tool/tebasCheck/seo.astro +14 -0
- package/src/tool/tebasCheck/types.ts +45 -0
- package/src/tool/tebasCheck/ui-manager.ts +31 -0
- package/src/tools.ts +8 -0
- package/src/types.ts +71 -0
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jjlmoya/utils-streaming",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
|
+
"types": "./src/index.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": "./src/index.ts",
|
|
9
|
+
"./data": "./src/data.ts"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"src"
|
|
13
|
+
],
|
|
14
|
+
"publishConfig": {
|
|
15
|
+
"access": "public"
|
|
16
|
+
},
|
|
17
|
+
"scripts": {
|
|
18
|
+
"dev": "astro dev",
|
|
19
|
+
"start": "astro dev",
|
|
20
|
+
"build": "astro build",
|
|
21
|
+
"preview": "astro preview",
|
|
22
|
+
"astro": "astro",
|
|
23
|
+
"lint": "eslint src/ --max-warnings 0 && stylelint \"src/**/*.{css,astro}\"",
|
|
24
|
+
"check": "astro check",
|
|
25
|
+
"type-check": "astro check",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"preversion": "npm run lint && npm run test",
|
|
28
|
+
"postversion": "git push && git push --tags",
|
|
29
|
+
"patch": "npm version patch",
|
|
30
|
+
"minor": "npm version minor",
|
|
31
|
+
"major": "npm version major"
|
|
32
|
+
},
|
|
33
|
+
"lint-staged": {
|
|
34
|
+
"*.{ts,tsx,astro}": [
|
|
35
|
+
"eslint --fix"
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@iconify-json/mdi": "^1.2.3",
|
|
40
|
+
"@jjlmoya/utils-shared": "1.2.0",
|
|
41
|
+
"astro": "^6.1.2",
|
|
42
|
+
"astro-icon": "^1.1.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@astrojs/check": "^0.9.8",
|
|
46
|
+
"eslint": "^9.39.4",
|
|
47
|
+
"eslint-plugin-astro": "^1.6.0",
|
|
48
|
+
"eslint-plugin-no-comments": "^1.1.10",
|
|
49
|
+
"husky": "^9.1.7",
|
|
50
|
+
"lint-staged": "^16.4.0",
|
|
51
|
+
"postcss-html": "^1.8.1",
|
|
52
|
+
"schema-dts": "^1.1.2",
|
|
53
|
+
"stylelint": "^17.6.0",
|
|
54
|
+
"stylelint-config-standard": "^40.0.0",
|
|
55
|
+
"stylelint-declaration-strict-value": "^1.11.1",
|
|
56
|
+
"typescript": "^5.4.0",
|
|
57
|
+
"typescript-eslint": "^8.58.0",
|
|
58
|
+
"vitest": "^4.1.2"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'streaming',
|
|
5
|
+
title: 'Streaming and Content Creator Tools',
|
|
6
|
+
description:
|
|
7
|
+
'Enhance the interaction and security of your livestreams with free online tools. Random giveaway selectors and ISP network block detectors (Tebas-Check).',
|
|
8
|
+
seo: [
|
|
9
|
+
{
|
|
10
|
+
type: 'title',
|
|
11
|
+
text: 'Streaming Ecosystem 2026: Interaction and Network Sovereignty',
|
|
12
|
+
level: 2,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
type: 'paragraph',
|
|
16
|
+
html: 'Streaming has evolved from simple video transmission to a complex interactive and social environment. In this section, we offer <strong>free online tools</strong> designed for Twitch, YouTube, and Kick streamers looking to professionalize their content and protect their technical infrastructure. The ability to dynamize your community and ensure the availability of your resources is the foundation of a successful channel.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'paragraph',
|
|
20
|
+
html: 'From fair and transparent live giveaway management to network censorship and block auditing applied by ISPs, our utilities give you the necessary control to navigate the competitive world of live content creation.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'title',
|
|
24
|
+
text: 'Gamification and Community: Transparent Giveaways and Contests',
|
|
25
|
+
level: 2,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'paragraph',
|
|
29
|
+
html: 'Gamification is key to audience retention. Our <strong>giveaway and contest tool</strong> allows for choosing random winners in a fully transparent way. By processing locally on your terminal, you ensure no external manipulation, fostering follower trust during live draws.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'tool',
|
|
33
|
+
tool: 'sorteo',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'title',
|
|
37
|
+
text: 'Network Audit and Neutrality: Tebas-Check',
|
|
38
|
+
level: 2,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'paragraph',
|
|
42
|
+
html: 'In the digital environment of 2026, judicial blocks and ISP restrictions can affect your stream stability or your community\'s access to your resources. <strong>Tebas-Check</strong> is a technical diagnostic tool that detects if your operator is applying censorship or preventive blocks on infrastructures like Cloudflare or other content providers, allowing you to audit your network neutrality.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'tool',
|
|
46
|
+
tool: 'tebas-check',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'list',
|
|
50
|
+
items: [
|
|
51
|
+
'<strong>Dynamic Interaction:</strong> Encourage community participation through fair and transparent chance tools.',
|
|
52
|
+
'<strong>Technical Security:</strong> Audit your connection and detect network blocks that may degrade your stream quality.',
|
|
53
|
+
'<strong>Data Privacy:</strong> Neither your participant lists nor your network diagnostics are stored on our servers.',
|
|
54
|
+
'<strong>Zero Latency:</strong> Optimized tools for live use without consuming excessive resources from your streaming gear.',
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'tip',
|
|
59
|
+
title: 'Professional Live Motto',
|
|
60
|
+
html: '<p><strong>Transparency:</strong> When running a giveaway, remember to capture the screen where the tool is running. Showing your community the random selection process in real-time is the best way to build a relationship of trust and long-term loyalty.</p>',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'title',
|
|
64
|
+
text: 'Community Management: Moderation and Security Models',
|
|
65
|
+
level: 2,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'paragraph',
|
|
69
|
+
html: 'Community is a streamer\'s most valuable asset. Growing without structure is chaotic. A community of 500 is manageable alone, but at 5000, you need systems, clear rules, and moderation tools. Our utilities include giveaway generators that also work as fair-play participation systems: every user registered has exactly the same chance of winning.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'This is especially important when distributing real or exclusive prizes. Perceived injustice in a giveaway can destroy follower relationships for months. That\'s why using a transparent system that processes locally on your computer is the best guarantee of impartiality. Your community sees the code running, trusts the result, and keeps coming back.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Infrastructure and Resilience: When the ISP Gets in the Way',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Domain blocking by ISPs or national authorities is increasingly common in 2026. Tools like Tebas-Check allow content creators to verify if their connection is subject to restrictions. This is critical for creators distributing internationally or facing regulatory scrutiny.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Knowing if your connection is being audited or blocked gives you agency: you can change ISPs, use legal proxies, or simplify your infrastructure based on what you discover. A stream suffering from unexpected drops or lag might be due to network blocks, not your equipment.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Sustainable Monetization: From Live to Stable Income',
|
|
91
|
+
level: 2,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Turning streaming into a sustainable career requires diversification. Subscriptions, donations, ads, merch, courses: each source needs an engaged audience. Gamification tools like giveaways aren\'t just entertainment; they are psychological mechanisms that increase retention.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Successful creators use behavioral psychology: variable ratio reinforcement, community milestones, seasonal events. Our tools automate the random logic so you can focus on your creative talent: entertaining, educating, connecting. The technical "plumbing" is solved.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Omnichannel: Fragmented Streaming Requires Unified Tools',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'A modern streamer doesn\'t just broadcast on Twitch. They stream on Twitch, YouTube, Kick, and Twitter/X simultaneously. This means your giveaway must be fair even when participants come from multiple platforms. Our tools are platform-agnostic: import a user list, run the selector, get a transparent winner.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'This omnichannel approach is the future. Platform fragmentation is permanent, and creators who adapt quickly are those who thrive. Having a set of utilities that works across any platform is a competitive advantage.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'The Future of Live Content 2026',
|
|
117
|
+
level: 2,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'The trend towards <strong>decentralized and multi-account streaming</strong> marks the path this year. Creators no longer depend on a single platform, and having a platform-agnostic utility set is fundamental. These tools are designed to be that technical companion that joins you in every broadcast, regardless of where you stream.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'stats',
|
|
125
|
+
columns: 2,
|
|
126
|
+
items: [
|
|
127
|
+
{ label: 'Randomness', value: 'Cryptographic', icon: 'mdi:ticket' },
|
|
128
|
+
{ label: 'Network', value: 'DNS Audit', icon: 'mdi:radar' },
|
|
129
|
+
{ label: 'Stream', value: 'Multi-Cap', icon: 'mdi:broadcast' },
|
|
130
|
+
{ label: 'Trust', value: 'Full-Trans', icon: 'mdi:shield-check' },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'streaming',
|
|
5
|
+
title: 'Herramientas para Streaming, Directos y Creadores',
|
|
6
|
+
description:
|
|
7
|
+
'Mejora la interacción y seguridad de tus directos con herramientas gratuitas online. Selectores aleatorios para sorteos y detectores de bloqueos judiciales de red (Tebas-Check).',
|
|
8
|
+
seo: [
|
|
9
|
+
{
|
|
10
|
+
type: 'title',
|
|
11
|
+
text: 'Ecosistema de Streaming 2026: Interacción y Soberanía de Red',
|
|
12
|
+
level: 2,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
type: 'paragraph',
|
|
16
|
+
html: 'El streaming ha evolucionado de una simple transmisión de vídeo a un entorno interactivo y social complejo. En esta sección, ofrecemos <strong>herramientas gratuitas online</strong> diseñadas para streamers de Twitch, YouTube y Kick que buscan profesionalizar su contenido y proteger su infraestructura técnica. La capacidad de dinamizar tu comunidad y asegurar la disponibilidad de tus recursos es la base de un canal exitoso.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'paragraph',
|
|
20
|
+
html: 'Desde la gestión justa y transparente de sorteos en vivo hasta la auditoría de censura y bloqueos de red aplicados por operadoras, nuestras utilidades te dan el control necesario para navegar el competitivo mundo de la creación de contenido en directo.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'title',
|
|
24
|
+
text: 'Gamificación y Comunidad: Sorteos y Concursos Transparentes',
|
|
25
|
+
level: 2,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'paragraph',
|
|
29
|
+
html: 'La gamificación es clave para retener a la audiencia. Nuestra herramienta de <strong>sorteo y concursos</strong> permite elegir ganadores aleatorios de forma totalmente transparente. Al procesarse localmente en tu terminal, garantizas que no hay manipulación externa, fomentando la confianza de tus seguidores durante los sorteos en directo.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'tool',
|
|
33
|
+
tool: 'sorteo',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'title',
|
|
37
|
+
text: 'Auditoría de Red y Neutralidad: Tebas-Check',
|
|
38
|
+
level: 2,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'paragraph',
|
|
42
|
+
html: 'En el entorno digital de 2026, los bloqueos judiciales y las restricciones de las operadoras (ISP) pueden afectar la estabilidad de tus directos o el acceso de tu comunidad a tus recursos. <strong>Tebas-Check</strong> es una herramienta de diagnóstico técnico que detecta si tu operadora está aplicando censura o bloqueos preventivos sobre infraestructuras como las de Cloudflare u otros proveedores de contenido, permitiéndote auditar la neutralidad de tu red.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'tool',
|
|
46
|
+
tool: 'tebas-check',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'list',
|
|
50
|
+
items: [
|
|
51
|
+
'<strong>Interacción Dinámica:</strong> Fomenta la participación de tu comunidad mediante herramientas de azar justo y transparente.',
|
|
52
|
+
'<strong>Seguridad Técnica:</strong> Audita tu conexión y detecta bloqueos de red que puedan degradar tu calidad de transmisión.',
|
|
53
|
+
'<strong>Privacidad de Datos:</strong> Ni tus listas de participantes ni tus diagnósticos de red son almacenados en nuestros servidores.',
|
|
54
|
+
'<strong>Zero Latency:</strong> Herramientas optimizadas para ser usadas en directo sin consumir recursos excesivos de tu equipo de streaming.',
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'tip',
|
|
59
|
+
title: 'Consiga para el Directo Profesional',
|
|
60
|
+
html: '<p><strong>Transparencia:</strong> Cuando realices un sorteo, recuerda capturar la pantalla donde se ejecuta la herramienta. Mostrar a tu comunidad el proceso de selección aleatoria en tiempo real es la mejor forma de construir una relación de confianza y lealtad a largo plazo.</p>',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'title',
|
|
64
|
+
text: 'Gestión de Comunidad: Modelos de Moderación y Seguridad',
|
|
65
|
+
level: 2,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'paragraph',
|
|
69
|
+
html: 'La comunidad es el activo más valioso de un streamer. Sin embargo, crecer sin estructura es caótico. Una comunidad de 500 personas es fácil de manejar por ti solo, pero a 5000 personas necesitas sistemas, reglas claras y herramientas de moderación. Nuestras utilidades incluyen generadores de sorteos que también funcionan como sistemas de participación fair-play: cada usuario que se registra en el sorteo tiene exactamente la misma probabilidad de ganar, sin favoritismos.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'Esto es especialmente importante cuando distribyes premios reales o exclusivos. La percepciones de injusticia en un sorteo pueden destruir relaciones con seguidores meses. Por eso, usar un sistema transparente que procese localmente en tu equipo (no en servidores externos) es la mejor garantía de imparcialidad. Tu comunidad ve el código ejecutándose, confía en el resultado, y sigue volviendo.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Infraestructura y Resiliencia: Cuando el ISP se Interpone',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'El bloqueo de dominios por proveedores (ISP) o autoridades de un país es una realidad cada vez más común en 2026. Herramientas como Tebas-Check permiten a creadores de contenido verificar si su conexión está siendo sujeta a restricciones. Esto es crítico para creadores que distribuyen a nivel internacional o que producen contenido que enfrenta escrutinio regulatorio.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Conocer si tu conexión está siendo auditada o bloqueada te da agencia: puedes cambiar de ISP, usar proxies legales, o simplificar tu infraestructura según lo que descubras. Un directo que sufre cortes inesperados o lag esporádico podría deberse a bloqueos de red, no a tu equipo. Diagnosticar correctamente es el primer paso para resolver el problema.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Monetización Sostenible: Del Directo a los Ingresos Estables',
|
|
91
|
+
level: 2,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Convertir el streaming en una carrera sostenible requiere diversificación. Suscripciones, donaciones, publicidad, merchandise, cursos: cada fuente requiere una audiencia enganchada. Las herramientas de gamificación como sorteos no son solo entretenimiento; son mecanismos psicológicos que aumentan retención. Un espectador que participa en un sorteo, aunque no gane, ha invertido atención y ha pasado más tiempo en tu canal.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Creadores exitosos (streamers con millones de seguidores) usan psicología de comportamiento: variable ratio reinforcement, community milestones, seasonal events. Nuestras herramientas automatizando la lógica aleatoria te permiten enfocarte en lo que sí requiere tu talento creativo: entretener, educar, conectar. La "fontanería" técnica queda resuelta.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Omnicanalidad: Streaming Fragmentado Requiere Herramientas Unificadas',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Un streamer moderno no emite solo en Twitch. Emite en Twitch, YouTube, Kick, Twitter/X simultáneamente. Esto significa que tu sorteo debe ser justo incluso cuando los participantes vienen de múltiples plataformas. Nuestras herramientas funcionan agnósticas a la plataforma: importas una lista de usuarios, ejecutas el selector, obtienes un ganador transparente. Sin importar dónde venga tu audiencia, todos compiten en igualdad.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Este enfoque omnicanal es el futuro. La fragmentación de plataformas es permanente, y los creadores que se adaptan rápido son quienes prosperan. Tener un conjunto de utilidades que funciona across any platform es ventaja competitiva.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'El futuro del contenido en vivo 2026',
|
|
117
|
+
level: 2,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'La tendencia hacia los <strong>directos descentralizados y multicuenta</strong> marca el camino de este año. Los creadores ya no dependen de una única plataforma, y tener un conjunto de utilidades agnóstico al servicio que uses es fundamental. Estas herramientas están diseñadas para ser ese compañero técnico que te acompaña en cada emisión, independientemente de dónde emitas.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'stats',
|
|
125
|
+
columns: 2,
|
|
126
|
+
items: [
|
|
127
|
+
{ label: 'Aleatoriedad', value: 'Criptográfica', icon: 'mdi:ticket' },
|
|
128
|
+
{ label: 'Red', value: 'Auditoría DNS', icon: 'mdi:radar' },
|
|
129
|
+
{ label: 'Stream', value: 'Multi-Cap', icon: 'mdi:broadcast' },
|
|
130
|
+
{ label: 'Confianza', value: 'Full-Trans', icon: 'mdi:shield-check' },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { CategoryLocaleContent } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const content: CategoryLocaleContent = {
|
|
4
|
+
slug: 'streaming',
|
|
5
|
+
title: 'Outils de Streaming et Création de Contenu',
|
|
6
|
+
description:
|
|
7
|
+
'Améliorez l\'interaction et la sécurité de vos directs avec des outils en ligne gratuits. Sélecteurs de tirage au sort aléatoire et détecteurs de blocage réseau FAI (Tebas-Check).',
|
|
8
|
+
seo: [
|
|
9
|
+
{
|
|
10
|
+
type: 'title',
|
|
11
|
+
text: 'Écosystème de Streaming 2026 : Interaction et Souveraineté Réseau',
|
|
12
|
+
level: 2,
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
type: 'paragraph',
|
|
16
|
+
html: 'Le streaming a évolué d\'une simple transmission vidéo vers un environnement interactif et social complexe. Dans cette section, nous proposons des <strong>outils en ligne gratuits</strong> conçus pour les streamers Twitch, YouTube et Kick cherchant à professionnaliser leur contenu et protéger leur infrastructure technique. La capacité de dynamiser votre communauté et d\'assurer la disponibilité de vos ressources est la base d\'une chaîne réussie.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
type: 'paragraph',
|
|
20
|
+
html: 'De la gestion juste et transparente des tirages au sort en direct à l\'audit des censures et blocages réseau par les FAI, nos utilitaires vous donnent le contrôle nécessaire pour naviguer dans le monde compétitif de la création de contenu en direct.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
type: 'title',
|
|
24
|
+
text: 'Gamification et Communauté : Tirages au Sort et Concours Transparents',
|
|
25
|
+
level: 2,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: 'paragraph',
|
|
29
|
+
html: 'La gamification est la clé de la rétention d\'audience. Notre outil de <strong>tirage au sort et concours</strong> permet de choisir des gagnants aléatoires de manière totalement transparente. En étant traité localement sur votre terminal, vous garantissez l\'absence de manipulation externe, renforçant la confiance de vos abonnés pendant les directs.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
type: 'tool',
|
|
33
|
+
tool: 'tirage-au-sort',
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
type: 'title',
|
|
37
|
+
text: 'Audit Réseau et Neutralité : Tebas-Check',
|
|
38
|
+
level: 2,
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
type: 'paragraph',
|
|
42
|
+
html: 'Dans l\'environnement numérique de 2026, les blocages judiciaires et les restrictions des opérateurs (FAI) peuvent affecter la stabilité de votre flux ou l\'accès de votre communauté à vos ressources. <strong>Tebas-Check</strong> est un outil de diagnostic technique qui détecte si votre opérateur applique une censure ou des blocages préventifs sur des infrastructures comme Cloudflare ou d\'autres fournisseurs de contenu, vous permettant d\'auditer la neutralité de votre réseau.',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
type: 'tool',
|
|
46
|
+
tool: 'tebas-check',
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
type: 'list',
|
|
50
|
+
items: [
|
|
51
|
+
'<strong>Interaction Dynamique :</strong> Encouragez la participation de votre communauté grâce à des outils de hasard justes et transparents.',
|
|
52
|
+
'<strong>Sécurité Technique :</strong> Auditez votre connexion et détectez les blocages réseau qui peuvent dégrader la qualité de votre transmission.',
|
|
53
|
+
'<strong>Confidentialité des Données :</strong> Ni vos listes de participants ni vos diagnostics réseau ne sont stockés sur nos serveurs.',
|
|
54
|
+
'<strong>Zéro Latence :</strong> Outils optimisés pour une utilisation en direct sans consommer de ressources excessives de votre matériel de streaming.',
|
|
55
|
+
],
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'tip',
|
|
59
|
+
title: 'Devise du Direct Professionnel',
|
|
60
|
+
html: '<p><strong>Transparence :</strong> Lorsque vous effectuez un tirage au sort, n\'oubliez pas de capturer l\'écran où l\'outil s\'exécute. Montrer à votre communauté le processus de sélection aléatoire en temps réel est le meilleur moyen de construire une relation de confiance et de fidélité à long terme.</p>',
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
type: 'title',
|
|
64
|
+
text: 'Gestion de Communauté : Modèles de Modération et de Sécurité',
|
|
65
|
+
level: 2,
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'paragraph',
|
|
69
|
+
html: 'La communauté est l\'atout le plus précieux d\'un streamer. Cependant, croître sans structure est chaotique. Une communauté de 500 personnes est facile à gérer seul, mais à 5000, vous avez besoin de systèmes, de règles claires et d\'outils de modération. Nos utilitaires incluent des générateurs de tirages au sort qui fonctionnent également comme des systèmes de participation fair-play : chaque utilisateur inscrit a exactement la même probabilité de gagner, sans favoritisme.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'paragraph',
|
|
73
|
+
html: 'C\'est particulièrement important lors de la distribution de prix réels ou exclusifs. Une injustice perçue dans un tirage au sort peut détruire les relations avec les abonnés pendant des mois. C\'est pourquoi l\'utilisation d\'un système transparent qui s\'exécute localement sur votre ordinateur est la meilleure garantie d\'impartialité.',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'title',
|
|
77
|
+
text: 'Infrastructure et Résilience : Quand le FAI s\'interpose',
|
|
78
|
+
level: 2,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: 'paragraph',
|
|
82
|
+
html: 'Le blocage de domaines par les fournisseurs (FAI) ou les autorités nationales est une réalité de plus en plus courante en 2026. Des outils comme Tebas-Check permettent aux créateurs de contenu de vérifier si leur connexion est soumise à des restrictions. C\'est crucial pour les créateurs qui distribuent à l\'international ou dont le contenu fait l\'objet d\'un examen réglementaire.',
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
type: 'paragraph',
|
|
86
|
+
html: 'Savoir si votre connexion est auditée ou bloquée vous donne du pouvoir : vous pouvez changer de FAI, utiliser des proxies légaux ou simplifier votre infrastructure en fonction de ce que vous découvrez. Un direct qui souffre de coupures inattendues ou de lag pourrait être dû à des blocages réseau, pas à votre équipement.',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
type: 'title',
|
|
90
|
+
text: 'Monétisation Durable : Du Direct aux Revenus Stables',
|
|
91
|
+
level: 2,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'paragraph',
|
|
95
|
+
html: 'Faire du streaming une carrière durable nécessite une diversification. Abonnements, dons, publicité, merchandising, cours : chaque source nécessite une audience engagée. Les outils de gamification comme les tirages au sort ne sont pas seulement du divertissement ; ce sont des mécanismes psychologiques qui augmentent la rétention.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: 'paragraph',
|
|
99
|
+
html: 'Les créateurs qui réussissent utilisent la psychologie comportementale : renforcement à ratio variable, étapes communautaires, événements saisonniers. Nos outils automatisent la logique aléatoire pour que vous puissiez vous concentrer sur votre talent créatif : divertir, éduquer, connecter. La "tuyauterie" technique est résolue.',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
text: 'Omnicanalité : Le Streaming Fragmenté Nécessite des Outils Unifiés',
|
|
104
|
+
level: 2,
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: 'Un streamer moderne ne diffuse pas seulement sur Twitch. Il diffuse simultanément sur Twitch, YouTube, Kick, Twitter/X. Cela signifie que votre tirage au sort doit être équitable même si les participants proviennent de plusieurs plateformes. Nos outils sont agnostiques vis-à-vis de la plateforme : vous importez une liste d\'utilisateurs, vous lancez le sélecteur, vous obtenez un gagnant transparent.',
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Cette approche omnicanale est l\'avenir. La fragmentation des plateformes est permanente, et les créateurs qui s\'adaptent rapidement sont ceux qui prospèrent. Avoir un ensemble d\'utilitaires fonctionnant sur n\'importe quelle plateforme est un avantage concurrentiel.',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'title',
|
|
116
|
+
text: 'L\'avenir du contenu en direct 2026',
|
|
117
|
+
level: 2,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'paragraph',
|
|
121
|
+
html: 'La tendance vers les <strong>directs décentralisés et multicomptes</strong> trace la voie de cette année. Les créateurs ne dépendent plus d\'une seule plateforme, et disposer d\'un ensemble d\'outils agnostiques au service utilisé est fondamental. Ces outils sont conçus pour être ce compagnon technique qui vous accompagne dans chaque émission, quel que soit l\'endroit où vous diffusez.',
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'stats',
|
|
125
|
+
columns: 2,
|
|
126
|
+
items: [
|
|
127
|
+
{ label: 'Aléatoire', value: 'Cryptographique', icon: 'mdi:ticket' },
|
|
128
|
+
{ label: 'Réseau', value: 'Audit DNS', icon: 'mdi:radar' },
|
|
129
|
+
{ label: 'Stream', value: 'Multi-Cap', icon: 'mdi:broadcast' },
|
|
130
|
+
{ label: 'Confiance', value: 'Full-Trans', icon: 'mdi:shield-check' },
|
|
131
|
+
],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { sorteo } from '../tool/sorteo/index';
|
|
2
|
+
import { tebasCheck } from '../tool/tebasCheck/index';
|
|
3
|
+
|
|
4
|
+
export const streamingCategory: StreamingCategoryEntry = {
|
|
5
|
+
icon: 'mdi:broadcast',
|
|
6
|
+
tools: [sorteo, tebasCheck],
|
|
7
|
+
i18n: {
|
|
8
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
9
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
10
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
11
|
+
},
|
|
12
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { streamingCategory } from './index';
|
|
4
|
+
import type { KnownLocale } from '../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await streamingCategory.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface NavItem {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
href: string;
|
|
6
|
+
isActive?: boolean;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface Props {
|
|
10
|
+
categoryTitle: string;
|
|
11
|
+
tools?: NavItem[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const { categoryTitle, tools = [] } = Astro.props;
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<nav class="preview-nav-sidebar">
|
|
18
|
+
<div class="sidebar-header">
|
|
19
|
+
<h3>{categoryTitle}</h3>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<ul class="tools-list">
|
|
23
|
+
{tools.map((tool) => (
|
|
24
|
+
<li>
|
|
25
|
+
<a
|
|
26
|
+
href={tool.href}
|
|
27
|
+
class:list={['tool-link', { active: tool.isActive }]}
|
|
28
|
+
>
|
|
29
|
+
<span class="tool-title">{tool.title}</span>
|
|
30
|
+
</a>
|
|
31
|
+
</li>
|
|
32
|
+
))}
|
|
33
|
+
</ul>
|
|
34
|
+
</nav>
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
.preview-nav-sidebar {
|
|
38
|
+
display: flex;
|
|
39
|
+
flex-direction: column;
|
|
40
|
+
height: 100%;
|
|
41
|
+
background: var(--bg-surface, #0f172a);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sidebar-header {
|
|
45
|
+
padding: 2rem 1.5rem 1.5rem;
|
|
46
|
+
border-bottom: 1px solid var(--border-color, #1e293b);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.sidebar-header h3 {
|
|
50
|
+
margin: 0;
|
|
51
|
+
font-size: 0.75rem;
|
|
52
|
+
font-weight: 900;
|
|
53
|
+
text-transform: uppercase;
|
|
54
|
+
letter-spacing: 0.1em;
|
|
55
|
+
color: var(--text-muted, #94a3b8);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.tools-list {
|
|
59
|
+
list-style: none;
|
|
60
|
+
margin: 0;
|
|
61
|
+
padding: 0.5rem 0;
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
gap: 0.25rem;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.tools-list li {
|
|
68
|
+
margin: 0;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.tool-link {
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
padding: 0.75rem 1.5rem;
|
|
75
|
+
color: var(--text-muted, #94a3b8);
|
|
76
|
+
text-decoration: none;
|
|
77
|
+
font-size: 0.9375rem;
|
|
78
|
+
font-weight: 500;
|
|
79
|
+
transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
|
|
80
|
+
border-left: 3px solid transparent;
|
|
81
|
+
position: relative;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.tool-link:hover {
|
|
85
|
+
color: var(--text-base, #f1f5f9);
|
|
86
|
+
background: rgba(255, 255, 255, 0.08);
|
|
87
|
+
padding-left: 1.75rem;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.tool-link.active {
|
|
91
|
+
color: var(--accent, #f43f5e);
|
|
92
|
+
background: rgba(244, 63, 94, 0.15);
|
|
93
|
+
border-left-color: var(--accent, #f43f5e);
|
|
94
|
+
font-weight: 600;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.tool-link.active::before {
|
|
98
|
+
content: '';
|
|
99
|
+
position: absolute;
|
|
100
|
+
left: 0;
|
|
101
|
+
top: 50%;
|
|
102
|
+
transform: translateY(-50%);
|
|
103
|
+
width: 3px;
|
|
104
|
+
height: 24px;
|
|
105
|
+
background: var(--accent, #f43f5e);
|
|
106
|
+
border-radius: 0 2px 2px 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.tool-title {
|
|
110
|
+
display: block;
|
|
111
|
+
overflow: hidden;
|
|
112
|
+
text-overflow: ellipsis;
|
|
113
|
+
white-space: nowrap;
|
|
114
|
+
}
|
|
115
|
+
</style>
|
|
116
|
+
|