Merge pull request #1234 from iptv-org/fix-magentatv.at

Fix magentatv.at
This commit is contained in:
Aleksandr Statciuk authored and GitHub committed 2022-10-29 06:50:32 +03:00
commit 6e6ace6e21
7 files changed
+137 -88

No files matched your search

@@ -0,0 +1 @@
{"duration":21600,"entries":[{"channelId":"Sky_Sport_HD_3","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667099700,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:ea635a84aed63b959797b3947de74d77bd86e055","mergedId":"480440|de","startTime":1667078100,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667106900,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:095d29735bb68396b988aec68063e629840218b3","mergedId":"480440|de","startTime":1667099700,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667121300,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:77f836440d980d4e6c374b2fa32e8093f1f730d0","mergedId":"480440|de","startTime":1667106900,"title":"Sendepause"}]},{"channelId":"MTVhits_","events":[{"audioLanguages":[{"lang":"en"}],"endTime":1667091600,"id":"crid:~~2F~~2Fgn.tv~~2F15906193~~2FSH030455870000~~2Fspecial,imi:ce9a9300199aa2d0d806cfe934e741a6e8d6df72","mergedId":"15906193|en-GB","startTime":1667084400,"title":"Party Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667106000,"id":"crid:~~2F~~2Fgn.tv~~2F15906193~~2FSH030455870000~~2Fspecial,imi:62fefe363f5dd525806b9bda00a5364dea355eb8","mergedId":"15906193|en-GB","startTime":1667091600,"title":"Party Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667109600,"id":"crid:~~2F~~2Fgn.tv~~2F15906193~~2FSH030455870000~~2Fspecial,imi:aa7ede2234e11788614057609472210d5109582d","mergedId":"15906193|en-GB","startTime":1667106000,"title":"Party Hits"}]},{"channelId":"Sky_Sport_HD_2","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667089800,"id":"crid:~~2F~~2Fgn.tv~~2F23131931~~2FEP034568041963,imi:73872cac00638e1d41974815ec675bbbd2e4649e","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667086200,"title":"ATP 250"},{"audioLanguages":[{"lang":"de"}],"endTime":1667100600,"id":"crid:~~2F~~2Fgn.tv~~2F23237579~~2FEP034419492024,imi:40f1b3f40b282cde8b5f6a93ca71800800dd8db4","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667089800,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667107800,"id":"crid:~~2F~~2Fgn.tv~~2F23112285~~2FEP034568041938,imi:18e5e0351cb9e4d52c9b85e33d757c07f71be5c4","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667100600,"title":"ATP 250"},{"audioLanguages":[{"lang":"de"}],"endTime":1667115000,"id":"crid:~~2F~~2Fgn.tv~~2F23237579~~2FEP034419492024,imi:8790bcc4b5f808cddecbc601d09aae6b9a3086d7","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667107800,"title":"ATP 500"}]},{"channelId":"Sky_Sport_HD_5","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667102400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:b3736076b2f5d01d241c70f282669ef4e4575404","mergedId":"480440|de","startTime":1667073600,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667106000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:fa502ef12f3a7b7111c693d997fb95c789fca5d6","mergedId":"480440|de","startTime":1667102400,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:3756318a30d51b1eaa2370ecec3ce799d8dd11b3","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_4","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667102400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:4d685167680dd2ab2a920dc9d04f3643b202c088","mergedId":"480440|de","startTime":1667088000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667106000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:5b841946ffe8f396749e6401c40b615cb6768f8a","mergedId":"480440|de","startTime":1667102400,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:fc3483088b2fca9c1f4eb564f826478bf35fbc67","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_7","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667102400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:5c87d025841eec79be164d80c7432c04ada1130c","mergedId":"480440|de","startTime":1667088000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667106000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:22b6e6db29ff19606aa0d2e2e5c6f603d47cd402","mergedId":"480440|de","startTime":1667102400,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:f1fa8d320f83ff8b81e38c2c70c68c70686c7824","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_6","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667091600,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:4abfb43046c724d4a5cd3b122d8dcd90cd14e836","mergedId":"4804Line truncated
@@ -0,0 +1 @@
{"duration":21600,"entries":[{"channelId":"Sky_Sport_HD_3","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667121300,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:77f836440d980d4e6c374b2fa32e8093f1f730d0","mergedId":"480440|de","startTime":1667106900,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667135700,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:2bf59b0aa5f4c6b6f1db1a2d11574697d645d4d7","mergedId":"480440|de","startTime":1667121300,"title":"Sendepause"}]},{"channelId":"MTVhits_","events":[{"audioLanguages":[{"lang":"en"}],"endTime":1667113800,"id":"crid:~~2F~~2Fgn.tv~~2F8013479~~2FSH012862900000~~2Fspecial,imi:acc9a55e64a077a1e9e9877a039c43a4ec26ddd4","mergedId":"8013479|en-GB","startTime":1667109600,"title":"MTV Top 20"},{"audioLanguages":[{"lang":"en"}],"endTime":1667124000,"id":"crid:~~2F~~2Fgn.tv~~2F270464~~2FSH012888540000~~2F143080852,imi:7f54d62845e4956b5b65f2314a91550ac26a0463","isPlaceHolder":true,"mergedId":"270464|en-GB","seriesPremiereAirings":true,"startTime":1667113800,"title":"Non-Stop Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667127600,"id":"crid:~~2F~~2Fgn.tv~~2F23059359~~2FSH044765620000~~2Fspecial,imi:ffd3a975177ab0d4e81bec505632c7d8a201486a","mergedId":"23059359|en-GB","startTime":1667124000,"title":"J Balvin x Jason Derulo x Bruno Mars"},{"audioLanguages":[{"lang":"en"}],"endTime":1667138400,"id":"crid:~~2F~~2Fgn.tv~~2F17861414~~2FSH034255730000~~2F143080854,imi:f55ab00d851df18f6f40543212147951dded85dc","isPlaceHolder":true,"mergedId":"17861414|en-GB","seriesPremiereAirings":true,"startTime":1667127600,"title":"The Weekend Hitlist"}]},{"channelId":"Sky_Sport_HD_2","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667115000,"id":"crid:~~2F~~2Fgn.tv~~2F23237579~~2FEP034419492024,imi:8790bcc4b5f808cddecbc601d09aae6b9a3086d7","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667107800,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667115900,"id":"crid:~~2F~~2Fgn.tv~~2F22561954~~2FEP020729550566,imi:184e3e53880cb5e1600ad2b49bfd2563a4e5fbf1","mergedId":"9786177|de","minimumAge":0,"replayTVMinAge":0,"seriesPremiereAirings":true,"startTime":1667115000,"title":"Tennis"},{"audioLanguages":[{"lang":"de"}],"endTime":1667119500,"id":"crid:~~2F~~2Fgn.tv~~2F22727309~~2FEP020729550580,imi:60c2c273e460fe1ad6cbfa48644366e8d8cad2f4","mergedId":"9786177|de","minimumAge":0,"replayTVMinAge":0,"seriesPremiereAirings":true,"startTime":1667115900,"title":"Tennis"},{"audioLanguages":[{"lang":"de"}],"endTime":1667126700,"id":"crid:~~2F~~2Fgn.tv~~2F23237579~~2FEP034419492024,imi:3606d62580b7d77abd90de6891a1a74ba1c43652","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667119500,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F23237597~~2FEP034419492025,imi:4d497c6a53e4cf9ed3bd3004f95095fa9b6de4f2","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667126700,"title":"ATP 500"}]},{"channelId":"Sky_Sport_HD_5","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:3756318a30d51b1eaa2370ecec3ce799d8dd11b3","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_4","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:fc3483088b2fca9c1f4eb564f826478bf35fbc67","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:24a736478091b1cbc7e6e0ef2ba4d5235d2254c9","mergedId":"480440|de","startTime":1667120400,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_7","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:f1fa8d320f83ff8b81e38c2c70c68c70686c7824","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:98292ba49cb49da417fbb5e796c9fdd150dcf2e8","mergedId":"480440|de","startTime":1667120400,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_6","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:5c78d3941b7cb38d73c3579cb466cf2e6fa9ecde","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:096876e9c4354baeecd1289545a2b493722a2dfb","mergedId":"480440|de","startTime":1667120400,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_9","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667120400,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:f4a6a1a2f23a3346afLine truncated
@@ -0,0 +1 @@
{"duration":21600,"entries":[{"channelId":"Sky_Sport_HD_3","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667135700,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:2bf59b0aa5f4c6b6f1db1a2d11574697d645d4d7","mergedId":"480440|de","startTime":1667121300,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667153700,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:a47599d2dea369183e1000653c350c3229958928","mergedId":"480440|de","startTime":1667135700,"title":"Sendepause"}]},{"channelId":"MTVhits_","events":[{"audioLanguages":[{"lang":"en"}],"endTime":1667138400,"id":"crid:~~2F~~2Fgn.tv~~2F17861414~~2FSH034255730000~~2F143080854,imi:f55ab00d851df18f6f40543212147951dded85dc","isPlaceHolder":true,"mergedId":"17861414|en-GB","seriesPremiereAirings":true,"startTime":1667127600,"title":"The Weekend Hitlist"},{"audioLanguages":[{"lang":"en"}],"endTime":1667142000,"id":"crid:~~2F~~2Fgn.tv~~2F17489386~~2FSH033391490000~~2Fspecial,imi:de823af67b78417859b8960ddaf3c88aa87d1f97","mergedId":"17489386|en-GB","startTime":1667138400,"title":"Today's Top Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667152800,"id":"crid:~~2F~~2Fgn.tv~~2F23059394~~2FSH044765760000~~2Fspecial,imi:d1ddf05833730f4f63c44f788b5ba89a7a48f8cf","mergedId":"23059394|en-GB","startTime":1667142000,"title":"50 Stars Of The 10s!"}]},{"channelId":"Sky_Sport_HD_2","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F23237597~~2FEP034419492025,imi:4d497c6a53e4cf9ed3bd3004f95095fa9b6de4f2","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667126700,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667142000,"id":"crid:~~2F~~2Fgn.tv~~2F23237611~~2FEP034419492026,imi:123795372eb9e08970983cc7de5ed64e23345bbb","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667134800,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667145600,"id":"crid:~~2F~~2Fgn.tv~~2F22727309~~2FEP020729550580,imi:4734145cab2b502083e88cdcd14424736b22c21a","mergedId":"9786177|de","minimumAge":0,"replayTVMinAge":0,"seriesPremiereAirings":true,"startTime":1667142000,"title":"Tennis"},{"audioLanguages":[{"lang":"de"}],"endTime":1667152800,"id":"crid:~~2F~~2Fgn.tv~~2F23237597~~2FEP034419492025,imi:ecc5cf0584d1637860a4cc0b6bc5b103d91a69b6","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667145600,"title":"ATP 500"}]},{"channelId":"Sky_Sport_HD_5","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:3756318a30d51b1eaa2370ecec3ce799d8dd11b3","mergedId":"480440|de","startTime":1667106000,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667141100,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:a0b92c6d30d072405eae1249ea1e14c73b7fc18b","mergedId":"480440|de","startTime":1667134800,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667142000,"id":"crid:~~2F~~2Fgn.tv~~2F18858188~~2FEP029273550047,imi:3025bafb16f734cc3c278157022eb8a53d081e89","seriesPremiereAirings":true,"startTime":1667141100,"title":"Es folgt"},{"audioLanguages":[{"lang":"de"}],"endTime":1667149200,"id":"crid:~~2F~~2Fgn.tv~~2F23177419~~2FEP027827641409,imi:eeb6fd0742ab82bbeb1711d33bf4e610633c2249","mergedId":"9500736|de","seriesPremiereAirings":true,"startTime":1667142000,"title":"LIQUI MOLY HBL"},{"audioLanguages":[{"lang":"de"}],"endTime":1667178000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:53c528d0cbf17166313e5bf0b20683cb8b180cfa","mergedId":"480440|de","startTime":1667149200,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_4","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667134800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:24a736478091b1cbc7e6e0ef2ba4d5235d2254c9","mergedId":"480440|de","startTime":1667120400,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667141100,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:280ea667fada541c37b2252b0d72e1d7281278f1","mergedId":"480440|de","startTime":1667134800,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667149200,"id":"crid:~~2F~~2Fgn.tv~~2F23239309~~2FEP031110120096,imi:1d4529054421fd4e8b9f34cc01fb8ab57f181181","mergedId":"16313449|de","seriesPremiereAirings":true,"startTime":1667141100,"title":"LIQUI MOLY HBL: Sonntags-Konferenz"},{"audioLanguages":[{"lang":"en"}],"endTime":1667151000,"id":"crid:~~2F~~2Fgn.tv~~2F18488854~~2FEP029273550037,imi:afc85bd7c567c6842fceadcd4c4d752fdeffc796","seriesPremiereAirings":true,"startTime":1667149200,"title":"Es folgt"},{"audioLanguages":[{"lang":"en"}],"endTime":1667161800,"id":"crid:~~2F~~2Fgn.tv~~2F22920412~~2FEP028078990917,imi:ff3a5da26bda2fe76007ff215a5312704a90a505","mergedId":"845788|de","seriesPremiereAirings":true,"startTime":1667151000,"title":"Golf"}]},{"channelId":"Sky_Sport_HD_7","events":[{"audioLanguages":[{"lang":"de"Line truncated
@@ -0,0 +1 @@
{"duration":21600,"entries":[{"channelId":"Sky_Sport_HD_3","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667153700,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:a47599d2dea369183e1000653c350c3229958928","mergedId":"480440|de","startTime":1667135700,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667168100,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:05406ad948bb012464d9ed53dd9d2355ce0e65d5","mergedId":"480440|de","startTime":1667153700,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667188800,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:fb99fd29a3e3aa5480baf93fecf134f0159e3684","mergedId":"480440|de","startTime":1667168100,"title":"Sendepause"}]},{"channelId":"MTVhits_","events":[{"audioLanguages":[{"lang":"en"}],"endTime":1667156400,"id":"crid:~~2F~~2Fgn.tv~~2F17489386~~2FSH033391490000~~2Fspecial,imi:35e868998e0414edd1ffcf2c0103b827b525da69","mergedId":"17489386|en-GB","startTime":1667152800,"title":"Today's Top Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667170800,"id":"crid:~~2F~~2Fgn.tv~~2F19211650~~2FSH037122720000~~2Fspecial,imi:b6bb58c73965537b3fcde256d429e06d33bb398e","mergedId":"19211650|en-GB","startTime":1667156400,"title":"Worldwide Hits"},{"audioLanguages":[{"lang":"en"}],"endTime":1667185200,"id":"crid:~~2F~~2Fgn.tv~~2F270464~~2FSH012888540000~~2F143080859,imi:b3b2e5e7c3e364a43c3d48ae4ee8cbd57da9a72d","isPlaceHolder":true,"mergedId":"270464|en-GB","seriesPremiereAirings":true,"startTime":1667170800,"title":"Non-Stop Hits"}]},{"channelId":"Sky_Sport_HD_2","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667160000,"id":"crid:~~2F~~2Fgn.tv~~2F23237619~~2FEP034419492027,imi:b593fede84c40fbdec375c4640c4a0b3f53f1427","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667152800,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667167200,"id":"crid:~~2F~~2Fgn.tv~~2F23237611~~2FEP034419492026,imi:2c8b67a95bd96ae649165b7a2959fcccdcd6a82b","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667160000,"title":"ATP 500"},{"audioLanguages":[{"lang":"de"}],"endTime":1667174400,"id":"crid:~~2F~~2Fgn.tv~~2F23237597~~2FEP034419492025,imi:f76222ea75b68ae8375e5e756b08db2d2892a05f","mergedId":"554508|de","seriesPremiereAirings":true,"startTime":1667167200,"title":"ATP 500"}]},{"channelId":"Sky_Sport_HD_5","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667178000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:53c528d0cbf17166313e5bf0b20683cb8b180cfa","mergedId":"480440|de","startTime":1667149200,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_4","events":[{"audioLanguages":[{"lang":"en"}],"endTime":1667161800,"id":"crid:~~2F~~2Fgn.tv~~2F22920412~~2FEP028078990917,imi:ff3a5da26bda2fe76007ff215a5312704a90a505","mergedId":"845788|de","seriesPremiereAirings":true,"startTime":1667151000,"title":"Golf"},{"audioLanguages":[{"lang":"de"}],"endTime":1667176200,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:b7bbf5a5ae19866671d9425061066ee01f7e60c9","mergedId":"480440|de","startTime":1667161800,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_7","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667163600,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:b378e4869c764cd879bdd53ab724183cc3a91473","mergedId":"480440|de","startTime":1667149200,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667178000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:ea41f70a8dc0f0e91a4377345086f71fe5a275e9","mergedId":"480440|de","startTime":1667163600,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_6","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667163600,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:6d207b0b9dfb8215220bc90e90bcf8479caf92aa","mergedId":"480440|de","startTime":1667149200,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667178000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:cf956bb66184846de5d80e03b9f8436082d91f9d","mergedId":"480440|de","startTime":1667163600,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_9","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667163600,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:ca9674ef06e0252184bd068f6b6117ef095de3de","mergedId":"480440|de","startTime":1667149200,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endTime":1667178000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:0a58c8cfa4ec9da5f4c91b0a598592a8de8f279f","mergedId":"480440|de","startTime":1667163600,"title":"Sendepause"}]},{"channelId":"Sky_Sport_HD_8","events":[{"audioLanguages":[{"lang":"de"}],"endTime":1667160000,"id":"crid:~~2F~~2Fgn.tv~~2F480440~~2FSH019657290000~~2Foffair,imi:be2824094e13376ef893ca124173038a926ee7cb","mergedId":"480440|de","startTime":1667145600,"title":"Sendepause"},{"audioLanguages":[{"lang":"de"}],"endLine truncated
+1
View File
@@ -0,0 +1 @@
{"imageVersion":"1cjcfg","eventId":"crid:~~2F~~2Fgn.tv~~2F2236391~~2FEP019388320252,imi:af4af994f29354e64878101c0612b17999d0c1a3","channelId":"13TH_STREET_HD","title":"Law & Order: Special Victims Unit","startTime":1667087700,"endTime":1667094000,"mergedId":"184536|de","minimumAge":"16","replayTvMinAge":16,"seriesId":"crid:~~2F~~2Fgn.tv~~2F7896816~~2FSH019388320000","parentSeriesId":"crid:~~2F~~2Fbds.tv~~2F14625541","episodeName":"Mutterinstinkt","seasonNumber":6,"episodeNumber":1,"shortDescription":"Patty Branson wird von einem Jungen in einem Park angegriffen und von diesem verfolgt. Der Junge wurde von Michelle Osborne engagiert, die vorgibt, die leibliche Mutter des Mädchens zu sein. Doch ist dies tatsächlich die Wahrheit?","longDescription":"Patty Branson wird von einem Jungen in einem Park angegriffen und von diesem verfolgt. Der Junge wurde von Michelle Osborne engagiert, die vorgibt, die leibliche Mutter des Mädchens zu sein. Doch ist dies tatsächlich die Wahrheit?","actors":["Christopher Meloni","Mariska Hargitay","Richard Belzer","Dann Florek","Ice-T","BD Wong","Diane Neal","Tamara Tunie","Abigail Breslin","Lea Thompson"],"directors":["Arthur W. Forney"],"producers":["Dick Wolf","Ted Kotcheff","Neal Baer"],"audioLanguages":[{"lang":"de"}],"productionDate":"2004","countryOfOrigin":"US","genres":["Drama-Serie","Krimi Drama","Action","Thriller"],"seriesPremiereAirings":true}
+71 -20
View File
@@ -1,71 +1,122 @@
const axios = require('axios')
const dayjs = require('dayjs')
const API_ENDPOINT = `https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules`
const API_STATIC_ENDPOINT = 'https://static.spark.magentatv.at/deu/web/epg-service-lite/at'
const API_PROD_ENDPOINT = 'https://prod.spark.magentatv.at/deu/web/linear-service/v2'
module.exports = {
site: 'magentatv.at',
ignore: true, // INFO: Request failed with status code 404 (Not Found)
url: function ({ date }) {
return `${API_ENDPOINT}/${date.format('YYYYMMDD')}/1`
request: {
cache: {
ttl: 60 * 60 * 1000 // 1 hour
}
},
url: function ({ date, channel }) {
return `${API_STATIC_ENDPOINT}/${channel.lang}/events/segments/${date.format('YYYYMMDDHHmmss')}`
},
async parser({ content, channel, date }) {
let programs = []
let items = parseItems(content, channel)
if (!items.length) return programs
const d = date.format('YYYYMMDD')
const promises = [
axios.get(`${API_ENDPOINT}/${d}/2`),
axios.get(`${API_ENDPOINT}/${d}/3`),
axios.get(`${API_ENDPOINT}/${d}/4`)
axios.get(
`${API_STATIC_ENDPOINT}/${channel.lang}/events/segments/${date
.add(6, 'h')
.format('YYYYMMDDHHmmss')}`,
{
responseType: 'arraybuffer'
}
),
axios.get(
`${API_STATIC_ENDPOINT}/${channel.lang}/events/segments/${date
.add(12, 'h')
.format('YYYYMMDDHHmmss')}`,
{
responseType: 'arraybuffer'
}
),
axios.get(
`${API_STATIC_ENDPOINT}/${channel.lang}/events/segments/${date
.add(18, 'h')
.format('YYYYMMDDHHmmss')}`,
{
responseType: 'arraybuffer'
}
)
]
await Promise.allSettled(promises)
.then(results => {
results.forEach(r => {
if (r.status === 'fulfilled') {
items = items.concat(parseItems(r.value.data, channel))
const parsed = parseItems(r.value.data, channel)
items = items.concat(parsed)
}
})
})
.catch(console.error)
items.forEach(item => {
for (let item of items) {
const detail = await loadProgramDetails(item, channel)
programs.push({
title: item.t,
title: item.title,
sub_title: detail.episodeName,
description: detail.longDescription,
category: detail.genres,
actors: detail.actors,
directors: detail.directors,
producers: detail.producers,
season: detail.seasonNumber,
episode: detail.episodeNumber,
start: parseStart(item),
stop: parseStop(item)
})
})
}
return programs
},
async channels() {
const data = await axios
.get(`https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/channels`)
.get(`${API_PROD_ENDPOINT}/channels?cityId=65535&language=de&productClass=Orion-DASH`)
.then(r => r.data)
.catch(console.log)
return data.channels.map(item => {
return {
lang: 'de',
site_id: item.id.replace('lgi-at-prodobo-master:101-', ''),
name: item.title
site_id: item.id,
name: item.name
}
})
}
}
async function loadProgramDetails(item, channel) {
if (!item.id) return {}
const url = `${API_PROD_ENDPOINT}/replayEvent/${item.id}?returnLinearContent=true&language=${channel.lang}`
const data = await axios
.get(url)
.then(r => r.data)
.catch(console.log)
return data || {}
}
function parseStart(item) {
return dayjs(item.s)
return dayjs.unix(item.startTime)
}
function parseStop(item) {
return dayjs(item.e)
return dayjs.unix(item.endTime)
}
function parseItems(content, channel) {
const data = typeof content === 'string' ? JSON.parse(content) : content
if (!content) return []
const data = JSON.parse(content)
if (!data || !Array.isArray(data.entries)) return []
const entity = data.entries.find(e => e.o === `lgi-at-prodobo-master:${channel.site_id}`)
const channelData = data.entries.find(e => e.channelId === channel.site_id)
if (!channelData) return []
return entity ? entity.l : []
return Array.isArray(channelData.events) ? channelData.events : []
}
+61 -68
View File
@@ -2,6 +2,8 @@
// npx epg-grabber --config=sites/magentatv.at/magentatv.at.config.js --channels=sites/magentatv.at/magentatv.at_at.channels.xml --output=guide.xml --days=2
const { parser, url } = require('./magentatv.at.config.js')
const fs = require('fs')
const path = require('path')
const axios = require('axios')
const dayjs = require('dayjs')
const utc = require('dayjs/plugin/utc')
@@ -9,95 +11,86 @@ const customParseFormat = require('dayjs/plugin/customParseFormat')
dayjs.extend(customParseFormat)
dayjs.extend(utc)
const API_STATIC_ENDPOINT = 'https://static.spark.magentatv.at/deu/web/epg-service-lite/at'
const API_PROD_ENDPOINT = 'https://prod.spark.magentatv.at/deu/web/linear-service/v2'
jest.mock('axios')
const date = dayjs.utc('2022-03-09', 'YYYY-MM-DD').startOf('d')
const date = dayjs.utc('2022-10-30', 'YYYY-MM-DD').startOf('d')
const channel = {
site_id: '13TH_Street_HD',
xmltv_id: '13thStreet.de'
site_id: '13TH_STREET_HD',
xmltv_id: '13thStreet.de',
lang: 'de'
}
it('can generate valid url', () => {
expect(url({ date })).toBe(
'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/1'
)
expect(url({ date, channel })).toBe(`${API_STATIC_ENDPOINT}/de/events/segments/20221030000000`)
})
it('can parse response', done => {
const content = `{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fbds.tv~~2F1870513,imi:c83a0bf1b04d6610d0517e63647772c1c8725693","t":"Law & Order: Special Victims Unit","s":1646778600000,"e":1646781300000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
it('can parse response', async () => {
const content = fs.readFileSync(path.resolve(__dirname, '__data__/content_0000.json'))
axios.get.mockImplementation(url => {
if (url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/2') {
if (url === `${API_STATIC_ENDPOINT}/de/events/segments/20221030060000`) {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fmedia-press.tv~~2F217048123,imi:ee14cfe306cb50502b03c96d58851c32345a9391","t":"FBI: Special Crime Unit","s":1646781300000,"e":1646784000000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
data: fs.readFileSync(path.resolve(__dirname, '__data__/content_0600.json'))
})
} else if (url === `${API_STATIC_ENDPOINT}/de/events/segments/20221030120000`) {
return Promise.resolve({
data: fs.readFileSync(path.resolve(__dirname, '__data__/content_1200.json'))
})
} else if (url === `${API_STATIC_ENDPOINT}/de/events/segments/20221030180000`) {
return Promise.resolve({
data: fs.readFileSync(path.resolve(__dirname, '__data__/content_1800.json'))
})
} else if (
url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/3'
url ===
`${API_PROD_ENDPOINT}/replayEvent/crid:~~2F~~2Fgn.tv~~2F2236391~~2FEP019388320252,imi:af4af994f29354e64878101c0612b17999d0c1a3?returnLinearContent=true&language=de`
) {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fmedia-press.tv~~2F224431085,imi:805c5a9b6610edb65cdff319a9b080ab5f65a6c8","t":"FBI: Special Crime Unit","s":1646784000000,"e":1646786700000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
})
} else if (
url === 'https://prod.oesp.magentatv.at/oesp/v4/AT/deu/web/programschedules/20220309/4'
) {
return Promise.resolve({
data: JSON.parse(
`{"entries":[{"o":"lgi-at-prodobo-master:13TH_Street_HD","l":[{"i":"crid:~~2F~~2Fbds.tv~~2F918961,imi:f27353bf910e8849d60e0381fdb2d1f7518ef7a2","t":"Law & Order","s":1646786700000,"e":1646789400000,"c":"lgi-at-prodobo-master:genre-9","a":false,"r":false,"rm":false,"ad":[],"sl":[]}]}]}`
)
data: JSON.parse(fs.readFileSync(path.resolve(__dirname, '__data__/program.json')))
})
} else {
return Promise.resolve({ data: '' })
}
})
parser({ content, channel, date })
.then(result => {
result = result.map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
let results = await parser({ content, channel, date })
results = results.map(p => {
p.start = p.start.toJSON()
p.stop = p.stop.toJSON()
return p
})
expect(result).toMatchObject([
{
start: '2022-03-08T22:30:00.000Z',
stop: '2022-03-08T23:15:00.000Z',
title: 'Law & Order: Special Victims Unit'
},
{
start: '2022-03-08T23:15:00.000Z',
stop: '2022-03-09T00:00:00.000Z',
title: 'FBI: Special Crime Unit'
},
{
start: '2022-03-09T00:00:00.000Z',
stop: '2022-03-09T00:45:00.000Z',
title: 'FBI: Special Crime Unit'
},
{
start: '2022-03-09T00:45:00.000Z',
stop: '2022-03-09T01:30:00.000Z',
title: 'Law & Order'
}
])
done()
})
.catch(done)
})
it('can handle empty guide', done => {
parser({
content: `[{"type":"PATH_PARAM","code":"period","reason":"INVALID"}]`,
channel,
date
expect(results[0]).toMatchObject({
start: '2022-10-29T23:55:00.000Z',
stop: '2022-10-30T01:40:00.000Z',
title: 'Law & Order: Special Victims Unit',
sub_title: 'Mutterinstinkt',
description:
'Patty Branson wird von einem Jungen in einem Park angegriffen und von diesem verfolgt. Der Junge wurde von Michelle Osborne engagiert, die vorgibt, die leibliche Mutter des Mädchens zu sein. Doch ist dies tatsächlich die Wahrheit?',
category: ['Drama-Serie', 'Krimi Drama', 'Action', 'Thriller'],
actors: [
'Christopher Meloni',
'Mariska Hargitay',
'Richard Belzer',
'Dann Florek',
'Ice-T',
'BD Wong',
'Diane Neal',
'Tamara Tunie',
'Abigail Breslin',
'Lea Thompson'
],
directors: ['Arthur W. Forney'],
producers: ['Dick Wolf', 'Ted Kotcheff', 'Neal Baer'],
season: 6,
episode: 1
})
.then(result => {
expect(result).toMatchObject([])
done()
})
.catch(done)
})
it('can handle empty guide', async () => {
let results = await parser({ content: ``, channel, date })
expect(results).toMatchObject([])
})