On the work-in-progress te-sushi-chef, 9 YouTube videos failed to download because they were removed from the YouTube channel. Links to these videos still exist on the scraped website, so they get scraped, but the sushi chef doesn't know that the video doesn't exist till the ricecooker attempts to download it (via
It would be good if ricecooker can just drop that content node, so that the content doesn't get linked to in the topic tree on Kolibri (currently, for non-existing videos, a black thumbnail is shown, and clicking into the video shows an endless Kolibri logo spinner).
./te_chef.py -v --reset --token=... --stage
... and got the following on upload:
9 file(s) have failed to download
Video 33435: {'web_url': 'http://www.youtube.com/watch?v=mp2XNLBSW1s', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/f1da5bf042d42c0679ca8c7fbbd68edf.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x107480240>, 'error': '\x1b[0;31mERROR:\x1b[0m mp2XNLBSW1s: YouTube said: This video has been removed by the user.'}
ERROR: mp2XNLBSW1s: YouTube said: This video has been removed by the user.
Video 33340: {'web_url': 'http://www.youtube.com/watch?v=uRRco6mJp5I', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/45f20b0dc6561137fc020d2bd9151529.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x107659eb8>, 'error': '\x1b[0;31mERROR:\x1b[0m uRRco6mJp5I: YouTube said: This video has been removed by the user.'}
ERROR: uRRco6mJp5I: YouTube said: This video has been removed by the user.
Video 33370: {'web_url': 'http://www.youtube.com/watch?v=hZnXTC4ehkA', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/2ff4c3a31ef744d9163fbf277d5f8775.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x10793e0b8>, 'error': '\x1b[0;31mERROR:\x1b[0m hZnXTC4ehkA: YouTube said: This video has been removed by the user.'}
ERROR: hZnXTC4ehkA: YouTube said: This video has been removed by the user.
Video 33382: {'web_url': 'http://www.youtube.com/watch?v=VAsIBkbyoGY', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/e4652972c584c2f1c2782aab744b694e.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x1076f26a0>, 'error': '\x1b[0;31mERROR:\x1b[0m VAsIBkbyoGY: YouTube said: This video has been removed by the user.'}
ERROR: VAsIBkbyoGY: YouTube said: This video has been removed by the user.
Video 33202: {'web_url': 'http://www.youtube.com/watch?v=3xfeX4Aqrxc', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/c07f48a3cd3876593a7a10c3e46ba671.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x1076737b8>, 'error': '\x1b[0;31mERROR:\x1b[0m 3xfeX4Aqrxc: YouTube said: This video does not exist.'}
ERROR: 3xfeX4Aqrxc: YouTube said: This video does not exist.
Video 33254: {'web_url': 'http://www.youtube.com/watch?v=KcH0mouzBj4', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/8694c3f1caf47d07acdbc1b8f3a48158.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x1074e9c88>, 'error': '\x1b[0;31mERROR:\x1b[0m KcH0mouzBj4: YouTube said: This video does not exist.'}
ERROR: KcH0mouzBj4: YouTube said: This video does not exist.
Video 33284: {'web_url': 'http://www.youtube.com/watch?v=jSoMnywqXj0', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/a09bc155a4e1af1ef7cc8fbe36dbb95c.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x107064c18>, 'error': '\x1b[0;31mERROR:\x1b[0m jSoMnywqXj0: YouTube said: This video has been removed by the user.'}
ERROR: jSoMnywqXj0: YouTube said: This video has been removed by the user.
Video 33273: {'web_url': 'http://www.youtube.com/watch?v=k8747TB3Re8', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/329619ec38e973ba9e08bd2789b3fe7a.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x10776fb38>, 'error': '\x1b[0;31mERROR:\x1b[0m k8747TB3Re8: YouTube said: This video does not exist.'}
ERROR: k8747TB3Re8: YouTube said: This video does not exist.
Video 33315: {'web_url': 'http://www.youtube.com/watch?v=1Iv3HPkDjtQ', 'download_settings': {'format': 'bestvideo[height<=720][ext=mp4]+bestaudio[ext=m4a]/best[height<=720][ext=mp4]', 'outtmpl': '/var/folders/z8/9d4m1_l55wl7q0ff6shs8c8w0000gn/T/f3b344098e031e8c9e1a95970d05f05c.mp4'}, 'preset': None, 'language': None, 'default_ext': None, 'source_url': None, 'node': <ricecooker.classes.nodes.VideoNode object at 0x107161f28>, 'error': '\x1b[0;31mERROR:\x1b[0m 1Iv3HPkDjtQ: YouTube said: This video does not exist.'}
ERROR: 1Iv3HPkDjtQ: YouTube said: This video does not exist.