youtube-upload
youtube-upload copied to clipboard
Upload fails when using crontab
Hello.
I found a problem on Raspberry Pi where I am running the following command inside os.system dependency in a python script:
$ youtube-upload \
--title="A.S. Mutter" \
--client-secrets="my_client_secrets.json" \
--playlist="My favorite music" \
--embeddable=True
anne_sophie_mutter.flv
and it runs with no problem, when I use my default pi user, however, when I run this script in crontab, script would not start, even if I would run it as a user.
@reboot sudo -u pi /usr/bin/python /home/pi/youtube-upload.py
logged error is:
Using client secrets: /home/pi/cs.json Using credentials file: /home/pi/.youtube-upload-credentials.json Traceback (most recent call last): File "/usr/local/bin/youtube-upload", line 10, in
main.run() File "/usr/local/lib/python2.7/dist-packages/youtube_upload/main.py", line 268, in run sys.exit(lib.catch_exceptions(EXIT_CODES, main, sys.argv[1:])) File "/usr/local/lib/python2.7/dist-packages/youtube_upload/lib.py", line 44, in catch_exceptions fun(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/youtube_upload/main.py", line 262, in main run_main(parser, options, args) File "/usr/local/lib/python2.7/dist-packages/youtube_upload/main.py", line 176, in run_main youtube = get_youtube_handler(options) File "/usr/local/lib/python2.7/dist-packages/youtube_upload/main.py", line 162, in get_youtube_handler get_code_callback=get_code_callback) File "/usr/local/lib/python2.7/dist-packages/youtube_upload/auth/init.py", line 42, in get_resource return googleapiclient.discovery.build("youtube", "v3", http=http) File "/usr/local/lib/python2.7/dist-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper return wrapped(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 222, in build requested_url, discovery_http, cache_discovery, cache) File "/usr/local/lib/python2.7/dist-packages/googleapiclient/discovery.py", line 269, in _retrieve_discovery_doc resp, content = http.request(actual_url) File "/usr/local/lib/python2.7/dist-packages/oauth2client/transport.py", line 175, in new_request redirections, connection_type) File "/usr/local/lib/python2.7/dist-packages/oauth2client/transport.py", line 282, in request connection_type=connection_type) File "/usr/local/lib/python2.7/dist-packages/httplib2/init.py", line 2175, in request cachekey, File "/usr/local/lib/python2.7/dist-packages/httplib2/init.py", line 1835, in _request conn, request_uri, method, body, headers File "/usr/local/lib/python2.7/dist-packages/httplib2/init.py", line 1746, in _conn_request raise ServerNotFoundError("Unable to find the server at %s" % conn.host) httplib2.ServerNotFoundError: Unable to find the server at www.googleapis.com
If after this error, I run the same script in the shell, it gets executed normally.
Any ideas on how to run script with cron user is helpful?
What does the first line of youtube-upload.py say?
In my case it shows: #!/usr/bin/python3
Which means you need to change @reboot sudo -u pi /usr/bin/python /home/pi/youtube-upload.py to @reboot sudo -u pi /usr/bin/python3 /home/pi/youtube-upload.py