Upon encountering a 402 error, youtube-dl should:
- By default, throw out an error ("Due to high usage, youtube requires a CAPTCHA to be solved. Specify the
--captcha-solver or --captcha-interactive option to solve the CAPTCHA.")
- If the
--captcha-solver has been specified, execute the specified program. Write the CAPTCHA image to its stdin and read its stdout. Enter the trimmed stdout as the CAPTCHA and continue downloading.
- If the
--captcha-interactive option has be been specified, download the file to a temporary location and call ['xdg-open', 'tmpfile']. If this fails, abort with an error message. Otherwise, call raw_input() and ask for a solution for the CAPTCHA.
Implementation notes:
- This is requires an option
captcha-solver. For the moment, I'm not sure whether it should be a Python callback(Fits better in a library) or a string(Allows serialization of options).
- It will be hard to test. I can have a process downloading 24/7 from a high-bandwidth server until it encounters this problem, but there should be a nicer way to get youtube to present CAPTCHAs
- Afterwards, update the FAQ / documentation / README.md
Upon encountering a 402 error, youtube-dl should:
--captcha-solveror--captcha-interactiveoption to solve the CAPTCHA.")--captcha-solverhas been specified, execute the specified program. Write the CAPTCHA image to its stdin and read its stdout. Enter the trimmed stdout as the CAPTCHA and continue downloading.--captcha-interactiveoption has be been specified, download the file to a temporary location and call['xdg-open', 'tmpfile']. If this fails, abort with an error message. Otherwise, callraw_input()and ask for a solution for the CAPTCHA.Implementation notes:
captcha-solver. For the moment, I'm not sure whether it should be a Python callback(Fits better in a library) or a string(Allows serialization of options).