1 (edytowany przez azhag 2013-11-04 22:37:31)

Temat: youtube-dl

Cześć,

chcę uruchomić youtube-dl. Zainstalowałem Pythona, pobrałem ww. program i:

root@Gargoyle ~ # ./youtube-dl -t f 43 URL
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "./youtube-dl/__main__.py", line 18, in <module>
  File "./youtube-dl/youtube_dl/__init__.py", line 766, in main
  File "./youtube-dl/youtube_dl/__init__.py", line 492, in _real_main
  File "./youtube-dl/youtube_dl/__init__.py", line 752, in _setup_opener
  File "./youtube-dl/youtube_dl/utils.py", line 541, in make_HTTPS_handler
AttributeError: 'module' object has no attribute 'HTTPSHandler'
root@Gargoyle ~ # opkg list-installed | grep python
python - 2.7.3-1
python-mini - 2.7.3-1

Czego jeszcze mi potrzeba?

Gargoyle @ MR3420v2

2

Odp: youtube-dl

opkg install python-openssl

TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

3

Odp: youtube-dl

alossek napisał/a:

opkg install python-openssl

Wpadłem na to dosłownie tuż przed przeczytaniem tego posta. Niemniej dzięki.

Trochę do przodu, ale nadal czegoś brakuje:

root@Gargoyle ~ # ./youtube-dl -t f 43 $URL
WARNING: The url doesn't specify the protocol, trying with http
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "./youtube-dl/__main__.py", line 18, in <module>
  File "./youtube-dl/youtube_dl/__init__.py", line 766, in main
  File "./youtube-dl/youtube_dl/__init__.py", line 719, in _real_main
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 715, in download
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 363, in extract_info
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 395, in process_ie_result
  File "./youtube-dl/youtube_dl/YoutubeDL.py", line 348, in extract_info
  File "./youtube-dl/youtube_dl/extractor/common.py", line 125, in extract
  File "./youtube-dl/youtube_dl/extractor/generic.py", line 130, in _real_extract
  File "./youtube-dl/youtube_dl/extractor/generic.py", line 112, in _test_redirect
  File "/usr/lib/python2.7/urllib2.py", line 400, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 418, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 378, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1207, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1177, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno -2] Name or service not known>
Gargoyle @ MR3420v2

4 (edytowany przez azhag 2013-11-06 13:31:51)

Odp: youtube-dl

Ponieważ nikt nie miał pomysłu... napisałem własny, prymitywny zamiennik: http://wklej.dug.net.pl/4667 (parsowanie URL do filmu pożyczone stąd).

Zachowana szczątkowa zgodność z youtube-dl:
- flagi -t, -A, -f, --write-srt, --srt-lang (i wątpliwe by pojawiły się kolejne, może na -F się tylko skuszę),
- pobieranie wyłącznie pojedynczych filmów, brak obsługi list i całych profili.

Dlatego nadal jakby ktoś zdołał skłonić oryginalny youtube-dl do działania, to byłbym niezmiernie wdzięczny. Oczywiście spodziewane błędy w działaniu (na pewno nie mam wszystkich rozszerzeń), jakby co dajcie znać -- choć nie gwarantuję poprawki. ;)

Licencja: nie mam pojęcia na jakiej jest pożyczony fragment kodu i jego pierwowzór, więc nie wiem na jakiej mogę. Ale na pewno jakaś FLOSS.

Gargoyle @ MR3420v2

5

Odp: youtube-dl

azhag napisał/a:

jakby ktoś zdołał skłonić oryginalny youtube-dl do działania, to byłbym niezmiernie wdzięczny.

"U mnie działa", mam takie pakiety od python'a

python - 2.7.3-1
python-crypto - 2.0.1-1
python-expat - 2.7.3-1
python-mini - 2.7.3-1
python-openssl - 2.7.3-1
TP-Link TL-WDR4300 v1, Reboot (17.01-SNAPSHOT, r3876-efb6ca1)

6

Odp: youtube-dl

Dzięki za informację, że jednak działa. Dzięki temu doszedłem czemu u mnie nie działało. Otóż przeszkadza flaga -t (pobieranie tytułu filmu) -- bez niej elegancko ściąga, z nią się wysypuje jak wyżej.

Do działania bez flagi -t wystarczy:

python - 2.7.3-1
python-mini - 2.7.3-1
python-openssl - 2.7.3-1

Pytanie zatem teraz brzmi: co jest jeszcze potrzebne by zmusić youtube-dl do działania z tą flagą?

Gargoyle @ MR3420v2

7

Odp: youtube-dl

Nie znam dobrze tego skryptu, ale spróbuj z tytułem dla tego filmu: http://www.youtube.com/watch?v=OtRAkjNHnrI
Jeśli da radę to podam przyczynę problemu.

8 (edytowany przez azhag 2013-11-06 18:10:36)

Odp: youtube-dl

Działa.

O dziwo nagle zaczęło też działać z poprzedm filmem, który wcześniej nie działał...

Gargoyle @ MR3420v2

9

Odp: youtube-dl

Bo to był magiczny film naprawiający problemy ze skryptem wink
Gdyby jednak jakiś nie działał, to zwróć uwagę czy ma jakieś polskie lub niestandardowe znaki w tytule. Mi w pyLoad (także w python) takie nie działają i rozwiązaniem jest wcześniejsze przefiltrowanie ich.

10 (edytowany przez azhag 2013-11-06 23:02:58)

Odp: youtube-dl

Już wiem co jest źle. I wychodzi na to, że jestem skończonym kretynem. :D

Źle podałem argumenty, zamiast:

-f 43

dałem:

f 43

Po prawdzie jednak na normalnym kompie youtube-dl po prostu stwierdza, że nie ma filmiku z id "f", zamiast -- jak na OpenWRT -- majestatycznie się wykrzaczać.

Nie ma to jak napisać własny skrypt, bo z innego źle się skorzystało. :D

Nie ma jednak tego złego, mój powłokowy skrypt znacznie szybciej się ładuje, przy mniejszych filmach prawie zdążę pobrać zanim się python uruchomi. :)

Gargoyle @ MR3420v2

11

Odp: youtube-dl

Do cv bedziesz mial, że skrypt napisałeś. Nie ma tego zlego wink

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M