# youtube_uploader_selenium
**Repository Path**: chx-root/youtube_uploader_selenium
## Basic Information
- **Project Name**: youtube_uploader_selenium
- **Description**: No description available
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-02-14
- **Last Updated**: 2022-02-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## About
Python script to upload videos on YouTube using Selenium
that allows to upload more than 61 videos per day
which is the maximum [[1]](https://github.com/tokland/youtube-upload/issues/268) for all other tools that use the [YouTube Data API v3](https://developers.google.com/youtube/v3).
###### 1: Since the projects that enable the YouTube Data API have a default quota allocation of `10,000` units per day [[2]](https://developers.google.com/youtube/v3/getting-started#calculating-quota-usage) and a video upload has a cost of approximately `1,600` units [[3]](https://developers.google.com/youtube/v3/getting-started#quota): `10,000 / 1,600 = 6.25`.
Instead, this script is only restricted by a daily upload limit for a channel on YouTube:
> 100 videos is the limit in the first 24 hours, then drops to 50 every 24 hours after that. [[4]](https://support.google.com/youtube/thread/1187675?hl=en)
## Package Installation
```bash
pip3 install --upgrade youtube-uploader-selenium
```
## Script Installation
```bash
git clone https://github.com/linouk23/youtube_uploader_selenium
cd youtube-uploader-selenium
```
## Package Usage
```python
from youtube_uploader_selenium import YouTubeUploader
video_path = '123/rockets.flv'
metadata_path = '123/rockets_metadata.json'
uploader = YouTubeUploader(video_path, metadata_path, thumbnail_path)
was_video_uploaded, video_id = uploader.upload()
assert was_video_uploaded
```
## Script Usage
At a minimum, just specify a video:
```bash
python3 upload.py --video rockets.flv
```
If it is the first time you've run the script, a browser window should popup and prompt you to provide YouTube credentials (and then simply press Enter after a successful login).
A token will be created and stored in a file in the local directory for subsequent use.
Video title, description and other metadata can specified via a JSON file using the `--meta` flag:
```bash
python3 upload.py --video rockets.flv --meta metadata.json
```
An example JSON file would be:
```json
{
"title": "Best Of James Harden | 2019-20 NBA Season",
"description": "Check out the best of James Harden's 2019-20 season so far!",
"tags": ["James", "Harden", "NBA"]
}
```
## Dependencies
* geckodriver
* Firefox **[(Works with version 77)](https://ftp.mozilla.org/pub/firefox/releases/)**
* selenium_firefox
## FAQ
* [Selenium using Python - Geckodriver executable needs to be in PATH](https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path)
* [SessionNotCreatedException: Message: Unable to find a matching set of capabilities](https://stackoverflow.com/questions/47782650/selenium-common-exceptions-sessionnotcreatedexception-message-unable-to-find-a)
* Please make sure that Firefox browser is installed on your machine.
## Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
## Feedback
If you find a bug / want a new feature to be added, please [open an issue](https://github.com/tokland/youtube-upload/issues).
## License
[MIT](https://choosealicense.com/licenses/mit/)