51 Commits

Author SHA1 Message Date
Paillat
169709d175 Update readme.md 2024-03-13 22:54:45 +01:00
005b0c7041 🔨 refactor(misc.py): remove unused code and simplify printm function
🐛 fix(misc.py): fix missing implementation of replace_markdown_bold function
2023-08-26 13:15:47 +02:00
Paillat
08969b75fa feat(main.py): add support for downloading Marp CLI tool from GitHub repository to ensure availability of necessary files for program execution
feat(marpdownloader.py): implement function to download Marp CLI tool from GitHub repository based on specified username, repository, and file extension
2023-07-22 11:46:06 +02:00
Paillat
5428251ee0 feat(main.py): move check_license_agreement function to a separate module for better organization and reusability
feat(utils/license.py): create a new module to handle license agreement checking and display
2023-07-22 11:44:17 +02:00
Paillat
803e87f2e1 Merge branch 'main' of https://github.com/Paillat-dev/Videos-Automator 2023-07-22 11:37:04 +02:00
Paillat
ea0c6968f5 fix(main.py): handle case when skip_channel_default setting is provided and is not None, by loading the specified channel instead of prompting the user for input
feat(main.py): add support for skip_channel_default setting to skip the channel selection prompt and load a specific channel automatically
2023-07-22 11:36:53 +02:00
Paillat
ece5e3d226 Update readme.md 2023-07-19 21:19:03 +02:00
Paillat
0943f61c0b chore(readme.md): add tasks for adding transitions between photos, generating a video from text, and adding a watermark
feat(readme.md): add task for choosing/making AI choose background image for marp slides
feat(readme.md): add task for ability to change speaker file or set it to no speaker file per channel option
2023-07-19 20:51:05 +02:00
Paillat
0f155f37b8 chore(readme.md): update project roadmap with new features and improvements
feat(readme.md): add support for transitions between photos
feat(readme.md): add support for generating a video from a given text
feat(readme.md): add support for adding a watermark to the video
feat(readme.md): add support for choosing or letting AI choose the background image for marp slides
2023-07-19 20:49:57 +02:00
Paillat
627c7b500e added todo task 2023-07-14 22:05:15 +02:00
Paillat
de2f482de2 fix(.gitignore): add 'settings.yaml' to the list of ignored files
fix(main.py): remove unused import statements and update function name to check_license_agreement
fix(main.py): remove unnecessary comments and sleep statements
feat(main.py): add check_license_agreement function to prompt user to accept license agreement
fix(requirements.txt): add 'watchdog' package to the list of requirements
feat(utils/settings.py): create Settings class to handle loading and updating settings from settings.yaml file
2023-07-13 20:01:06 +02:00
Paillat
116788ba07 chore(readme.md): fix typo in task description
chore(readme.md): remove unnecessary newline at end of file
2023-07-13 19:58:04 +02:00
Paillat
a8762a1c15 chore(readme.md): add tasks for improving tutorial and adding thumbnail generator
chore(readme.md): add tasks for changing background music and making prompts channel specific
feat(readme.md): add task for adding global settings dictionary and listener for settings changes
2023-07-10 11:10:10 +02:00
Paillat
76524e6cc1 chore(readme.md): update TODO list formatting and add checkboxes 2023-07-10 10:48:28 +02:00
Paillat
2b2f35e079 docs(readme.md): add contributing guidelines and TODO list
feat(readme.md): add a way to change settings without restarting the script

feat(readme.md): add a more detailed tutorial on how to use the script & readme

feat(readme.md): add a generator for more beautiful thumbnails

feat(readme.md): add a way to change the background music / add a way to add more background music / add a way to have channel specific background music

feat(readme.md): make the script prompts optionally channel specific for marp heading and oîdeas prompts
2023-07-08 22:06:07 +02:00
Paillat
b4604b6f08 chore(LICENSE): update license file with additional clauses and add separate licenses for audio prompts and musics directories 2023-07-08 21:51:33 +02:00
Paillat
431ee20a1a chore(readme.md): update project name and description
docs(readme.md): add license and usage restrictions information
2023-07-08 21:44:13 +02:00
Paillat
d71efec59a admin(LICENSE): Added license with custom clause 2023-07-08 21:37:30 +02:00
Paillat
a82c6446ba feat(FABLE.cmd): add FABLE.cmd script to run FABLE.ps1 and pause execution
feat(FABLE.ps1): add script to activate environment and run main.py
fix(montage.py): fix issue with downloading images and creating slide assets
fix(montage.py): fix issue with generating markdown slides
fix(montage.py): fix issue with generating huge slides
fix(montage.py): fix issue with generating blank slides
fix(thumbnail.py): remove TODO comment
fix(marp.md): remove unused CSS styles
fix(wiki_downloader.py): add user agent header to requests
2023-07-08 20:58:45 +02:00
Paillat
d81b2ccebf fix(video.py): remove unnecessary prompt for generating thumbnail
fix(video.py): assign url and id properties after uploading video
fix(montage.py): fix unsplash_url to use source.unsplash.com instead of api.unsplash.com
fix(montage.py): fix image download logic in prepare function
fix(marp.md): add missing newline at end of file
fix(wiki_downloader.py): fix image download logic in download_image function
2023-07-02 12:43:43 +02:00
Paillat
f7835f6604 feat(audio_prompts): add default audio prompts for narrator
feat(audio_prompts): add en_narrator_deep audio prompt for narrator
feat(audio_prompts): add en_narrator_light_bg audio prompt for narrator
fix(video.py): fix indentation and add prompt for generating thumbnail
fix(montage.py): fix indentation and add prompt for generating thumbnail
fix(montage.py): fix image download for wikimage slides

fix(speak.py): remove unused import statement
fix(speak.py): remove unused variable 'fakenames'
feat(speak.py): add function 'remove_blank_moments' to remove silent parts from audio file
feat(speak.py): add function 'optimize_string_groups' to optimize string groups for audio generation
fix(speak.py): fix comment indentation in 'generate_voice' function
fix(speak.py): remove unused imports in 'generate_voice' function
fix(speak.py): remove unused variable 'reduced_noise' in 'generate_voice' function
fix(speak.py): remove unused import statements in 'generate_voice' function
fix(speak.py): remove unused import statement for 'logging' module
fix(speak.py): remove unused print statements in 'main' function
fix(speak.py): remove unused import statement for 'logging' module
fix(speak.py): remove unused print statements in 'main' function
fix(speak.py):

fix(wiki_downloader.py): fix Google search URL to include correct query parameter
fix(wiki_downloader.py): reduce sleep time after page load to 1 second
fix(wiki_downloader.py): increase sleep time after image click to 5 seconds
2023-07-02 11:17:10 +02:00
Paillat
f1de2ad596 Merge branch 'main' of https://github.com/Paillat-dev/Videos-Automator 2023-07-01 21:46:55 +02:00
Paillat
6f9ad7f025 feat(wiki_downloader.py): add script to download images from Wikipedia
This commit adds a new script called `wiki_downloader.py` which allows downloading images from Wikipedia. The script uses Selenium and undetected_chromedriver to automate the process of searching for an image on Google and downloading it.

The `download_image` function takes two parameters: `query` and `download_path`. It opens a headless Chrome browser using undetected_chromedriver and navigates to the Google Images search page with the specified query. After a short delay, it clicks on the "tout refuser" button to accept the cookies prompt. Then, it finds the first image in the search results and extracts its source URL. The image is then downloaded either by decoding a base64-encoded image or by making a request to the image URL. The downloaded image is saved in the specified `download_path`.

The script also includes a test case that demonstrates how to use the `download_image
2023-07-01 21:46:19 +02:00
Paillat
8b72c8eb1a Update readme.md 2023-06-29 22:34:56 +02:00
Paillat
866f1b4138 chore(.gitignore): add bark_cache directory to gitignore
feat(video.py): use wav format instead of mp3 for generated audio files
feat(montage.py): use Bark TTS instead of 🐸TTS
feat(speak.py): add support for Bark TTS
fix(speak.py): remove unused 🐸TTS import and variable
fix(main.py): fix asyncio.run() call placement
docs: update requirements.txt with new dependencies
2023-06-25 21:59:52 +02:00
Paillat
5498fb7bac feat(video.py): add support for script_prompt.txt file to customize script prompts
fix(script.py): add prompt parameter to generate_script function
feat(main.py): add loop to run main function indefinitely and add option to quit with ctrl+c
2023-06-25 19:14:22 +02:00
Paillat
f0dff73ce7 fix(video.py): return self instead of video_meta_file
fix(main.py): print video object instead of video url
feat(uploader.py): add retry mechanism to handle token expiration and refresh token if necessary. Also, pass youtube object to upload_thumbnail function.
2023-06-25 18:16:19 +02:00
Paillat
9d11b67ebd fix(uploader.py): await resumable_upload function call 2023-06-25 17:43:54 +02:00
Paillat
131e64eae0 refactor(video.py): remove unnecessary print statement
refactor(montage.py): use os.path.join instead of string concatenation
refactor(thumbnail.py): use os.path.join instead of string concatenation
refactor(uploader.py): use os.path.join instead of string concatenation
refactor(uploader.py): add support for client_secret.json file with different names in credentials folder
docs(readme.md): update instructions for openai and unsplash keys
docs(readme.md): update instructions for google oauth client id json files
docs(readme.md): add information about channel.yaml file in each channel's folder
2023-06-25 17:40:01 +02:00
Paillat
268be54efe wtf why was dere a db file??? 2023-06-25 16:17:29 +02:00
Paillat
e676d5851e I mean its the biggest commit I ever did (did git add * cause I didn't want to explain all of this It's already so complicated) 2023-06-25 16:12:23 +02:00
Paillat
09c98a460b docs(tokens.py): add docstring explaining the purpose of the file and its reference 2023-06-17 11:51:35 +02:00
Paillat
2372c18997 feat(tokens.py): add function to count number of tokens used by a list of messages 2023-06-17 11:50:04 +02:00
Paillat
7c6989161c feat(main.py): add support for existing ideas in the idea selection process 2023-05-28 11:26:13 +02:00
Paillat
ef684ffff5 feat(script): generate a detailed script for a YouTube video, structured as JSON slides. Each slide should include 'spoken' text for narration and one of these: 'image', 'markdown', or 'huge'. 2023-05-28 11:25:53 +02:00
Paillat
25f578f48c fix(generators/ideas.py): fix typo in variable name 'existing_ideas'
feat(generators/montage.py): add check to skip slide if it already exists
feat(generators/montage.py): add support for DEEPL_ACCESS_KEY and UNSPLASH_ACCESS_KEY environment variables
feat(generators/speak.py): add support for Johanne voice
feat(generators/speak.py): add emotion parameter to generate_voice function
feat(generators/uploader.py): add success message and authorization prompt message to run_local_server method
fix(main.py): check if credits is None before writing to meta.txt file
feat(prompts/marp.md): change theme to gaia and add lead and invert classes
2023-05-25 21:47:11 +02:00
Paillat
32c14a01ca chore(.gitignore): add marp.exe to the ignored files list 2023-05-22 14:47:52 +02:00
Paillat
f8cc1f33a7 Merge branch 'main' of https://github.com/Paillat-dev/Videos-Automator 2023-05-22 10:42:02 +02:00
Paillat
8a0029a048 refactor(montage.py): remove unused translate function
refactor(montage.py): remove unused srt_fr variable
refactor(montage.py): remove saving of french subtitle file
refactor(main.py): remove unused translate import and function call
2023-05-22 10:40:33 +02:00
Paillat
2e523f7b3b chore(.gitignore): add montageTEMP_MPY_wvf_snd.mp3 to ignored files 2023-05-22 10:39:38 +02:00
Paillat
f81c53e5a2 Delete marp.exe 2023-05-17 20:18:08 +02:00
Paillat
0845e4d876 docs(script.txt): clarify guidelines for using images and text in videos 2023-05-16 12:12:29 +02:00
Paillat
08223be081 feat(readme.md): add instructions on how to install dependencies, add required values to .env file, and prepare google oauth client id json for youtube api. Also, add a warning that this is not a tutorial on how to use the scripts. 2023-05-15 16:54:33 +02:00
Paillat
6e2d176399 feat(requirements.txt): add TTS, moviepy, pysrt, deepl, openai, pillow, python-dotenv, and google-api-python-client packages to requirements file 2023-05-15 16:54:01 +02:00
Paillat
a48f72863f feat(main.py): add instructions for first time users to create required files and folders 2023-05-15 16:53:31 +02:00
Paillat
e9da4686f4 refactor(script.py): remove unused imports and variables 2023-05-15 16:53:09 +02:00
Paillat
7fe78c3796 refactor(main.py): extract music credits to a variable and add it to the video description
feat(main.py): add translated title and description to meta_FR.txt file
feat(main.py): use the new video description variable when uploading the video
2023-05-15 16:29:22 +02:00
Paillat
da257e7b39 Added and fixed a whole bunch of things 2023-05-15 15:35:08 +02:00
Paillat
393600ad94 fix(speak.py): handle TTS initialization error when gpu is not available 2023-05-15 12:32:14 +02:00
Paillat
be20abb833 feat(ideas.py): add support for generating ideas for a specific subject
feat(ideas.py): add support for appending new ideas to existing ideas.json file
2023-05-15 11:50:33 +02:00