Skip to content

Instantly share code, notes, and snippets.

@jaylinski
Last active November 17, 2024 18:36
Show Gist options
  • Save jaylinski/5e6a40b066c4bfcc310e79d9143cf741 to your computer and use it in GitHub Desktop.
Save jaylinski/5e6a40b066c4bfcc310e79d9143cf741 to your computer and use it in GitHub Desktop.
Kodi playlist containing free and public TV streams from DE/AT/CH.
#EXTM3U
# Use https://epggw.a1.net/img/station/darkbg/200x200/ as logo URL.
# Use https://tvthek.orf.at/livestream/_token for new DRM tokens.
# See https://github.com/iptv-org/iptv/blob/master/streams/at.m3u
# TV
#EXTINF:-1 tvg-id="908",ORF 1
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=%2BMDxZuwAlRNWnKeJeVtR%2F76KZupHlwfN8ywfz58q2AI6wHfrAonI4wl5gi3gDSsSFqdzTnLG5V5%2F5a%2F75C7bZVv%2B39Er2Janx9IGx2PFR%2F5wZ1YVOJmVAUJXkO2eb06KxVR%2BS7ApCd%2B6mM2lLjU3rUZe2J2RzLL%2FMPChIf3OHaqx8lYzjJicviqZWEltlU98pLqnIJgdRpn0jFykc3%2Fxp5j%2BZ2xWvKN5uosB5iV7zPglsIuHj0Lpa5zHw6TRCKs6|Content-Type=application/octet-stream|R{SSM}|
https://orf1.mdn.ors.at/orf/orf1/drmqxa/manifest.mpd
#EXTINF:-1 tvg-id="638",ORF 2
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=%2BMDxZuwAlRNWnKeJeVtR%2F76KZupHlwfN8ywfz58q2AI6wHfrAonI4wl5gi3gDSsSFqdzTnLG5V5%2F5a%2F75C7bZVv%2B39Er2Janx9IGx2PFR%2F5wZ1YVOJmVAUJXkO2eb06KxVR%2BS7ApCd%2B6mM2lLjU3rUZe2J2RzLL%2FMPChIf3OHaqx8lYzjJicviqZWEltlU98pLqnIJgdRpn0jFykc3%2Fxp5j%2BZ2xWvKN5uosB5iV7zPglsIuHj0Lpa5zHw6TRCKs6|Content-Type=application/octet-stream|R{SSM}|
https://orf2.mdn.ors.at/orf/orf2/drmqxa/manifest.mpd
#EXTINF:-1 tvg-id="633",ORF 2 OÖ
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=%2BMDxZuwAlRNWnKeJeVtR%2F76KZupHlwfN8ywfz58q2AI6wHfrAonI4wl5gi3gDSsSFqdzTnLG5V5%2F5a%2F75C7bZVv%2B39Er2Janx9IGx2PFR%2F5wZ1YVOJmVAUJXkO2eb06KxVR%2BS7ApCd%2B6mM2lLjU3rUZe2J2RzLL%2FMPChIf3OHaqx8lYzjJicviqZWEltlU98pLqnIJgdRpn0jFykc3%2Fxp5j%2BZ2xWvKN5uosB5iV7zPglsIuHj0Lpa5zHw6TRCKs6|Content-Type=application/octet-stream|R{SSM}|
https://orf2ooe.mdn.ors.at/orf/orf2ooe/drmqxa/manifest.mpd
#EXTINF:-1 tvg-id="628",ORF III Kultur und Information
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=%2BMDxZuwAlRNWnKeJeVtR%2F76KZupHlwfN8ywfz58q2AI6wHfrAonI4wl5gi3gDSsSFqdzTnLG5V5%2F5a%2F75C7bZVv%2B39Er2Janx9IGx2PFR%2F5wZ1YVOJmVAUJXkO2eb06KxVR%2BS7ApCd%2B6mM2lLjU3rUZe2J2RzLL%2FMPChIf3OHaqx8lYzjJicviqZWEltlU98pLqnIJgdRpn0jFykc3%2Fxp5j%2BZ2xWvKN5uosB5iV7zPglsIuHj0Lpa5zHw6TRCKs6|Content-Type=application/octet-stream|R{SSM}|
https://orf3.mdn.ors.at/orf/orf3/qxb/manifest.mpd
#EXTINF:-1 tvg-id="629",ORF Sport+
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://drm.ors.at/acquire-license/widevine?BrandGuid=13f2e056-53fe-4469-ba6d-999970dbe549&userToken=%2BMDxZuwAlRNWnKeJeVtR%2F76KZupHlwfN8ywfz58q2AI6wHfrAonI4wl5gi3gDSsSFqdzTnLG5V5%2F5a%2F75C7bZVv%2B39Er2Janx9IGx2PFR%2F5wZ1YVOJmVAUJXkO2eb06KxVR%2BS7ApCd%2B6mM2lLjU3rUZe2J2RzLL%2FMPChIf3OHaqx8lYzjJicviqZWEltlU98pLqnIJgdRpn0jFykc3%2Fxp5j%2BZ2xWvKN5uosB5iV7zPglsIuHj0Lpa5zHw6TRCKs6|Content-Type=application/octet-stream|R{SSM}|
https://orfs.mdn.ors.at/orf/orfs/drmqxa/manifest.mpd
#EXTINF:-1 tvg-id="20130",ServusTV
https://stv-live.akamaized.net/hls/live/2031011/lingeoSTVATwebPri/master_6692.m3u8
#EXTINF:-1 tvg-id="887",gotv
https://nstream17.gotv.at:1443/live/_definst_/gotvlive_576p/chunklist.m3u8
#EXTINF:-1 tvg-logo="https://www.dorftv.at/sites/default/themes/dorftv_omega/logo.png",dorftv
https://stream.openplayout.org/hls/dorftv/live_high/index.m3u8
#EXTINF:-1 tvg-id="20197",3SAT
https://zdf-hls-18.akamaized.net/hls/live/2016501/dach/veryhigh/master.m3u8
#EXTINF:-1 tvg-id="20129",ARTE
http://artelive-lh.akamaihd.net/i/artelive_de@393591/index_5_av-p.m3u8?sd=10&rebase=on
#EXTINF:-1 tvg-id="20131",Das Erste
https://daserstehdint-lh.akamaihd.net/i/daserstehd_int@629195/index_3776_av-p.m3u8?sd=10&rebase=on
#EXTINF:-1 tvg-id="646",ZDF
http://zdf1314-lh.akamaihd.net/i/de14_v1@392878/index_3056_av-b.m3u8?sd=10&dw=0&rebase=on
#EXTINF:-1 tvg-id="20199",BR
https://brlive-lh.akamaihd.net/i/bfssued_worldwide@119891/index_3776_av-p.m3u8?sd=10&rebase=on
# Radio
#EXTINF:-1 tvg-id="225894952366" radio="true",Ö1
https://orf-live.ors-shoutcast.at/oe1-q1a
#EXTINF:-1 tvg-id="225894440332" radio="true",Radio Oberösterreich
https://orf-live.ors-shoutcast.at/ooe-q1a
#EXTINF:-1 tvg-id="224890919986" radio="true",Hitradio Ö3
https://orf-live.ors-shoutcast.at/oe3-q1a
#EXTINF:-1 tvg-id="225894952285" radio="true",FM4
https://orf-live.ors-shoutcast.at/fm4-q1a
@bencooper1
Copy link

Hi! Thank for your list. Your playlist works perfectly on my Kodi. Do you know how to modify in the playlist if the license response (I meant this part: |Content-Type=application/octet-stream|R{SSM}| ) as in this case. It doesn't return directly base64 as ORF but seem binary format. I try to but |Content-Type=application/octet-stream|R{SSM}|R or |Content-Type=application/octet-stream|R{SSM}|B but doesn't work. If I |Content-Type=application/octet-stream|R{SSM}| Kodi plays encrypted mpd. Here is raw license response use inputstream.adaptive debug mode: ���˚� 4 �›?±üätl.�B∆Æs'Aæ��›?±üätl.�B∆Æs'Aæ�� �(�8�@�H……é�������0��V��'+(˚îP†‰ ØÑü�…Ï�@fe^œ�…�¿flN∫Gh∂´ÂÁYfi:ã¶√Í] £�ï��j�#щÖö∑•›°˜Ô^eeQµá˛∏ˆ=(�Í√ˇ–∏G ��Y
�≠:;
xZW∑øN�Sö-����©M?ˆ,�_tÃÒÊ
uJC��êë�L��∑∆(èFà[àw �(�2���B� �kc16����œŸq€Ä���b�SD_HD ……é�8�P�� gs-!;ï%áÍŸø¥F’fi�bM�‹�y/â ë1e‡=∞\"Ä�)�≈æv0\W8fiÜ.∂�õvb�Q†»öÂê k3Ú÷aÜã¯ÙI?qª5ø,ˇ|U�_ƒh»V›x•�xDS≈◊4��x S�G|'öÄŸ�V�‹“]�©/d*d��ß1ªW
°�†ÙH�í≥?�FOdXFiñw��_@õ<Sâ4 ÆV”Üfl|È:3 118.1.2 Built on Aug 16 2023 12:55:00 (1692215686)@�J∞��������∞����œŸq€»ΩfË���B�������T���@�����������������������������������������������������������������������ö�������¨�������æ���������������⁄����ò�ÈS}V�=�ߘ&sº∂Ih›�L(ñ\¶Ö˘O#añ¯�X�
I used Python convert to Base64 and find that it's a license response (CAIS): CAIS+wEKNAoQ3T+xn4p0bC4WQsaucydBvhIQ3T+xn4p0bC4WQsaucydBvhoAIAEoADgAQABIycnMqQYSBggBEAEwABpWEhAnKyj7YJRQoOQJr4SfAsnsGkBmRV7PG8kWwN8qTrpHaLar5edZ3jqLpsPqXcqjD5UWB2oUI/CE5IWat6XdoffvXmVlUbWH/rj2PSgH6sP/0LhHIAEaWQoQrTo7DXhaV7e/ThdTmi0UGBIQqU0/9iwOX3TM8eYNYHVKQxoQkJEdTPAQFbfGKI9GiFuIdyACKAEyAggAQhIKEGtjMTYAAAAAz9lx24AAAAhiBVNEX0hEIMnJzKkGOABQABogZ3MtITuVJYfq2b+0RtXeHGJNBtwSeS+JypExZeA9sFwigAEpAsW+djBcVzjehi62FJt2YhZRoMia5ZAKazPy1mGGi/j0ST9xuzW/LP98VRdfxGjIVt14pQh4RFPF1zQIHXgMUwtHfCeagNkOVgvc0l0QqS9kKmQEG2CnMbtXKqEUoPRIFZKzPwBgRk9kWEZplncPA19AmzxTiTQgrlbTht986TozCjExOC4xLjIgQnVpbHQgb24gQXVnIDE2IDIwMjMgMTI6NTU6MDAgKDE2OTIyMTU2ODYpQAFKsAEAAAACAAAAsAAFABDP2XHbyL1m6AAAAEIAAAAQAAAAVAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAJoAAAAQAAAArAAAABAAAAC+AAAAEAAAAAAAAAAAAAAA2gAAABCYFOlTfVYQPRmn9yZzvLZJaN0bTCiWXKaF+U8jYZb4BFgB

@twinkle2360
Copy link

Does this work on firestick downloader

@oje01
Copy link

oje01 commented Mar 8, 2024

orf 1 + orf 2 sind OK mit KODI 20,4

@worldmediaman
Copy link

Mit VPN läuft der oben angegebene Stream nicht, über die ORF ON Seite hingegen funktioniert es

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment