extra3

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ich möchte einen Stream von der NDR-Seite in HD anzeigen.

      Der Seiten Quellcode ist ..

      Quellcode

      1. <item>
      2. <title>Extra 3 vom 17.05.2017</title>
      3. <description>Bitte geh' in Rente Donald Trump; extra 3 Extra: Cyberattacken; Johannes Schlüter: Heißer-Scheiß-Beauftragter der Grünen; Angela Merkels Porträtmalerin - Christian Ehring zeigt den Irrsinn der Woche.
      4. </description>
      5. <pubDate>Wed, 17 May 2017 22:50:00 +0200</pubDate>
      6. <enclosure url="http://media.ndr.de/download/podcasts/extradrei196/TV-20170517-2232-4800.h264.mp4" type="video/mp4" />
      7. <guid isPermaLink="false">TV-20170517-2232-4800-V</guid>
      8. <link>http://media.ndr.de/download/podcasts/extradrei196/TV-20170517-2232-4800.h264.mp4</link>
      9. <ard:programInformation>
      10. <ard:stationId>990010</ard:stationId>
      11. <ard:series>
      12. <ard:crid>crid://ndr.de/9</ard:crid>
      13. <ard:title>extra 3</ard:title>
      14. <ard:url>//www.ndr.de/extra3</ard:url>
      15. </ard:series>
      16. <ard:broadcast>
      17. <ard:crid>crid://ndr.de/61ebb606-7469-446c-acd4-2f18af7bda6e</ard:crid>
      18. <ard:title>Extra 3 vom 17.05.2017</ard:title>
      19. <ard:subtitle/>
      20. <ard:start>2017-05-17T22:50:00</ard:start>
      21. <ard:end />
      22. </ard:broadcast>
      23. </ard:programInformation>
      24. <ard:visibility>
      25. <ard:visibleFrom>2017-05-18T11:56:35</ard:visibleFrom>
      26. <ard:visibleUntil></ard:visibleUntil>
      27. </ard:visibility>
      28. </item>
      Alles anzeigen



      Der Videolink in SD ist dann z.B.

      Quellcode

      1. http://media.ndr.de/download/podcasts/extradrei196/TV-20170517-2232-4800.h264.mp4
      der lässt sich abspielen wenn ich aber per replace

      Quellcode

      1. -- UTF8 in Umlaute wandeln
      2. function conv_url(_string)
      3. if _string == nil then return _string end
      4. _string = string.gsub(_string,"h264","hd");
      5. return _string
      6. end
      7. ...
      8. local link = item:match("<link>(.-)</link>") -- URL in SD
      9. url = conv_url(link)


      die Streamadresse in

      Quellcode

      1. http://media.ndr.de/download/podcasts/extradrei196/TV-20170517-2232-4800.hd.mp4

      umwandle geht es nicht, habe keine Ahnung warum.

      Wer sieht den Fehler...


      Quellcode

      1. --[[
      2. extra 3 - App
      3. Vers.: 0.1 alpha
      4. Copyright (C) 2017, bazi98
      5. with many hints and code snippets from SatBaby, big thanks from my to him
      6. App Description:
      7. There the player links are respectively read about the recent weather reports of the German Television "wetter.com"
      8. License: GPL
      9. This program is free software; you can redistribute it and/or
      10. modify it under the terms of the GNU General Public
      11. License as published by the Free Software Foundation; either
      12. version 2 of the License, or (at your option) any later version.
      13. This program is distributed in the hope that it will be useful,
      14. but WITHOUT ANY WARRANTY; without even the implied warranty of
      15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      16. General Public License for more details.
      17. You should have received a copy of the GNU General Public
      18. License along with this program; if not, write to the
      19. Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
      20. Boston, MA 02110-1301, USA.
      21. Copyright (C) for the linked videos and for the extra 3-Logo by the NDR or the respective owners!
      22. http://www.ndr.de/fernsehen/sendungen/extra_3/video-podcast/extradrei196_version-hd.xml
      23. ]]
      24. local json = require "json"
      25. --Objekte
      26. function script_path()
      27. local str = debug.getinfo(2, "S").source:sub(2)
      28. return str:match("(.*/)")
      29. end
      30. function init()
      31. n = neutrino();
      32. p = {}
      33. func = {}
      34. pmid = 0
      35. stream = 1
      36. tmpPath = "/tmp"
      37. end
      38. function add_stream(t,u)
      39. p[#p+1]={title=t,url=u,access=stream}
      40. end
      41. function getdata(Url,outputfile)
      42. if Url == nil then return nil end
      43. if Curl == nil then
      44. Curl = curl.new()
      45. end
      46. local ret, data = Curl:download{url=Url,A="Mozilla/5.0;",followRedir=true,o=outputfile }
      47. if ret == CURL.OK then
      48. return data
      49. else
      50. return nil
      51. end
      52. end
      53. -- UTF8 in Umlaute wandeln
      54. function conv_url(_string)
      55. if _string == nil then return _string end
      56. _string = string.gsub(_string,"h264","hd");
      57. return _string
      58. end
      59. function fill_playlist() --- > begin playlist
      60. -- extra 3
      61. local data = getdata('http://www.ndr.de/fernsehen/sendungen/extra_3/video-podcast/extradrei196_version-hd.xml',nil)
      62. if data then
      63. for item in data:gmatch('<item>(.-)</item>') do
      64. local title = item:match("<title>(.-)</title>") -- Sendungstitel
      65. local link = item:match("<link>(.-)</link>") -- URL
      66. url = conv_url(link)
      67. if url and title then
      68. add_stream( title, url, url)
      69. end
      70. end
      71. end
      72. --end extra 3
      73. end --- > end of playlist
      74. function set_pmid(id)
      75. pmid=tonumber(id);
      76. return MENU_RETURN["EXIT_ALL"];
      77. end
      78. function select_playitem()
      79. local m=menu.new{name="extra 3" }
      80. for i,r in ipairs(p) do
      81. m:addItem{type="forwarder", action="set_pmid", id=i, icon="streaming", name=r.title, hint=r.title, hint_icon="hint_reload"}
      82. end
      83. repeat
      84. pmid=0
      85. m:exec()
      86. if pmid==0 then
      87. return
      88. end
      89. local vPlay = nil
      90. local url=func[p[pmid].access](p[pmid].url)
      91. if url~=nil then
      92. if vPlay == nil then
      93. vPlay = video.new()
      94. end
      95. vPlay:PlayFile("extra3",url,p[pmid].title,url );
      96. end
      97. until false
      98. end
      99. --Main
      100. init()
      101. func={
      102. [stream]=function (x) return x end,
      103. }
      104. fill_playlist()
      105. select_playitem()
      Alles anzeigen
      Auf den PC lässt sich die umgewandelte Streadresse nutzen und zeigt auch das HD-Video an.
      ~ abyssus abyssum invocat ~
    • @SatBaby
      die von dir verwendete Seite hat den Nachteil das dort auch Beitragsschnipsel der Sendung aufgeführt werden, die von mir verwendete Seite listet nur ganze Beiträge auf und das möchte ich.

      Die von mir gewünschte Seite hat halt leider den Nachteil dass dort nur die SD-Streamnamen aufgeführt sind und ich diese Streamadressen manuell nachbearbeiten muss in dem ich die Zeichenfolge h264 in hd umwandle, aber leider habe ich da einen Fehler drin.
      ~ abyssus abyssum invocat ~
    • Quellcode

      1. function conv_url(_string)
      2. if _string == nil then return _string end
      3. local year,day = _string:match('(%d%d%d%d)(%d%d%d%d)')
      4. local str = _string:match('(/%w+%-%d%d%d%d%d%d%d%d%-%d%d%d%d%-%d%d%d%d)%.')
      5. local newurl = 'http://media.ndr.de/progressive/' .. year .. '/' .. day .. str .. '.hq.mp4'
      6. return newurl
      7. end
      Hier ein vorschlag:

      Deine code funktioniert, nur wie bist du zu den 'hd' gekommen ?
      media.ndr.de/download/podcasts…170517-2232-4800.h264.mp4

      media.ndr.de/download/podcasts…20170517-2232-4800.hd.mp4
      Now That We're Dead
    • Wie ich zu der HD-Adresse gekommen bin ? Durch ausprobieren, aber ich hatte einen Fehler bei Kopieren drin, die Adresse lautet ...
      ...



      und dein Codevorschlag hat mich auf die Lösung gebracht ..

      Quellcode

      1. function conv_url(_string)
      2. if _string == nil then return _string end
      3. local year,day = _string:match('(%d%d%d%d)(%d%d%d%d)')
      4. local str = _string:match('(/%w+%-%d%d%d%d%d%d%d%d%-%d%d%d%d%-%d%d%d%d)%.')
      5. -- local newurl = 'http://media.ndr.de/progressive/' .. year .. '/' .. day .. str .. '.hq.mp4'
      6. local newurl = 'https://mediandr-a.akamaihd.net/progressive/' .. year .. '/' .. day .. str .. '.hd.mp4' -- https://mediandr-a.akamaihd.net/progressive/2017/0517/TV-20170517-2232-4800.hd.mp4
      7. return newurl
      8. end
      ~ abyssus abyssum invocat ~

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von bazi98 () aus folgendem Grund: typo

    • habe noch eine kleine Änderung wg. dem Zeileumbruch eingebaut und so sieht es nun bei mir aus ..

      Quellcode

      1. --[[
      2. extra 3 - App
      3. Vers.: 0.2 alpha
      4. Copyright (C) 2017, bazi98
      5. with many hints and code snippets from SatBaby, big thanks from my to him
      6. App Description:
      7. There the player links are respectively read about the recent weather reports of the German Television "wetter.com"
      8. License: GPL
      9. This program is free software; you can redistribute it and/or
      10. modify it under the terms of the GNU General Public
      11. License as published by the Free Software Foundation; either
      12. version 2 of the License, or (at your option) any later version.
      13. This program is distributed in the hope that it will be useful,
      14. but WITHOUT ANY WARRANTY; without even the implied warranty of
      15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
      16. General Public License for more details.
      17. You should have received a copy of the GNU General Public
      18. License along with this program; if not, write to the
      19. Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
      20. Boston, MA 02110-1301, USA.
      21. Copyright (C) for the linked videos and for the extra 3-Logo by the NDR or the respective owners!
      22. http://www.ndr.de/fernsehen/sendungen/extra_3/video-podcast/extradrei196_version-hd.xml
      23. ]]
      24. local json = require "json"
      25. --Objekte
      26. function script_path()
      27. local str = debug.getinfo(2, "S").source:sub(2)
      28. return str:match("(.*/)")
      29. end
      30. function init()
      31. n = neutrino();
      32. p = {}
      33. func = {}
      34. pmid = 0
      35. stream = 1
      36. tmpPath = "/tmp"
      37. end
      38. function add_stream(t,u)
      39. p[#p+1]={title=t,url=u,access=stream}
      40. end
      41. function getdata(Url,outputfile)
      42. if Url == nil then return nil end
      43. if Curl == nil then
      44. Curl = curl.new()
      45. end
      46. local ret, data = Curl:download{url=Url,A="Mozilla/5.0;",followRedir=true,o=outputfile }
      47. if ret == CURL.OK then
      48. return data
      49. else
      50. return nil
      51. end
      52. end
      53. -- UTF8 in Umlaute wandeln
      54. function conv_url(_string)
      55. if _string == nil then return _string end
      56. local year,day = _string:match('(%d%d%d%d)(%d%d%d%d)')
      57. local str = _string:match('(/%w+%-%d%d%d%d%d%d%d%d%-%d%d%d%d%-%d%d%d%d)%.')
      58. local newurl = 'https://mediandr-a.akamaihd.net/progressive/' .. year .. '/' .. day .. str .. '.hd.mp4'
      59. return newurl
      60. end
      61. function fill_playlist() --- > begin playlist
      62. -- extra 3
      63. local data = getdata('http://www.ndr.de/fernsehen/sendungen/extra_3/video-podcast/extradrei196_version-hd.xml',nil)
      64. if data then
      65. for item in data:gmatch('<item>(.-)</item>') do --
      66. local title = item:match("<title>(Extra 3.-201%d)</title>") -- Sendungstitel
      67. local link = item:match("<link>(.-)</link>") -- URL
      68. url = conv_url(link)
      69. if url and title then
      70. add_stream( title, url, url)
      71. end
      72. end
      73. end
      74. --end extra 3
      75. end --- > end of playlist
      76. function set_pmid(id)
      77. pmid=tonumber(id);
      78. return MENU_RETURN["EXIT_ALL"];
      79. end
      80. function select_playitem()
      81. local m=menu.new{name="extra 3" }
      82. for i,r in ipairs(p) do
      83. m:addItem{type="forwarder", action="set_pmid", id=i, icon="streaming", name=r.title, hint=r.title, hint_icon="hint_reload"}
      84. end
      85. repeat
      86. pmid=0
      87. m:exec()
      88. if pmid==0 then
      89. return
      90. end
      91. local vPlay = nil
      92. local url=func[p[pmid].access](p[pmid].url)
      93. if url~=nil then
      94. if vPlay == nil then
      95. vPlay = video.new()
      96. end
      97. vPlay:PlayFile("extra3",url,p[pmid].title,url );
      98. end
      99. until false
      100. end
      101. --Main
      102. init()
      103. func={
      104. [stream]=function (x) return x end,
      105. }
      106. fill_playlist()
      107. select_playitem()
      Alles anzeigen


      ~ abyssus abyssum invocat ~