Author Topic: Nefunkční stahování z Idnes.cz  (Read 11426 times)

151kbar151

  • Newbie
  • *
  • Posts: 11
    • View Profile
Nefunkční stahování z Idnes.cz
« on: July 13, 2013, 01:09:46 PM »
Když chci stáhnout video z Idnes.cz tak to napíše tuhle chybu: Chyba RTMPDUMPu: Problem acessing the DNS. (addr: http) (EDownloadThreadError).
Sice je to video, které na webu hlásí že již není dostupné ale dřív jsem z Idnes stahoval videa údajně nedostupná bez problému (samozřejmě YTD).

pepak

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 956
    • View Profile
    • Pepak.net
Re: Nefunkční stahování z Idnes.cz
« Reply #1 on: July 13, 2013, 01:35:22 PM »
Dřív také stahování z iDnes fungovalo úplně jinak než teď.

Nevylučuji, že tam stále je možnost nějak stahovat, ale bez konkrétního URL se s tím nedá nic dělat.


balutbj

  • Trusted user
  • Newbie
  • ****
  • Posts: 49
    • View Profile
Re: Nefunkční stahování z Idnes.cz
« Reply #3 on: July 13, 2013, 02:05:05 PM »
Zas tolik se to nezměnilo.
 ** url odstraněna **
« Last Edit: July 13, 2013, 02:30:18 PM by balutbj »

151kbar151

  • Newbie
  • *
  • Posts: 11
    • View Profile
Re: Nefunkční stahování z Idnes.cz
« Reply #4 on: July 13, 2013, 02:24:43 PM »
Díky, to je ono. Ale jak jsi tohle udělal? Já jen, abych si dovedl poradit příště.

balutbj

  • Trusted user
  • Newbie
  • ****
  • Posts: 49
    • View Profile
Re: Nefunkční stahování z Idnes.cz
« Reply #5 on: July 13, 2013, 02:32:13 PM »
Díky, to je ono. Ale jak jsi tohle udělal? Já jen, abych si dovedl poradit příště.
Napiš mi soukromě: http://testtbj.mzf.cz/formular.php

svezij

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Nefunkční stahování z Idnes.cz
« Reply #6 on: August 20, 2013, 09:59:54 AM »
Ahoj, mám stejný problém. Chtěl bych si stáhnout celý seriál těchto videí "Na klavír za několik týdnů", ale YTD píše tutéž chybu, co říkal @151kbar151. Mohl bych tě také přes tvůj formulář požádat o postup? Mockrát děkuji.

pepak

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 956
    • View Profile
    • Pepak.net

svezij

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: Nefunkční stahování z Idnes.cz
« Reply #8 on: August 21, 2013, 12:59:06 PM »
Opět zdravím, nevím, jestli se to tu smí nebo nesmí, ale napsal jsem jednoduchou funkci v PHP, přes kterou je možné přímo stáhnout video z idnes.cz. Bohužel nemám přístupný žádný hosting a tak to nemůžu dát přímo na web a napojit na jednoduchý formulář, a tak je to uděláno jen pro "znalejší" a stáhne to soubor na localhost do daného umístění na disku. Pokud by někdo měl tu možnost dát to někam na web, jsem i ochotný tam dodělat nějaký jednoduchý formulář, a např. po stažení všech souborů to zazipovat a nabídnout uživateli ke stažení přes prohlížeč (a pak samozřejmě smazat, ať to neplní disk). O úpravách se každopádně dá mluvit. Kdyby funkci někdo ale přece jen potřeboval takto a využil ji (mně dost pomohla a ušetřila čas), tak tady je:
Code: [Select]
/**
   * Downloads video from IDNES page.
   *
   * @param array|string $pages Array with URL on requested pages | URL on requested page
   * @param string $destDir Destination directory, the place where the video will be saved.
   * @param type $namePattern Pattern of destination filename:
   *                          %S% - source filename
   *                          %C% - counter (according to the count of given pages is counter padded by zeros)
   *    example:
   *      'Piano school - Lesson no. %C%' => returns e.g. 'Piano school - Lesson no. 03'
   */
  function download_idnes_videos($pages = array(), $destDir = '', $namePattern = '%S%')
  {
    // check parameter
    if (!is_array($pages)) {
      $pages = (array)$pages;
    }

    // get services from pages
    array_walk($pages, function(&$page) {
      preg_match('/videoFLV.+data:\s*["\'](.+?)["\']/', @file_get_contents($page), $matches);
      $page = (($matches) ? $matches[1] : '');
    });

    // download videos
    $count = count($pages);
    $sprintf = (($count < 10) ? '%d' : (($count < 100) ? '%02d' : '%03d'));
    $echoSprintf = $sprintf . '. ';

    $i = 1;
    foreach ($pages as $service) {
      if ($service) {
        $xml = simplexml_load_file($service);

        foreach ($xml->items->item as $item) {
          if ($item->type == 'video') {
            $video = $item->linkvideo->server . $item->linkvideo->path . $item->linkvideo->file;

            $source = @fopen($video, 'r');
            if (!$source) {
              $server = (($item->linkvideo->server == 'http://stream7p.idnes.cz/') ? 'http://stream6p.idnes.cz/' : 'http://stream7p.idnes.cz/');
              $video = $server . $item->linkvideo->path . $item->linkvideo->file;

              $source = @fopen($video, 'r');
            }

            if ($source) {
              // check destination
              if (!is_dir($destDir)) {
                mkdir($destDir, 0777, TRUE);
              }

              // create destination file
              $dotPos = strrpos($item->linkvideo->file, '.');
              $filename = substr($item->linkvideo->file, 0, $dotPos);
              $ext = substr($item->linkvideo->file, $dotPos);

              $destname = str_replace(array('%S%', '%C%'), array($filename, sprintf($sprintf, $i)), $namePattern);
              $destfile = rtrim($destDir, '/') . '/' . $destname . $ext;

              $dest = fopen($destfile, 'w');

              if ($dest) {
                echo sprintf($echoSprintf, $i) . 'copying... "' . $video . '" to "' . $destfile . '"<br />';

                stream_copy_to_stream($source, $dest);
              } else {
                echo sprintf($echoSprintf, $i) . 'destination is not writable.<br />';
              }
            } else {
              echo sprintf($echoSprintf, $i) . 'source was not found.<br />';
            }

            $i++;

            // jump to next page
            break;
          }
        }
      } else {
        echo sprintf($echoSprintf, $i) . 'service was not found.<br />';
        $i++;
      }
    }
  }

  // example
  /*
    $pages = array(
      'http://hobby.idnes.cz/video-na-klavesy-se-naucite-za-par-tydnu-zacnete-s-nami-od-prvni-lekce-1jg-/hobby-domov.aspx?c=A100514_153649_hobby-domov_bma',
      'http://hobby.idnes.cz/video-na-klavir-za-nekolik-tydnu-2-dil-dsk-/hobby-domov.aspx?c=A100522_083145_hobby-domov_bma',
      'chybna url'
    );
    download_idnes_videos($pages, 'test', 'Piano school - Lesson no. %C% (%S%)');
  */

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Note: this post will not display until it's been approved by a moderator.
Name: Email:
Verification:
This box must be left blank:

Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture: