skyscraper8: Command line tool for extracting files contained in a TS/GS.

  • PID-3002 - User private (0xF0) - is not a real T2MI
    PID-3003 - User private (0x90)
    PID 3005 - PAT (SID-2305 & SID-2306)
    PID 3006 - PMT (SID-2305)
    PID 3007 - PMT (SID-2306)
    PID 3015 - CAT
    PID 3016 - NIT
    PID 3017 - SDT
    PID-3018 - EIT
    PID-3019 - TDT/TOT
    [Blocked Image: https://i.ibb.co/gFPqpJBv/capture-001-24122025-213115.png]

    Location: Banska Bystrica, Slovakia
    Ku-Band: 50°West - 95°East Gibertini OP100 (1,0m)
    Ku-Band: 5°West - 39°East WaveFrontier T90 (0,9m)
    Ku-Band LNB: Avenger PLL321S-2 PLL
    Tuner: TBS 5927&5925&5220, EDISION MIO+ 4K, Mut@nt HD51, Dreambox ONE&900UHD

  • Hi guys,

    Regarding DVB-SIS: The whole idea behind it, as far as I understand is that a broadcaster can use a single mux to satisfy both DTH-satellite reception and supplying signal DVB-T(2) broadcast cells. However, SIS allows them to also use the satellite mux to transmit additional services which would be present in the DVB-T2 mux, but won't be "visible" to satellite receivers. The XML file that skyscraper8 extracts from the mux describes exactly how a DVB-T(2) broadcast cell should generate a stream. Unfortunately, the muxes that we know of - those on 26°E and 5°W don't contain any additional DVB-T(2) exclusive services. This can easily be checked if we compare the PIDs referenced in the XML-file (it's human-readable) to those that are referenced by the PMTs we can already see. This is also why I didn't (yet) implement remultiplexing of DVB-SIS in skyscraper8 yet - because the remultiplexed stream would be pretty close to a clone of what we already see.

    Now for why I have been silent the last few days: I've been deep-diving into the sample of 95°E/11476/V you provided, and found it to be pretty interesting! It is indeed a GSE stream, but the owner of it took some liberties in regards to the standard.
    For example, they use a non-standard CRC32 coefficient for error-checking. Also, the standards say to set the SYNC field in the BBframe to "0" or "1", yet they (ab-)use it as continuity check.
    Then there's the Protocol_Type field, which also caused me some headaches. Instead of setting it to 0x0800 or 0x0806 like one would expect it for IP traffic - or 0x0082 for DVB-RCS2 traffic (like BFBS does), or any valid EtherType, they always set this field to 0x0002, or 0x0004. If adhering to the standard, 0x0002 would mean that the frame contains valid TS packets - but the broadcaster here wasn't that nice. And 0x0004 isn't even an assigned number (see here: https://www.iana.org/assignments/ul…ext-headers.xml ) - so we're dealing with something non-standardized here.

    So I observed further: If the Protocol_Type is 0x0002, then the GSE PDU *might* be an IPv4 Packet. But it might also be something entirely different. Sometimes it's also something base64 encoded, which I've yet to make sense of.

    But when the Protocol_Type gets set to 0x0004, the data contained within the PDU looks like stuffing data to me. There's always two randomly chosen bytes, repeated to the end of the PDU. How a VSAT Terminal is supposed to make sense of so little information is beyond me.

    Also of peculiar note, the GSE packet label is always set to the same MAC address. But judging from the contents of the IPv4 packets, I'm pretty sure this mux is targeted to multiple receivers.

    I got extraction of IPv4 packets from this mux mostly working and will post update files soon. :59:
    Unfortunately, this sample recording does not contain anything that looks like video or audio, but I don't feel like this was wasted time as there might be muxes out there which use the same format and do contain interesting things for us.
    I think so because I'm pretty sure that I've seen both forward counting in the SYNC-field and Protocol_Type being set to 0x0002/0x0004 before (so this format *might* be common?), but I didn't get to dig through my stash of samples yet.

    Now, I know this sounds like I've put a lot of effort into this, but this is a face of tech I do enjoy quite a lot. Compared to the boring and sterile cloud stuff I have to deal with at work, trying to make sense of such streams is a delight for me! 🥰

    Regards and wishes for a nice weekend,
    Fey :3:

    Images

    Fey's equipment:

    Display Spoiler

    Location: Center of North Rhine-Westphalia
    Dish at home: Unknown dish from previous tenant pointed at 19.2°E/13.0°E/28.2°E/42.0°E
    Dish at my vacational hut (only available about 15-25 days each year): 120cm Octagon with motor, possible to get from 80°E to 37,6°W.
    LNBs: Inverto Black Ultra & Bullzeye BE-01
    Main Computer hardware: ASRock J4125M / Intel Celeron J4125 / 8GB RAM / TBS 6903x (+ TBS 5927)
    Curious about: GS/GSE, Data broadcasts, Getting to know C & Ka bands

  • Hi friends!

    As promised yesterday, here is the new update:
    https://mega.nz/file/1wkBnaLS#49ogoBh6Opb1izzI6F4UXeli6IzBygLdHbc55rndag0

    This update changes skyscraper8's behaviour of dealing with GS quite a bit (but this shouldn't break compatibility with what the previous versions can do):
    It goes like this:
    - When recieving a GS, it will first collect 100 complete BBFrames. If the broadcast is using MIS, it will collect 100 complete BBFrames for each stream.
    - When it's got the BBFrames, it will perform a statistical analysis to check what kind of stream it's getting.
    - If the analysis says that it's a known stream type, it will take the code-path meant for it. (right now standard GSE, GSE with error detection, GSE-HEM, Siminn Radiomidun-style encapsulation, and whatever it is that's talking on 95°E/11476/H, are known stream types)
    - If it has no idea what stream type it is, it will give a message saying so, and will fallback to the IP packet finder algorithm which older skyscraper8 versions were using as well.

    P.S.: I've also began working on a (hopefully) user-friendly GUI. I'll post screenshots as I make progress with it.

    Happy DX'ing and have a nice week,
    Cheers,:3:
    Fey

    Images

    Fey's equipment:

    Display Spoiler

    Location: Center of North Rhine-Westphalia
    Dish at home: Unknown dish from previous tenant pointed at 19.2°E/13.0°E/28.2°E/42.0°E
    Dish at my vacational hut (only available about 15-25 days each year): 120cm Octagon with motor, possible to get from 80°E to 37,6°W.
    LNBs: Inverto Black Ultra & Bullzeye BE-01
    Main Computer hardware: ASRock J4125M / Intel Celeron J4125 / 8GB RAM / TBS 6903x (+ TBS 5927)
    Curious about: GS/GSE, Data broadcasts, Getting to know C & Ka bands

  • Fey,

    Thank you for the update. If I find stream types that your software requests a sample of, what is the best method to send them to you?

    Joolz

    Edited once, last by Joolz (January 11, 2026 at 11:00 PM).

  • Hi Fey,

    As always, when you visit the forum, we learn something about the many streams we find, but about which we have only a vague idea of what we could understand. Thank you for these "lessons," but more importantly for the new versions of your application.

    With this, the latest one you offered us, I tested the Siminn Radiomidun stream at 1.0W. As you can see in the screenshot, I can run the stream with port 1234 without any problems or glitches.

    I think there are other amateurs here who would like the GUI version and who are reluctant to use PowerShell to view the content of these streams.
    I really appreciate any help you can provide. :70:

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • @Fay, I hope you are well and able to work as you like.

    I assume you don't have time to visit us, for the reasons you described in the previous pages, especially those related to teaching or research.

    And yet, perhaps you are curious to analyse this sample from a mux (12560 V) with a 256-APSK symbol rate.

    At first glance, it seems more of an intense traffic issue, but the message in the PowerShell script requires a closer look, which is why I am attaching a recorded file (13MB).

    The same thing and the same content are also found in the mux next to it, 12600 H, with the S2X /64APSK extension.

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • Hi all,

    it's been a while. First, let me apologize for the long absence. It's been mostly health issues. Plus I had something like a "coder's block" - similar to how many authors of fiction get "writer's block". I didn't even know such issues exist, but apparantly it's a known phenomenon among both hobbyist and professional software developers.

    But when I actually got to coding, I was a bit "in the zone", as they say, to get Windows Forms to do what I want, in order to get a nice UI for skyscraper8 going and finally make the application of my dreams.

    Now, developing a Windows Forms/Desktop application in 2026, when web applications are the gold standard, might sound crazy but since I am doing the DVB-stuff mostly for fun and deal with (backend) web stuff at work, this is a nice way to get balance.

    I don't have an update to share right now, but some screenshots of the upcoming GUI for skyscraper8, which I'd like to release in the foreseeable future. I call this project "Voile".

    Pictures probably speak more than words in this case, so I'm gonna show what I was up to:

    1. [Screenshot of Voile displaying a sample of 4,8°E/11747/V]


    I know, from the looks, right now this looks like a rip-off version of TSReader, but Voile isn't meant to replace TSReader, and of course I do not mean to disgrace Rod Hewitt's legacy. These programs serve a different purpose. The purpose of TSReader is well known to all of us.
    Voile is meant as an UI to skyscraper8's features. Therefore in it's heart Voile is also a data extraction program, just as skyscraper8 is. And for finding data inside of TS structures, skyscraper8 needs an understanding of the TS contents, and Voile displays these as well.

    2. [Screenshot of Voile displaying a sample of the BFBS stream on 15°W]

    For example, it's possible to also see information on nested TS. This is might prove useful for things like T2-MI or the BFBS stream of 15,0°W on which they put the TV service inside a TS inside an IP stream inside a GS. You get the gist.

    3. [Screenshot of Voile showing a nested T2-Mi Mux beside the DAB feed on 0,8°W]

    One of the things I really wanted to do is to have multiple TS open at the same time, and I think I have accomplished that. For example, here we can see Voile displaying the contents of the unencrypted T2-MI mux on 4,8°E/11747/V next to the IP packets on 0,8°W/10717/V. If you have a QHD or 4K Monitor, it's even possible to display more than that.

    4. [Screenshot of Voile showing the analysis of the NIP package on 19,2°E/11141/H]

    Voile also knows DVB-NIP - after all that's what made me publish skyscraper8 in the first place.

    Now looking at those screenshots, you might notice two things. The title bar says "Voile - [Licensed to ...]". Yes, Voile will be released as shareware. But do not worry, for friends and regular contributors of the forums it will be totally free. Skyscraper8 itself will stay free just as it has been so far.

    The other thing that might occur to is that the sidebar says "Database" - this is not just for show. Besides skyscraper8's primary function of extracting data, Voile writes the knowledge skyscraper8 gathers on the DVB Tables and other metadata processed through it to a local database. There are numerous situations in which this may come in handy.

    • For example one could easily build a TV Guide out of the gathered EIT sections from the database.
    • Or train an LLM/LoRa on a good amount of gathered teletext pages.
    • Or one could compare how a Mux looked three weeks ago from how it looks today. (If we spin that thought further, comparing entire blind-scans might become interesting as well. Blindscanning is definitely something I want to get into as well.)
    • And of course a lot more...

    Now of course I do understand that not everyone wants to deal with stuff like MS SQL Server, PostgreSQL or MySQL and I took that into consideration. That's why Voile ships with and will just use a zero-configuration SQLite database by default. No cloud, no servers or database administration required.

    I know it's difficult to judge a program from just screenshots but I'm curious what you guys think.

    I can't wait to publish Voile with the next skyscraper8 update once I've got it to a point on which it runs stable.:4:

    Right now I'm busy fighting ffmpeg's libav or libvlc to get video playback and video screenshotting inside the program working. If any other developers have experience with these, I'd love to hear them.

    Thanks for reading,

    Regards,

    Fey. :3:

    Images

    Fey's equipment:

    Display Spoiler

    Location: Center of North Rhine-Westphalia
    Dish at home: Unknown dish from previous tenant pointed at 19.2°E/13.0°E/28.2°E/42.0°E
    Dish at my vacational hut (only available about 15-25 days each year): 120cm Octagon with motor, possible to get from 80°E to 37,6°W.
    LNBs: Inverto Black Ultra & Bullzeye BE-01
    Main Computer hardware: ASRock J4125M / Intel Celeron J4125 / 8GB RAM / TBS 6903x (+ TBS 5927)
    Curious about: GS/GSE, Data broadcasts, Getting to know C & Ka bands

  • Thanks for the new sample. With a quick glance at it's structure, it exhibits similar patterns as the sample of 95°E/11476/H you posted earlier. Interesting stuff! Will dig into this later.

    Fey,

    Thank you for the update. If I find stream types that your software requests a sample of, what is the best method to send them to you?

    Joolz

    Apologies for the late response. The easiest way for me to download a large file would be mega.co.nz, because I have a premium subscription to their service, but since they tend to limit uploader's space, I think it might not be the best solution for everyone.

    The sharing features of OneDrive and Google Drive should be fine as well. Some friends have also sent me stuff using https://dropmefiles.com/ before, that works nicely as well. If you have a larger set of samples, or a slow internet connection, DM me and we can work something else out.

    Fey's equipment:

    Display Spoiler

    Location: Center of North Rhine-Westphalia
    Dish at home: Unknown dish from previous tenant pointed at 19.2°E/13.0°E/28.2°E/42.0°E
    Dish at my vacational hut (only available about 15-25 days each year): 120cm Octagon with motor, possible to get from 80°E to 37,6°W.
    LNBs: Inverto Black Ultra & Bullzeye BE-01
    Main Computer hardware: ASRock J4125M / Intel Celeron J4125 / 8GB RAM / TBS 6903x (+ TBS 5927)
    Curious about: GS/GSE, Data broadcasts, Getting to know C & Ka bands

  • Fey,


    Thank you for sharing the product of your hard work, the UI screenshots look excelent! I will send you some sample streams.


    Joolz

  • Hi Fey,

    I'm glad you're back on the forum and have resumed your activity. As usual, after a long or short absence, you return with promising news and updates about your app.

    I'm not a writer, but I believe I understand what it means to have a mental block when you want to accomplish something, especially in the field of intellectual creation. Everything that happens to us in life—good or bad, our joys and sorrows—is the result of how we perceive and think. In fact, we live our lives in our minds. That's where everything starts.

    That's why I greatly appreciate people who can overcome all kinds of adversity, such as health problems, and continue their projects. That's what I wish for you: may the success of your project surpass the difficulties you encounter along the way.

    Regarding the project you've told us about, I don't think the interface for your Skyscraper8 is, as you put it, "a rip-off of Rod Hewitt's legacy". On the contrary, I think it's more of a tribute to this extraordinary developer who paved the way for those who would follow. And you are one who honors him with pride. I believe that if he were still alive, he would have been happy to know that you are making use of his ideas.

    I confidently expect Skyscraper8 to have a "clothing" ("Voile?") that matches the impressive capabilities you have given it. If I'm not mistaken, with your app, you've delved into the very mental universe of Rod. If there's any truth to what I'm saying, we have one more reason to enjoy your presence on this forum.

    Please keep in mind that the new Voile can be used not only with cards for encapsulated streams (Stid135 6903x/6909x, 6916), but also with other DVB-S2 cards for generic or continuous streams. These streams are packaged in different formats depending on the card and, especially, the application, so their identification is not always accurate. For example, with Crazyscan, if I use a card with an STV091X-based chip, the app plays it as a continuous stream, but with a Stid135 card, the same stream is encapsulated. Your Skyscraper8 recognizes this when it reads a stream and tells me what type it is.

    With the latest version of Skyscraper8 released on the 17th, I couldn't decode the stream from 15.0W. After working well in the Skyscraper8 realese10 version, it now runs with the images in the picture below.It seems that now, it works—with mixed formats, so to speak.

    In short, if the anticipated Voile can read all stream formats, that would be fantastic. :3:

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • Fey;

    I performed a scan (Eutelsat 36° E) with EBSpro and found a continuously transmitting frequency: 11521 H SR 10832 FEC 1/3 S2/QPSK. Initially, it displayed BBC News, but after scanning it with altdvb, the SID was ITV1.

    I haven't tested if Skyscraper8 can play it back, but if you need a recording of the stream, I can provide one.

    Display Spoiler

    TBS 5927, Vu+ solo SE v2, Vu+ Zero 4K

  • Fey;

    I performed a scan (Eutelsat 36° E) with EBSpro and found a continuously transmitting frequency: 11521 H SR 10832 FEC 1/3 S2/QPSK. Initially, it displayed BBC News, but after scanning it with altdvb, the SID was ITV1.

    I haven't tested if Skyscraper8 can play it back, but if you need a recording of the stream, I can provide one.

    Congratulations, the search was not in vain. It really is a clear and smooth BBS stream, as if it were a normal reception.

    You can give Fey a sample too, if you're not sure. I captured it with Skyscraper8 release 17 with the 6909x card. :3:

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • Here is what the same encapsulated stream looks like at 15.0W, on 12596 V and at 36.0 E, on 11520.

    The latter is not as clear as yesterday, with almost the same quality in both positions.

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • Good find. My own extractor (not yet released) seems to work as well. Currently it only looks for video and audio streams. Also illustrated is how the next neumodvb version will report ACM/VCM streams. You can see the various modcodes and how often they are used.


  • Good find. My own extractor (not yet released) seems to work as well. Currently it only looks for video and audio streams. Also illustrated is how the next neumodvb version will report ACM/VCM streams. You can see the various modcodes and how often they are used.


    ...

    I'm waiting for you to release it as soon as possible.

    I hope you succeed with 12596 V, at 15.0W as well. :3:

    7 antennas,including 2 of 150cm,one T90 with 16 lnbs
    lnb:Inverto Black Ultra with scalar rings and many Ku lnbs,
    C-band LNB:ESX241,Galaxy Inovations,EuroStar,MTI 20K,NS741U C/Ku,Inverto Single C-band Flange,lnb Chaparral Servo Motor & Skew Control
    LNB Ka:R9216DF XWM,Hughes FSS 19.7-20.2 GHz,
    6 satellite receivers,2 Meters,
    7 PC cards(tbs6983,6903,6590,6522,6209,2603,6909X,6903X,6504),3 tuners usb-tbs5927,tbs5925 & SkyStar USB 2 HD,
    Satellite reception between 100.5E-50.0W,
    Loc:Romania :3:

  • Hi all, :71:

    Voile is making nice Progress. To hold you over for a bit, here is a showcase Video, so you can see what you can expect:

    External Content youtu.be
    Content embedded from external sources will not be displayed without your consent.
    Through the activation of external content, you agree that personal data may be transferred to third party platforms. We have provided more information on this in our privacy policy.

    The goal of Voile is to handle all the streams which skyscraper8 can handle as well. Of course I can not promise Voile/skyscraper8 will ever handle ALL streams. There might always be those which are encrypted, too difficult to reverse-engineer, or otherwise poorly documented.

    I've put together a Roadmap of what I want to accomplish with Voile:

    Short term Goals: (those I really want to finish before Voile's first release and are all smaller TODOs)

    • Displaying DSM-CC Data Carousel Download Progress
    • Display UNT Data in the MPEG TS Analysis tab.
    • Display DVB-SIS Daughter Site Data in the MPEG TS Analysis tab.
    • Display SCTE-35 Data in the MPEG TS Analysis Tab
    • Add a tab page for displaying DVB-RCS2 Tables

    Once these are done, I feel comfortable pushing out the first Version of Voile as an update to skyscraper8.

    Long term Goals: (those of which, in my opinion, still have time until after the program performs it's Basic functions. All of those are bigger TODOs.)

    • Playback of Audio and/or Video from within the application
    • Blindscanning and TS Acquisition with StreamReader.dll by utilizing Voile's own StreamReader Proxy (and if Vitor is okay with it, also using the Telnet Server Mode of VMA StreamReader CLI)
    • TS Acquisition using SAT>IP devices like Digital Devices' Octopus NET (skyscraper8 itself can already do this, using the "satip" commandline Option)
    • Add a tab page for DAB Ensemble analysis
    • More Database backends. (I've always wanted to play around with Oracle's and MS SQL's free offer)

    Fey;

    I performed a scan (Eutelsat 36° E) with EBSpro and found a continuously transmitting frequency: 11521 H SR 10832 FEC 1/3 S2/QPSK. Initially, it displayed BBC News, but after scanning it with altdvb, the SID was ITV1.

    I haven't tested if Skyscraper8 can play it back, but if you need a recording of the stream, I can provide one.

    Yes, a short sample recording of that stream would be cool, but no pressure. :74:

    It'll still be some time before I can visit my hut with my good dish again.

    Have a nice weekend,

    Regards,

    Fey:3:

    Fey's equipment:

    Display Spoiler

    Location: Center of North Rhine-Westphalia
    Dish at home: Unknown dish from previous tenant pointed at 19.2°E/13.0°E/28.2°E/42.0°E
    Dish at my vacational hut (only available about 15-25 days each year): 120cm Octagon with motor, possible to get from 80°E to 37,6°W.
    LNBs: Inverto Black Ultra & Bullzeye BE-01
    Main Computer hardware: ASRock J4125M / Intel Celeron J4125 / 8GB RAM / TBS 6903x (+ TBS 5927)
    Curious about: GS/GSE, Data broadcasts, Getting to know C & Ka bands

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!