Package: showcues
showcuesA Super Cool HLS SCTE-35 Debugging Tool powered bythreefiveshowcues development was financed by the fine folks attunein.com2023-11-13T01:17:39.83ZSCTE-35StreamPTS:49321.142044PreRoll:9.400011SplicePoint:49330.542055Type:SpliceInsertMedia:index_2_3332800.tsLatest Version is1.0.43Debugging SCTE-35 Cues in live HLS streams can be a traumatic experience.SCTE-35 Cues can be embedded in the stream or inserted with HLS tags into the manifest.To make it a little more complicated,there are at least four different SCTE-35 HLS tags options currently in use.showcuesis designed to parse all SCTE-35 data currently used in HLS.SupportedInstallUse pip to installpython3-mpipinstallshowcues#and/orpypy3-mpipinstallshowcuesUpgradeUse pip to upgradepython3-mpipinstall--upgradeshowcues#and/orpypy3-mpipinstall--upgradeshowcuesRunshowcues takes a master m3u8 OR variant m3u8(new with v.1.0.5)as input.showcues displays where the SCTE-35 cues are based on the SCTE-35 data.showcues follows the rules we will be applying to SCTE-35 in HLS.Incorrect HLS tags are reported as invalid.Missing CUE-INs from break auto-returns are automatically added.showcueshttps://nmxlive.akamaized.net/hls/live/529965/Live_1/index.m3u8[ Help ]To display help:

showcues help[ SCTE-35 Parsing Profiles]Parsing profiles allows you to adjust how showcues parses SCTE-35.running the command:`showcues profile`will generate a default profile and write a file named sc.profile
in the current working directory.a@fu:~$catsc.profileexpand_cues=Falseparse_segments=Falseparse_manifests=Truehls_tags=#EXT-OATCLS-SCTE35,#EXT-X-CUE-OUT-CONT,#EXT-X-DATERANGE,#EXT-X-SCTE35,#EXT-X-CUE-IN,#EXT-X-CUE-OUTcommand_types=0x6,0x5descriptor_tags=0x2starts=0x22,0x30,0x32,0x34,0x36,0x44,0x46expand_cues:	   set to True to show cues fully expanded as JSONparse_segments:    set to true to enable parsing SCTE-35 from MPEGTS.parse_manifests:   set to true to parse the m3u8 file for SCTE-35 HLS Tags.hls_tags:          set which SCTE-35 HLS Tags to parse.command_types:     set which Splice Commands to parse.descriptor_tags:   set which Splice Descriptor Tags to parse.starts:            set which Segmentation Type IDs to use to start breaks.Edit the file as needed and then run showcues.[ Profile Formatting Rules ]Values do not need to be quoted.Multiple values are separated by a commas.No partial line comments. Comments must be on a separate lines.Comments can be started with a # or //Integers can be base 10 or base 16[ Output Files ]Created in the current working directoryClobbered on start of showc uesProfile rules applied to the output:sc.m3u8  - live playable rewrite of the m3u8sc.sidecar - list of ( pts, HLS SCTE-35 tag ) pairsProfile rules not applied to the output:
* sc.dump  -  all of the HLS SCTE-35 tags read.
* sc.flat  - every time an m3u8 is reloaded,
it's contents are appended to sc.flat.[ Cool Features ]showcues can resume when started in the middle of an ad break.2023-10-13T05:59:50.24Z Resuming Ad Break
      2023-10-13T05:59:50.34Z Setting Break Timer to 17.733
      2023-10-13T05:59:50.44Z Setting Break Duration to 60.067mpegts streams are listed on start ( like ffprobe )Program: 1
          Service:	
          Provider:	
          Pid:	480
          Pcr Pid:	481
          Streams:
              Pid: 481[0x1e1]	Type: 0x1b AVC Video
              Pid: 482[0x1e2]	Type: 0xf AAC Audio
              Pid: 483[0x1e3]	Type: 0x86 SCTE35 Data
              Pid: 484[0x1e4]	Type: 252 Unknown
              Pid: 485[0x1e5]	Type: 0x15 ID3 Timed Meta Data[ Example Usage ]Show this help:showcues helpGenerate a new sc.profileshowcues profileparse an m3u8showcues  https://example.com/out/v1/547e1b8d09444666ac810f6f8c78ca82/index.m3u8CUE-OUTACUE-OUTis shown with:Wall Clock TimePTSDurationThe Segment URI2023-08-29T10:30:19.39ZOUTPTS:72829.7572Media:seg81.tsDuration:119.986533CUE-INACUE-INis shown with:Wall Clock TimePTSThe Segment URIThe Diff of when the CUE-IN should be and when it actually occurs.2023-08-29T10:30:19.43ZINPTS:72947.8752Media:seg140.tsDiff:0.064734AUTO CUE-INAnAUTO CUE-INsuch as with a Break Auto Return, includes the wordAUTO2023-06-19T03:03:47AUTO#EXT-X-CUE-INDiff:5.539Media:index_375_00039.tsSCTE-35ASCTE-35indicates SCTE-35 data in the segments. ASCTE-35label is shown with:Wall Clock TimePTSThe Segment URIThe Base64 encoded SCTE-35 Cue2023-08-29T10:30:19.43ZSCTE-35PTS:72949.8772Media:seg141.tsCue:/DAsAAAAAyiYAP/wCgUAAAABf1+ZmQEBABECD0NVRUkAAAAAf4ABADUAAC2XQZU=InvalidInvalidindicates an invalid HLS CUE Tag, such as two consecutive CUE-IN tags. An Invalid label includes:Wall Clock TimePTSThe Segment URIThe invalid HLS tag.2023-08-29T10:30:19.43ZInvalidPTS:72955.8832Media:seg144.tsTag:#EXT-X-CUE-INLive ClockLive clock at the bottom of the page.Wall Clock TimePTS2023-08-23T08:58:21.07ZPTS:38247.104111SidecarA Sidecar file,sidecar.txtis generated containing a list of ( pts,cue ) pairs.a@debian:~/tunein/showcues$tail-fsidecar.txt58363.607489,/DBFAAH/7S+YAP/wFAUAAAABf+//ORY3wv4AzgQwmZkBAQAgAh5DVUVJAAAAAH/AAADN/mABCDEwMTAwMDAwNAAAAADgrVWi59305.014622,/DBFAAH/7S+YAP/wFAUAAAABf+//PiMLNP4ApMbEmZkBAQAgAh5DVUVJAAAAAH/AAACky4ABCDEwMTAwMDAwNAAAAAClR6us59595.771756,/DBFAAH/7S+YAP/wFAUAAAABf+//P7JWgv4Azey6mZkBAQAgAh5DVUVJAAAAAH/AAADN/mABCDEwMTAwMDAwNAAAAAC+xYYVSupportedM3U8 formatsmaster ( When a master.m3u8 used, showcues parses the first rendition it finds )renditionSegment typesAACAC3MPEGTSProtocolsFileHttp(s)UDPMulticastEncryptionAES-128(segments are automatically decrypted)SCTE-35All 2022-b Splice CommandsAll 2022-b Splice DescriptorsAll 2022-b UPIDSSCTE-35 HLS tags#EXT-X-CUE-OUT#EXT-CUE-OUT-CONT#EXT-X-CUE-IN#EXT-X-DATERANGE#EXT-X-OATCLS#EXT-X-SCTE35#EXT-X-SPLICEPOINT-SCTE35#EXT-X-SCTE35