HA6Bots / Automatic-Youtube-Reddit-Text-To-Speech-Video-Generator-and-Uploader

A series of 3 programs that will automatically receive scripts from Reddit, allow the user to edit them, then be sent off to a video generator where they will be uploaded to YouTube automatically.
MIT License
610 stars 181 forks source link

Unable to choose different subreddit #63

Open alzeric opened 3 years ago

alzeric commented 3 years ago

When selecting a subreddit other than "AskReddit" the following error occurs Note: AskReddit works just fine, only happens if you change the subreddit in initserver.py

`Found config.ini Started database connection Starting server on localhost port 10000 Server wait client thread started Starting video generator server on localhost port 11000 Server Video Generator wait client thread started Grabbing more scripts... Exception in thread Thread-5: Traceback (most recent call last): File "C:\Python38\lib\site-packages\prawcore\requestor.py", line 54, in request return self._http.request(*args, timeout=timeout, **kwargs) File "C:\Python38\lib\site-packages\requests\sessions.py", line 516, in request prep = self.prepare_request(req) File "C:\Python38\lib\site-packages\requests\sessions.py", line 449, in prepare_request p.prepare( File "C:\Python38\lib\site-packages\requests\models.py", line 315, in prepare self.prepare_headers(headers) File "C:\Python38\lib\site-packages\requests\models.py", line 449, in prepare_headers check_header_validity(header) File "C:\Python38\lib\site-packages\requests\utils.py", line 947, in check_header_validity raise InvalidHeader("Invalid return character or leading space in header: %s" % name) requests.exceptions.InvalidHeader: Invalid return character or leading space in header: User-Agent

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Python38\lib\threading.py", line 932, in _bootstrap_inner self.run() File "C:\Python38\lib\threading.py", line 870, in run self._target(*self._args, self._kwargs) File ".\initserver.py", line 39, in updateScripts getScripts() File ".\initserver.py", line 17, in getScripts info = reddit.getInfo('ELI5', settings.reddit_amount_posts) File "D:\00-Coding\Python\youtube_reddit\YouTube Bot Server\reddit.py", line 101, in getInfo for x, submission in enumerate(hot_subreddit): File "C:\Python38\lib\site-packages\praw\models\listing\generator.py", line 63, in next self._next_batch() File "C:\Python38\lib\site-packages\praw\models\listing\generator.py", line 73, in _next_batch self._listing = self._reddit.get(self.url, params=self.params) File "C:\Python38\lib\site-packages\praw\reddit.py", line 566, in get return self._objectify_request(method="GET", params=params, path=path) File "C:\Python38\lib\site-packages\praw\reddit.py", line 666, in _objectify_request self.request( File "C:\Python38\lib\site-packages\praw\reddit.py", line 848, in request return self._core.request( File "C:\Python38\lib\site-packages\prawcore\sessions.py", line 324, in request return self._request_with_retries( File "C:\Python38\lib\site-packages\prawcore\sessions.py", line 222, in _request_with_retries response, saved_exception = self._make_request( File "C:\Python38\lib\site-packages\prawcore\sessions.py", line 179, in _make_request response = self._rate_limiter.call( File "C:\Python38\lib\site-packages\prawcore\rate_limit.py", line 33, in call kwargs["headers"] = set_header_callback() File "C:\Python38\lib\site-packages\prawcore\sessions.py", line 277, in _set_header_callback self._authorizer.refresh() File "C:\Python38\lib\site-packages\prawcore\auth.py", line 305, in refresh self._request_token(grant_type=grant_type, device_id=self._device_id) File "C:\Python38\lib\site-packages\prawcore\auth.py", line 155, in _request_token response = self._authenticator._post(url, data) File "C:\Python38\lib\site-packages\prawcore\auth.py", line 30, in _post response = self._requestor.request( File "C:\Python38\lib\site-packages\prawcore\requestor.py", line 56, in request raise RequestException(exc, args, kwargs) prawcore.exceptions.RequestException: error with request Invalid return character or leading space in header: User-Agent`

alzeric commented 3 years ago

Fix created a user_agent variable in reddit.py

Reason: on windows systems the config.ini import is pulling in the CRLF and header useragents don't like that

replace this line reddit = praw.Reddit(client_id=settings.reddit_client_id, client_secret=settings.reddit_client_secret, password=settings.reddit_client_password, user_agent=settings.reddit_client_user_agent, username=settings.reddit_client_username)

with reddit_client_user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36" reddit = praw.Reddit(client_id=settings.reddit_client_id, client_secret=settings.reddit_client_secret, password=settings.reddit_client_password, user_agent=reddit_client_user_agent, username=settings.reddit_client_username)

alzeric commented 3 years ago

Authentication is also broken on Windows for Reddit API + using the Config.ini

Fix: Create more variables in reddit.py

`reddit_client_id = "CLIENT_ID"

reddit_client_secret = "CLIENT_SECRET"

reddit_client_password = "ACCOUNT_PASSWORD"

reddit_client_username = "ACCOUNT_USERNAME"

reddit_client_user_agent = "RedditDATA"

reddit = praw.Reddit(client_id=reddit_client_id, client_secret=reddit_client_secret, password=reddit_client_password, user_agent=reddit_client_user_agent, username=reddit_client_username)`

alzeric commented 3 years ago

Suggestion movie all config.ini files into json file instead... would remove the CRLF issue for windows machines.

ttspr commented 2 years ago

hi bro I need help