<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Horarios Valencia</title>
    <description>The latest articles on DEV Community by Horarios Valencia (@horariosvlc).</description>
    <link>https://dev.to/horariosvlc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4209090%2Fe389fea0-5132-4706-b702-a57bb7948959.png</url>
      <title>DEV Community: Horarios Valencia</title>
      <link>https://dev.to/horariosvlc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/horariosvlc"/>
    <language>en</language>
    <item>
      <title>Cómo hice una web de horarios de transporte de Valencia como proyecto personal</title>
      <dc:creator>Horarios Valencia</dc:creator>
      <pubDate>Mon, 26 Oct 2026 16:01:00 +0000</pubDate>
      <link>https://dev.to/horariosvlc/como-hice-una-web-de-horarios-de-transporte-de-valencia-como-proyecto-personal-25n7</link>
      <guid>https://dev.to/horariosvlc/como-hice-una-web-de-horarios-de-transporte-de-valencia-como-proyecto-personal-25n7</guid>
      <description>&lt;p&gt;Durante mucho tiempo, moverme por Valencia en transporte público empezaba siempre igual: abrir la web de FGV para el metro, la de la EMT para el bus y, si tocaba salir de la ciudad, la de Renfe. Tres webs, tres maneras de buscar una parada, tres diseños distintos. Y casi siempre desde el móvil, con prisa, en la puerta de casa.&lt;/p&gt;

&lt;p&gt;Un día pensé que eso tenía que caber en una sola pantalla. Así empezó &lt;a href="https://horariosvlc.es/" rel="noopener noreferrer"&gt;horariosvlc.es&lt;/a&gt;, que hoy es una web gratuita, sin registro, donde escribes una parada, una estación o una línea y te dice cuánto falta para el siguiente. La hago yo solo, en mis ratos libres, y se mantiene con donaciones.&lt;/p&gt;

&lt;h2&gt;
  
  
  El problema real: los datos están, pero cada uno en su casa
&lt;/h2&gt;

&lt;p&gt;Lo bueno de Valencia es que casi todos los operadores publican sus horarios en abierto. Lo malo es que cada uno lo hace a su manera, con su calendario y su ritmo de actualización.&lt;/p&gt;

&lt;p&gt;Ahora mismo la web tira de cinco fuentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FGV&lt;/strong&gt; para Metrovalencia (metro y tranvía), con sus datos abiertos.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;EMT València&lt;/strong&gt; para el bus urbano, a través del Ajuntament de València (CC BY 4.0).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Renfe&lt;/strong&gt; para Cercanías y para los trenes de media y larga distancia.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generalitat Valenciana&lt;/strong&gt; para los autobuses interurbanos y el MetroBus (CC BY 4.0).&lt;/li&gt;
&lt;li&gt;El &lt;strong&gt;geoportal del Ayuntamiento&lt;/strong&gt; para Valenbisi, aparcamientos y la posición de los buses de la EMT, completado con OpenStreetMap para los parkings que el listado municipal no recoge.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Todo eso lo cuento con detalle en la página de &lt;a href="https://horariosvlc.es/sobre-los-datos" rel="noopener noreferrer"&gt;de dónde salen los horarios&lt;/a&gt;, con la licencia de cada fuente y hasta qué fecha hay horario cargado. Me parecía lo justo: si uso datos abiertos, lo mínimo es decir de quién son.&lt;/p&gt;

&lt;p&gt;Lo que más me sorprendió al principio fue algo tan tonto como que cada operador publica horarios con una fecha de caducidad distinta. Uno te da horarios hasta diciembre, otro hasta finales de noviembre, otro hasta enero. Si no lo vigilas, un lunes cualquiera una red entera se queda sin salidas y nadie te avisa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mantenerlo al día sin volverme loco
&lt;/h2&gt;

&lt;p&gt;La solución fue aburrida, pero funciona: cada madrugada la web vuelve a cargar los horarios de todas las fuentes. No hay nada manual en esa parte. Lo manual son los precios: las tarifas oficiales las reviso a mano, porque no hay una fuente limpia de la que sacarlas, y lo pongo así en la web para que nadie se lleve sorpresas.&lt;/p&gt;

&lt;p&gt;Luego está el directo, que es otra historia. El metro y la EMT dan en tiempo real cuántos minutos faltan; Renfe da la posición y el retraso de cada tren que circula. Pero un horario solo cuenta lo previsto. Unas obras en la C3, calles cortadas en Fallas o un tranvía parado en la línea 4 no aparecen en ningún horario, así que hay una sección aparte con las incidencias y avisos oficiales de cada operador.&lt;/p&gt;

&lt;p&gt;Y hay cosas que simplemente no puedo tener. Ouigo e Iryo no publican sus horarios en abierto, así que no están. El MetroBus y los interurbanos van con horario programado porque no hay minutos en directo. Prefiero decirlo claro a inventarme algo.&lt;/p&gt;

&lt;h2&gt;
  
  
  El mapa que "baila" 150 metros
&lt;/h2&gt;

&lt;p&gt;Una de las cosas que más me gustó hacer fue el mapa del metro con los trenes moviéndose. El truco es que FGV no dice dónde está cada tren, solo cuántos segundos le faltan para llegar a cada estación. Así que la posición la deduzco a partir de ese dato y de lo que tarda cada tramo. Funciona, pero puede desviarse unos 150 metros, y eso también lo pone en la propia página. Me parece más honesto que pintar un punto perfecto que en realidad no lo es.&lt;/p&gt;

&lt;h2&gt;
  
  
  Medir lo que nadie mide
&lt;/h2&gt;

&lt;p&gt;FGV, la EMT y Renfe te dicen cuándo llega el próximo, pero no llevan la cuenta pública de cuánto se retrasan. Así que empecé a llevarla yo. En la página de &lt;a href="https://horariosvlc.es/puntualidad" rel="noopener noreferrer"&gt;puntualidad del metro y Cercanías&lt;/a&gt;, cada tres minutos se cruza lo que anuncian en directo con el horario oficial y se guarda.&lt;/p&gt;

&lt;p&gt;En Cercanías es fácil porque Renfe da el retraso tal cual. En el metro y la EMT no: comparo los minutos que anuncian en seis estaciones y seis paradas con mucho movimiento contra la hora del horario, así que es una estimación y lo indico. Un servicio cuenta como retrasado a partir de cinco minutos, y no quito nada: si un día hubo una avería gorda, se ve en la tabla. Esos datos se pueden reutilizar con licencia CC BY 4.0.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pensado para el móvil y para quien llega de fuera
&lt;/h2&gt;

&lt;p&gt;Casi todo el mundo consulta un horario de pie, en la calle. Por eso la web va directa al grano: un buscador arriba y, en cada parada, lo próximo que pasa de cada línea. Si no sabes qué coger, hay un calculador de rutas entre dos puntos con transbordos y lo que se anda.&lt;/p&gt;

&lt;p&gt;También me di cuenta de que mucha gente busca siempre lo mismo: cómo llegar del aeropuerto al centro, a La Fe, a Mestalla o a la playa de la Malvarrosa. Así que esos destinos tienen su propia página con la mejor forma de llegar. Parece poca cosa, pero te ahorra buscar la combinación cada vez.&lt;/p&gt;

&lt;h2&gt;
  
  
  La app
&lt;/h2&gt;

&lt;p&gt;Para quien lo usa a diario hice también la app, &lt;strong&gt;Moverse por Valencia&lt;/strong&gt;, que está en &lt;a href="https://play.google.com/store/apps/details?id=es.horariosvlc.app" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt; y en el &lt;a href="https://apps.apple.com/es/app/moverse-vlc-metro-y-bus/id6815402632" rel="noopener noreferrer"&gt;App Store&lt;/a&gt;. La web sigue funcionando sin instalar nada; la app es para quien prefiere tenerlo a un toque.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lo que me llevo
&lt;/h2&gt;

&lt;p&gt;Si estás pensando en un proyecto con datos abiertos de tu ciudad, mi consejo es empezar por un problema tuyo, muy concreto. Los datos suelen estar ahí; lo difícil es juntarlos, mantenerlos vivos cada día y ser honesto con lo que no sabes.&lt;/p&gt;

&lt;p&gt;Si vives en Valencia o vas a venir, pruébala y dime qué falla. Cualquier error que veas me ayuda más de lo que parece.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>showdev</category>
      <category>sideprojects</category>
      <category>opendata</category>
    </item>
  </channel>
</rss>
