Accessing Vodafone España (NEBA) IPTV via VLC
If you're tired of having to use your sluggish Vodafone TV Box, why not just watch it on your favourite device using VLC or even feed it into Tvheadend or Plex?
Some Background
Ever since the day that I moved to Barcelona, I was fascinated by the NEBA approach that Spain has taken to bring fibre (or Fibra as it's called here) to the masses. It's based on GPON, but allows for network infrastructure sharing between operators, in my case delivering a Vodafone Fibra service via Movistar's cables. This also means that the TV signal is delivered to your home via UDP Multicast. In the case of NEBA, this is actually on the same VLAN, but without the PPoE session.
Discovering Multicast IP Addresses
So, how do you know what the Multicast addresses are? Well, in Vodafone TV's settings, you can find it!
Don't want to spend an hour or two going through all channels, one by one? If you are using Vodafone through NEBA / indirect, you can find a list of all channels below.
Vodafone Spain NEBA IPTV Channels
So, after tediously going through channels one-by-one, I was able to collect the following list, formatted as a M3U file.
#EXTM3U
#EXTVLCOPT--http-reconnect=true
#EXTINF:1,La 1 HD
rtp://@239.192.251.53:2000?payload=mp2t/rtp
#EXTINF:2,La 2 HD
rtp://@239.192.251.54:2000?payload=mp2t/rtp
#EXTINF:3,Antena 3 HD
rtp://@239.192.250.197:2000?payload=mp2t/rtp
#EXTINF:4,Cuatro HD
rtp://@239.192.250.198:2000?payload=mp2t/rtp
#EXTINF:5,Telecinco HD
rtp://@239.192.250.199:2000?payload=mp2t/rtp
#EXTINF:6,La Sexta HD
rtp://@239.192.250.200:2000?payload=mp2t/rtp
#EXTINF:7,TV3 HD
rtp://@239.192.251.55:2000?payload=mp2t/rtp
#EXTINF:8,8TV
rtp://@239.192.251.59:2000?payload=mp2t/rtp
#EXTINF:9,Canal3/24
rtp://@239.192.251.57:2000?payload=mp2t/rtp
#EXTINF:10,Super3/33
rtp://@239.192.251.58:2000?payload=mp2t/rtp
#EXTINF:20,Vodafone TV te recomienda
rtp://@239.192.250.111:2000?payload=mp2t/rtp
#EXTINF:22,Canal Invitado (DRM)
rtp://@239.192.250.239:2000?payload=mp2t/rtp
#EXTINF:28,Fox (DRM)
rtp://@239.192.250.168:2000?payload=mp2t/rtp
#EXTINF:29,Fox Life (DRM)
rtp://@239.192.250.177:2000?payload=mp2t/rtp
#EXTINF:30,TNT (DRM)
rtp://@239.192.250.166:2000?payload=mp2t/rtp
#EXTINF:31,AXN (DRM)
rtp://@239.192.250.162:2000?payload=mp2t/rtp
#EXTINF:32,Cosmo
rtp://@239.192.250.165:2000?payload=mp2t/rtp
#EXTINF:33,Comedy Central (DRM)
rtp://@239.192.250.227:2000?payload=mp2t/rtp
#EXTINF:34,Calle13 (DRM)
rtp://@239.192.250.221:2000?payload=mp2t/rtp
#EXTINF:35,Syfy (DRM)
rtp://@239.192.250.222:2000?payload=mp2t/rtp
#EXTINF:36,AXN White (DRM)
rtp://@239.192.250.164:2000?payload=mp2t/rtp
#EXTINF:50,Canal Hollywood (DRM)
rtp://@239.192.250.188:2000?payload=mp2t/rtp
#EXTINF:51,AMC (DRM)
rtp://@239.192.250.180:2000?payload=mp2t/rtp
#EXTINF:52,XTRM (DRM)
rtp://@239.192.250.187:2000?payload=mp2t/rtp
#EXTINF:54,TCM (DRM)
rtp://@239.192.250.209:2000?payload=mp2t/rtp
#EXTINF:55,Sundance Channel (DRM)
rtp://@239.192.250.149:2000?payload=mp2t/rtp
#EXTINF:56,Somos (DRM)
rtp://@239.192.250.154:2000?payload=mp2t/rtp
#EXTINF:57,Paramount Channel
rtp://@239.192.250.172:2000?payload=mp2t/rtp
#EXTINF:70,Disney Channel
rtp://@239.192.250.179:2000?payload=mp2t/rtp
#EXTINF:71,Disney XD (DRM)
rtp://@239.192.250.192:2000?payload=mp2t/rtp
#EXTINF:72,Nickelodeon (DRM)
rtp://@239.192.250.170:2000?payload=mp2t/rtp
#EXTINF:73,Clan HD
rtp://@239.192.250.218:2000?payload=mp2t/rtp
#EXTINF:74,Boing
rtp://@239.192.250.160:2000?payload=mp2t/rtp
#EXTINF:75,Disney Junior (DRM)
rtp://@239.192.250.112:2000?payload=mp2t/rtp
#EXTINF:76,Nick Junior HD (DRM)
rtp://@239.192.250.131:2000?payload=mp2t/rtp
#EXTINF:78,Pandaa (DRM)
rtp://@239.192.250.151:2000?payload=mp2t/rtp
#EXTINF:100,Odisea 4k (DRM)
rtp://@239.192.250.15:2000?payload=mp2t/rtp
#EXTINF:101,Odisea (DRM)
rtp://@239.192.250.190:2000?payload=mp2t/rtp
#EXTINF:102,Discovery Channel (DRM)
rtp://@239.192.250.178:2000?payload=mp2t/rtp
#EXTINF:103,Historia (DRM)
rtp://@239.192.250.225:2000?payload=mp2t/rtp
#EXTINF:104,Nationaal Geographic (DRM)
rtp://@239.192.250.174:2000?payload=mp2t/rtp
#EXTINF:105,Nat Geo Wild (DRM)
rtp://@239.192.250.175:2000?payload=mp2t/rtp
#EXTINF:106,Viajar (DRM)
rtp://@239.192.250.176:2000?payload=mp2t/rtp
#EXTINF:107,Blaze (DRM)
rtp://@239.192.250.125:2000?payload=mp2t/rtp
#EXTINF:109,Slow 4K (DRM)
rtp://@239.192.250.11:2000?payload=mp2t/rtp
#EXTINF:118,Decasa 4K (DRM)
rtp://@239.192.250.2:2000?payload=mp2t/rtp
#EXTINF:119,Canal Cocina 4K (DRM)
rtp://@239.192.250.3:2000?payload=mp2t/rtp
#EXTINF:120,Canal Cocina (DRM)
rtp://@239.192.250.212:2000?payload=mp2t/rtp
#EXTINF:122,Crimen+Investigacion (DRM)
rtp://@239.192.250.153:2000?payload=mp2t/rtp
#EXTINF:123,Canal Decasa (DRM)
rtp://@239.192.250.211:2000?payload=mp2t/rtp
#EXTINF:124,Myzen TV (DRM)
rtp://@239.192.250.224:2000?payload=mp2t/rtp
#EXTINF:125,Fashion One (DRM)
rtp://@239.192.250.216:2000?payload=mp2t/rtp
#EXTINF:126,Canal Galeria (DRM)
rtp://@239.192.250.156:2000?payload=mp2t/rtp
#EXTINF:150,Insight UHD (DRM)
rtp://@239.192.250.9:2000?payload=mp2t/rtp
#EXTINF:151,Festival 4K (DRM)
rtp://@239.192.250.16:2000?payload=mp2t/rtp
#EXTINF:152,Funbox UHD (DRM)
rtp://@239.192.250.10:2000?payload=mp2t/rtp
#EXTINF:153,MTV España
rtp://@239.192.250.147:2000?payload=mp2t/rtp
#EXTINF:154,FDF
rtp://@239.192.250.163:2000?payload=mp2t/rtp
#EXTINF:155,Neox
rtp://@239.192.250.215:2000?payload=mp2t/rtp
#EXTINF:156,Nova
rtp://@239.192.250.167:2000?payload=mp2t/rtp
#EXTINF:157,Divinity
rtp://@239.192.250.169:2000?payload=mp2t/rtp
#EXTINF:158,Mega (DRM)
rtp://@239.192.250.159:2000?payload=mp2t/rtp
#EXTINF:159,13TV
rtp://@239.192.250.54:2000?payload=mp2t/rtp
#EXTINF:160,Energy
rtp://@239.192.250.171:2000?payload=mp2t/rtp
#EXTINF:161,ATRESERIES (DRM)
rtp://@239.192.250.226:2000?payload=mp2t/rtp
#EXTINF:162,BE MAD HD
rtp://@239.192.250.110:2000?payload=mp2t/rtp
#EXTINF:163,DMAX (DRM)
rtp://@239.192.250.181:2000?payload=mp2t/rtp
#EXTINF:164,DKISS (DRM)
rtp://@239.192.250.56:2000?payload=mp2t/rtp
#EXTINF:165,TEN
rtp://@239.192.250.87:2000?payload=mp2t/rtp
#EXTINF:180,Sol Musica (DRM)
rtp://@239.192.250.130:2000?payload=mp2t/rtp
#EXTINF:181,HIT TV
rtp://@239.192.250.67:2000?payload=mp2t/rtp
#EXTINF:183,MTV Live HD (DRM)
rtp://@239.192.250.161:2000?payload=mp2t/rtp
#EXTINF:184,MTV Rocks (DRM)
rtp://@239.192.250.75:2000?payload=mp2t/rtp
#EXTINF:185,MTV Hits (DRM)
rtp://@239.192.250.79:2000?payload=mp2t/rtp
#EXTINF:186,MTV Dance (DRM)
rtp://@239.192.250.78:2000?payload=mp2t/rtp
#EXTINF:187,MTV Music (DRM)
rtp://@239.192.250.91:2000?payload=mp2t/rtp
#EXTINF:188,VH1 (DRM)
rtp://@239.192.250.80:2000?payload=mp2t/rtp
#EXTINF:189,VH1 CLassic (DRM)
rtp://@239.192.250.85:2000?payload=mp2t/rtp
#EXTINF:190,Mezzo (DRM)
rtp://@239.192.250.59:2000?payload=mp2t/rtp
#EXTINF:191,Mezzo Live HD (DRM)
rtp://@239.192.250.173:2000?payload=mp2t/rtp
#EXTINF:200,24 Horas
rtp://@239.192.251.56:2000?payload=mp2t/rtp
#EXTINF:201,El Toro TV
rtp://@239.192.250.90:2000?payload=mp2t/rtp
#EXTINF:202,Euronews (DRM)
rtp://@239.192.250.52:2000?payload=mp2t/rtp
#EXTINF:203,CNN International (DRM)
rtp://@239.192.250.53:2000?payload=mp2t/rtp
#EXTINF:204,CNBC (DRM)
rtp://@239.192.250.89:2000?payload=mp2t/rtp
#EXTINF:205,Bloomberg (DRM)
rtp://@239.192.250.83:2000?payload=mp2t/rtp
#EXTINF:206,BBC World HD (DRM)
rtp://@239.192.250.217:2000?payload=mp2t/rtp
#EXTINF:207,Al Jazeera (DRM)
rtp://@239.192.250.141:2000?payload=mp2t/rtp
#EXTINF:208,CGTN Español (DRM)
rtp://@239.192.250.99:2000?payload=mp2t/rtp
#EXTINF:209,RT Español (DRM)
rtp://@239.192.250.127:2000?payload=mp2t/rtp
#EXTINF:210,France 24 HD (DRM)
rtp://@239.192.250.208:2000?payload=mp2t/rtp
#EXTINF:211,Canal Parlamento (DRM)
rtp://@239.192.250.77:2000?payload=mp2t/rtp
#EXTINF:212,EWTN (DRM)
rtp://@239.192.250.57:2000?payload=mp2t/rtp
#EXTINF:250,Eurosport1 (DRM)
rtp://@239.192.250.186:2000?payload=mp2t/rtp
#EXTINF:251,Eurosport2 (DRM)
rtp://@239.192.250.213:2000?payload=mp2t/rtp
#EXTINF:252,Teledeporte
rtp://@239.192.250.129:2000?payload=mp2t/rtp
#EXTINF:253,Fight Sports HD (DRM)
rtp://@239.192.250.232:2000?payload=mp2t/rtp
#EXTINF:254,Extreme Sports (DRM)
rtp://@239.192.250.63:2000?payload=mp2t/rtp
#EXTINF:257,Esport3
rtp://@239.192.251.60:2000?payload=mp2t/rtp
#EXTINF:315,GOL (DRM)
rtp://@239.192.250.223:2000?payload=mp2t/rtp
#EXTINF:316,Real Madrid TV (DRM)
rtp://@239.192.250.182:2000?payload=mp2t/rtp
#EXTINF:317,Betis TV (DRM)
rtp://@239.192.250.193:2000?payload=mp2t/rtp
#EXTINF:318,Sevilla FC TV (DRM)
rtp://@239.192.250.115:2000?payload=mp2t/rtp
#EXTINF:319,Barça TV (DRM)
rtp://@239.192.250.241:2000?payload=mp2t/rtp
#EXTINF:375,Surf Channel (DRM)
rtp://@239.192.250.194:2000?payload=mp2t/rtp
#EXTINF:390,Garage TV (DRM)
rtp://@239.192.250.191:2000?payload=mp2t/rtp
#EXTINF:450,El Trece Internacional (DRM)
rtp://@239.192.251.230:2000?payload=mp2t/rtp
#EXTINF:451,Ve Plus TV (DRM)
rtp://@239.192.250.68:2000?payload=mp2t/rtp
#EXTINF:452,AZ Corazon (DRM)
rtp://@239.192.250.214:2000?payload=mp2t/rtp
#EXTINF:453,Caracol TV Internacional (DRM)
rtp://@239.192.250.70:2000?payload=mp2t/rtp
#EXTINF:455,TV Chile Internacional (DRM)
rtp://@239.192.250.71:2000?payload=mp2t/rtp
#EXTINF:456,Cubavision Internacional (DRM)
rtp://@239.192.250.60:2000?payload=mp2t/rtp
#EXTINF:500, Deutsche Welle (DRM)
rtp://@239.192.250.72:2000?payload=mp2t/rtp
#EXTINF:501,TV5 Monde (DRM)
rtp://@239.192.250.51:2000?payload=mp2t/rtp
#EXTINF:503,RTM (DRM)
rtp://@239.192.250.88:2000?payload=mp2t/rtp
#EXTINF:504,TV Polonia (DRM)
rtp://@239.192.250.74:2000?payload=mp2t/rtp
#EXTINF:505,Pro TV Interational (DRM)
rtp://@239.192.250.66:2000?payload=mp2t/rtp
#EXTINF:901,TVG Sat (DRM)
rtp://@239.192.250.94:2000?payload=mp2t/rtp
#EXTINF:902,ETB Sat (DRM)
rtp://@239.192.250.98:2000?payload=mp2t/rtp
#EXTINF:903,TV3 Cat
rtp://@239.192.251.10:2000?payload=mp2t/rtp
#EXTINF:904,Canal Sur Andalucia (DRM)
rtp://@239.192.250.96:2000?payload=mp2t/rtp
#EXTINF:905,Extremadura SAT (DRM)
rtp://@239.192.250.86:2000?payload=mp2t/rtp
You can also find it posted on my Github Gist where you can download the file directly.
You can also find a list of updated multicast addresses for Movistar here: Lista actualizada de canales para VLC
udpxy
If you use Vodafone's provided router, you can skip this step. If you are like me however and are using your own router, you may want to enable udpxy on it, which "reads data streams from a multicast groups and forwards the data to the requesting clients (subscribers)".
If you're using Tomato Firmware, you can find it at the bottom of the Advanced > Firewall page.
Once enabled, take note of the port set above. In my case, that's 4022.
You will have to update your M3U playlist entries to the following:
http://<ROUTER-IP>:4022/udp/<IPTV-IP>:<IPTV-PORT>?payload=mp2t/rtp
Next steps
At this point, you should be able to watch the non-scrambled TV channels without any issue in VLC.
You can also use this approach to then load all the TV channels into a Tvheadend or Plex server and distribute it from there, together with EPG data.
Let me know how this works out for you!