From 0148cf3d7cb9e8543e68ddfe69d6e36a9ebd1179 Mon Sep 17 00:00:00 2001 From: Matq Date: Mon, 26 Aug 2024 00:43:02 +0300 Subject: [PATCH] TrackMagic2 working prototype --- TrackMagic.exe | Bin 0 -> 184320 bytes Uninstall.exe | Bin 0 -> 141312 bytes readme.md | 38 ++ requirements.txt | 5 + trackmagic_src/TrackMagic.bat | 4 + trackmagic_src/TrackMagic.py | 355 ++++++++++++++++++ trackmagic_src/Uninstall.bat | 5 + trackmagic_src/classes/Logger.py | 57 +++ trackmagic_src/classes/Records.py | 91 +++++ trackmagic_src/classes/__init__.py | 0 .../classes/static/Configuration.py | 7 + trackmagic_src/classes/static/Downloader.py | 27 ++ trackmagic_src/classes/static/FFmpeg.py | 106 ++++++ trackmagic_src/classes/static/FileExplorer.py | 86 +++++ .../classes/static/ImageProcessing.py | 18 + trackmagic_src/classes/static/UserChoice.py | 13 + trackmagic_src/classes/static/UserInput.py | 8 + trackmagic_src/classes/static/Utils.py | 15 + trackmagic_src/classes/static/__init__.py | 0 19 files changed, 835 insertions(+) create mode 100644 TrackMagic.exe create mode 100644 Uninstall.exe create mode 100644 readme.md create mode 100644 requirements.txt create mode 100644 trackmagic_src/TrackMagic.bat create mode 100644 trackmagic_src/TrackMagic.py create mode 100644 trackmagic_src/Uninstall.bat create mode 100644 trackmagic_src/classes/Logger.py create mode 100644 trackmagic_src/classes/Records.py create mode 100644 trackmagic_src/classes/__init__.py create mode 100644 trackmagic_src/classes/static/Configuration.py create mode 100644 trackmagic_src/classes/static/Downloader.py create mode 100644 trackmagic_src/classes/static/FFmpeg.py create mode 100644 trackmagic_src/classes/static/FileExplorer.py create mode 100644 trackmagic_src/classes/static/ImageProcessing.py create mode 100644 trackmagic_src/classes/static/UserChoice.py create mode 100644 trackmagic_src/classes/static/UserInput.py create mode 100644 trackmagic_src/classes/static/Utils.py create mode 100644 trackmagic_src/classes/static/__init__.py diff --git a/TrackMagic.exe b/TrackMagic.exe new file mode 100644 index 0000000000000000000000000000000000000000..e26565c2c49b183bbb08a696f8850235ac77bf61 GIT binary patch literal 184320 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%0ABzWC_i&w=fj5=cx_}xNk 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 literal 0 HcmV?d00001 diff --git a/Uninstall.exe b/Uninstall.exe new file mode 100644 index 0000000000000000000000000000000000000000..094bad6fb53fd9e2bdc05936596d405e425fec82 GIT binary patch literal 141312 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 literal 0 HcmV?d00001 diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..a563c30 --- /dev/null +++ b/readme.md @@ -0,0 +1,38 @@ +# TrackMagic: YouTube downloader for personal use +### Why do I need this thing +Idk maybe u want to download a few videos to keep them or smth +### How it work?? +Open the `TrackMagic` file and follow the instructions by giving a video/playlist link and the application will start downloading from youtube. +The output folders are `./Video/` and `./Audio/` + +## Setup this thing +### First of all, what do you need? +- You need a working `Python interpreter` +- And you need `ffmpeg` + +To setup literally just open `TrackMagic` and it will setup itself. +### You need Python +If you're met with the message \ +`'py' is not recognized as an internal or external command,` \ +`operable program or batch file.` \ +Install a [Python Interpreter](https://www.python.org/downloads/) +### If that doesn't work, then you might need be missing `pip` from the PATH +Maybe you're asking questions like... wtf is pip and why are you screaming PATH. \ +Bro, just don't question it.. +### How to pip if has no pip +1. Install python if not already installed. \ + 1.1 If you don't have python and you're installing, then enable the option `Add to %PATH%` and you will get the pip. +2. Now if you already had python and pip is missing, head over to windows search and type `Edit the system enviroment variables`. +3. Click the first result that shows up and in the next window select `Enviroment Variables...`. +4. Another window should appear, now just click `Path` or `PATH` in the `User variables for X` section. +5. Select the option `Edit` and another window should appear. +6. Now select `New` and we will have to add the path to the directory that contains `pip.exe`. \ + 6.1 Head over to `C:\Users\%USERNAME%\AppData\Local\Programs\Python`. \ + 6.2 Find the python version that you just installed and enter the `Scripts` folder. \ + 6.3 Copy the path to this directory, should look something like `C:\Users\%USERNAME%\AppData\Local\Programs\Python\PythonYOURVERSION\Scripts` +7. Now you should have pip added, you can exit all the windows by clicking `Ok`. +### If that doesn't work, then you might need be missing `ffmpeg` from the PATH +Basically download [ffmpeg for windows](https://www.gyan.dev/ffmpeg/builds/) and add it to path like in the pip tutorial above ^ ^ ^ \ +It's recommended to download the `ffmpeg full` version(haven't tested the essentials version) +### If it still doesn't work, it's ggs +Well whatever it is you can try messaging the creator with the logs files (good luck) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..4d676ae --- /dev/null +++ b/requirements.txt @@ -0,0 +1,5 @@ +PyGetWindow +pywin32 +yt-dlp +Pillow +ffmpy diff --git a/trackmagic_src/TrackMagic.bat b/trackmagic_src/TrackMagic.bat new file mode 100644 index 0000000..2b3e7fc --- /dev/null +++ b/trackmagic_src/TrackMagic.bat @@ -0,0 +1,4 @@ +@echo off +cls +py TrackMagic.py +pause diff --git a/trackmagic_src/TrackMagic.py b/trackmagic_src/TrackMagic.py new file mode 100644 index 0000000..a4cec11 --- /dev/null +++ b/trackmagic_src/TrackMagic.py @@ -0,0 +1,355 @@ +""" TrackMagic is a YouTube video/audio downloader. + By default, it downloads the highest quality video with + an upper limit of 1080p and best audio available. + + Use it on individual videos or entire playlists. + +Issues: + - Does not support EC3/AC3 and 6 channel audio (not fully tested) + +Dependencies: + - yt_dlp used to download YouTube streams. + - FFmpeg used to convert and merge streams. + +Made by mαtq on Discord +""" +import urllib.parse + +from classes.static.UserChoice import StreamResult, UserChoice +from classes.static.Configuration import Configuration +from classes.static.UserInput import UserInput +from classes.Logger import Logger, Launcher +from classes.static.Utils import Utils +from urllib import parse +import subprocess +import requests +import atexit +import sys +import os + +LAUNCHER: Launcher = Launcher() +LOGGER: Logger = LAUNCHER.logger +LOGGER.set_log_to_file(True) + +try: + from classes.static.ImageProcessing import ImageProcessing + from classes.static.FileExplorer import FileExplorer + from classes.static.Downloader import Downloader + from classes.Records import Records, Record + from classes.static.FFmpeg import FFmpeg + import win32clipboard + import yt_dlp as youtube # type: ignore + import ffmpy +except ModuleNotFoundError as e: + LOGGER.log('LIBRARIES', 'Installing libraries..') + LOGGER.log('LIBRARIES', f'Reason: {e}') + subprocess.call(['pip', 'install', '-r', '..\\requirements.txt']) + LOGGER.log('LIBRARIES', 'Installed successfully!') + subprocess.call([sys.executable] + sys.argv) + exit() +except Exception as e: + LOGGER.log('LIBRARIES', f'Error: {e}') + exit() + + +class TrackMagic: + def __init__(self): + self.storage: Records = None # type: ignore + + def init(self) -> None: + FFmpeg.init(LOGGER) + FFmpeg.check_ffmpeg() + + self.storage = Records(LOGGER) + self.storage.load_records() + + @staticmethod + def _find_thumbnail(thumbnails: list[dict]) -> tuple[str, bytes]: + for thumbnail in sorted(thumbnails, key=lambda x: int(x['id']), reverse=True): + thumbnail_url: str = thumbnail['url'] + + response = requests.get(thumbnail_url) + if response.status_code == 404: + continue + + if response.status_code == 200: + return thumbnail_url, response.content + else: + raise Exception(f'Other status code than 200 and 404 received: {response.status_code}') + return None, None # type: ignore + + @staticmethod + def _choose_best_stream(streams: dict, stream_choice: int) -> tuple[int, tuple]: + filtered_streams = filter( + lambda x: True if x.get("format_note") != 'Premium' and x.get("filesize") is not None else False, streams) + sorted_by_resolution = sorted(filtered_streams, + key=lambda x: (Utils.none_to_zero(x.get('height')), + Utils.none_to_zero(x.get('filesize'))), + reverse=True) + + progressive_candidate = None + interlaced_video = None + interlaced_audio = None + for stream in sorted_by_resolution: + video_codec = stream.get('vcodec') + audio_codec = stream.get('acodec') + if video_codec != 'none' and audio_codec != 'none' and progressive_candidate is None: + progressive_candidate = stream + elif video_codec != 'none' and audio_codec == 'none' and interlaced_video is None: + interlaced_video = stream + elif video_codec == 'none' and not audio_codec in ('none', 'ec-3') and stream['audio_channels'] != 6 and interlaced_audio is None: # todo: more test cases + interlaced_audio = stream + + if interlaced_video is not None and interlaced_audio is not None: + break + + if stream_choice == UserChoice.VIDEO: + if interlaced_video is None or progressive_candidate is not None and progressive_candidate['height'] > \ + interlaced_video['height']: + return StreamResult.PROGRESSIVE_VIDEO, (progressive_candidate,) + elif interlaced_video is not None: + return StreamResult.INTERLACED_VIDEO_ONLY, (interlaced_video,) + else: + return StreamResult.NO_STREAM, None # type: ignore + + elif stream_choice == UserChoice.AUDIO: + if interlaced_audio is not None: + return StreamResult.INTERLACED_AUDIO_ONLY, (interlaced_audio,) + elif progressive_candidate is not None: + return StreamResult.PROGRESSIVE_VIDEO, (progressive_candidate,) + return StreamResult.NO_STREAM, None # type: ignore + + elif stream_choice == UserChoice.VIDEO_AND_AUDIO: + if interlaced_video is not None and interlaced_audio is not None: + return StreamResult.INTERLACED_VIDEO_AUDIO, (interlaced_video, interlaced_audio) + elif progressive_candidate is not None: + return StreamResult.PROGRESSIVE_VIDEO, (progressive_candidate,) + else: + return StreamResult.NO_STREAM, None # type: ignore + + def order_playlist(self, playlist_url: str, user_choice: int) -> None: + with youtube.YoutubeDL({'quiet': True, 'extract_flat': True}) as ydl: + info = ydl.extract_info(playlist_url, download=False) + for video_entry in info['entries']: + video_url = f'https://www.youtube.com/watch?v={video_entry["id"]}' + self.order(video_url, user_choice, False) + + def order(self, video_url: str, user_choice: int, big_info: bool = True) -> None: + video_id: str = Utils.get_video_id_from_url(video_url) + data_record: Record = self.storage.get_record(video_id) + if data_record is None: + data_record = Record() + data_record.video_id = video_id + else: + if data_record.check_file_integrity(): # files are missing, forget them + self.storage.save_records() + + video_wanted = user_choice == UserChoice.VIDEO or user_choice == UserChoice.VIDEO_AND_AUDIO + audio_wanted = user_choice == UserChoice.AUDIO or user_choice == UserChoice.VIDEO_AND_AUDIO + video_on_disk = data_record.video + audio_on_disk = data_record.audio + + video_needed = video_on_disk is None and video_wanted + audio_needed = audio_on_disk is None and audio_wanted + + ordered_string = ("Video", "Audio", "Video and Audio")[user_choice] + if big_info: + LOGGER.log('Order', f'Ordered {ordered_string} from `{Utils.get_video_id_from_url(video_url)}`') + LOGGER.log('Order', f'Video: {video_on_disk}') + LOGGER.log('Order', f'Audio: {audio_on_disk}') + LOGGER.log('Order', f'') + + if not video_needed and not audio_needed: + LOGGER.log('Order', f'Ordered {ordered_string} from `{video_id}` | No work to do on {data_record.title}') + return + + with youtube.YoutubeDL({'quiet': True, 'noplaylist': True}) as ydl: + try: + info = ydl.extract_info(video_url, download=False) + except youtube.utils.DownloadError as e: + LOGGER.log('Order', f'Ordered {ordered_string} from `{video_id}` | {e}') + return + streams = info.get('formats', []) + info.get('adaptive_fmts', []) + + video_title: str = info.get('title', None) + video_length: int = info.get('duration', None) + if big_info: + LOGGER.log('Order', f'Title: {video_title}') + LOGGER.log('Order', f'Length: {video_length}') + + thumbnail_path: str = None # type: ignore + thumbnail_url, thumbnail = TrackMagic._find_thumbnail(info['thumbnails']) + if thumbnail: + purl = parse.urlparse(thumbnail_url) + url_path = purl.path + + thumbnail_extension = url_path[url_path.rfind('.'):] + thumbnail_path = os.path.join(Configuration.temp_dir, f'thumbnail{thumbnail_extension}') + FileExplorer.create_folder(Configuration.temp_dir) + with open(thumbnail_path, 'wb') as file: + file.write(thumbnail) + thumbnail_path = ImageProcessing.convert_to_jpg(thumbnail_path) + data_record.thumbnail = thumbnail_url + + stream_result: int = None # type: ignore + stream_choices: tuple[dict] = None # type: ignore + if video_needed and audio_needed: + if big_info: + LOGGER.log('Order', f'Searching video and audio..') + stream_result, stream_choices = TrackMagic._choose_best_stream(streams, UserChoice.VIDEO_AND_AUDIO) + elif video_needed: + if big_info: + LOGGER.log('Order', f'Searching video..') + stream_result, stream_choices = TrackMagic._choose_best_stream(streams, UserChoice.VIDEO) + if stream_result == StreamResult.INTERLACED_VIDEO_ONLY and audio_on_disk is None: + if big_info: + LOGGER.log('Order', f'Nevermind, found interlaced video WITHOUT audio.') + LOGGER.log('Order', f'Searching video and audio..') + stream_result, stream_choices = TrackMagic._choose_best_stream(streams, UserChoice.VIDEO_AND_AUDIO) + elif audio_needed: + if big_info: + LOGGER.log('Order', f'Searching audio..') + stream_result, stream_choices = TrackMagic._choose_best_stream(streams, UserChoice.AUDIO) + + if stream_result == StreamResult.PROGRESSIVE_VIDEO: + if big_info: + LOGGER.log('Order', f'Progressive video has been found!') + LOGGER.log('Order', f'Downloading progressive video..') + progressive_format_id = stream_choices[0]['format_id'] + original_progressive = Downloader.download_stream(progressive_format_id, video_url) + if audio_needed: + if big_info: + LOGGER.log('Order', f'Extracting audio from video..') + audio_extracted = FFmpeg.process_audio_from_video(original_progressive) + audio_path = FileExplorer.move_to_folder(audio_extracted, Configuration.audio_dir, original_progressive) + data_record.audio = audio_path + data_record.audio_stream = progressive_format_id + if video_needed: + video_path = FileExplorer.move_to_folder(original_progressive, Configuration.video_dir) + data_record.video = video_path + data_record.video_stream = progressive_format_id + + elif stream_result == StreamResult.INTERLACED_VIDEO_AUDIO: + if big_info: + LOGGER.log('Order', f'Interlaced video and audio have been found!') + LOGGER.log('Order', f'Downloading interlaced audio..') + video_format_id = stream_choices[0]['format_id'] + audio_format_id = stream_choices[1]['format_id'] + + original_audio = Downloader.download_stream(audio_format_id, video_url) + if big_info: + LOGGER.log('Order', f'Converting audio file..') + converted_audio = FFmpeg.convert_audio(original_audio) + if audio_needed: + audio_thumbnail = FFmpeg.add_thumbnail_to_media_file(converted_audio, thumbnail_path) + audio_path = FileExplorer.move_to_folder(audio_thumbnail, Configuration.audio_dir, original_audio) + data_record.audio = audio_path + data_record.audio_stream = audio_format_id + if video_needed: + if big_info: + LOGGER.log('Order', f'Downloading interlaced video..') + original_video = Downloader.download_stream(video_format_id, video_url) + if big_info: + LOGGER.log('Order', f'Merging video and audio..') + video_merged = FFmpeg.merge_video_audio(original_video, converted_audio) + video_thumbnail = FFmpeg.add_thumbnail_to_media_file(video_merged, thumbnail_path) + FileExplorer.create_folder(Configuration.video_dir) + video_path = FileExplorer.move_to_folder(video_thumbnail, Configuration.video_dir, original_video) + data_record.video = video_path + data_record.video_stream = video_format_id + + elif stream_result == StreamResult.INTERLACED_VIDEO_ONLY: # audio_on_disk must exist to get here + if big_info: + LOGGER.log('Order', f'Interlaced video has been found!') + LOGGER.log('Order', f'Downloading interlaced video..') + if video_needed: + video_format_id = stream_choices[0]['format_id'] + original_video = Downloader.download_stream(video_format_id, video_url) + if big_info: + LOGGER.log('Order', f'Merging video and audio(on disk)..') + video_merged = FFmpeg.merge_video_audio(original_video, audio_on_disk) + video_thumbnail = FFmpeg.add_thumbnail_to_media_file(video_merged, thumbnail_path) + FileExplorer.create_folder(Configuration.video_dir) + video_path = FileExplorer.move_to_folder(video_thumbnail, Configuration.video_dir, original_video) + data_record.video = video_path + data_record.video_stream = video_format_id + + elif stream_result == StreamResult.INTERLACED_AUDIO_ONLY: + if big_info: + LOGGER.log('Order', f'Interlaced audio has been found!') + LOGGER.log('Order', f'Downloading interlaced audio..') + if audio_needed: + audio_format_id = stream_choices[0]['format_id'] + original_audio = Downloader.download_stream(audio_format_id, video_url) + if big_info: + LOGGER.log('Order', f'Converting audio file..') + audio_converted = FFmpeg.convert_audio(original_audio) + audio_thumbnail = FFmpeg.add_thumbnail_to_media_file(audio_converted, thumbnail_path) + audio_path = FileExplorer.move_to_folder(audio_thumbnail, Configuration.audio_dir, original_audio) + data_record.audio = audio_path + data_record.audio_stream = audio_format_id + + elif stream_result == StreamResult.NO_STREAM: + LOGGER.log('TrackMagic', f'Ordered {ordered_string} from `{video_id}` | Weirdly no streams were found for the user') + return + + LOGGER.log('Order', f'Ordered {ordered_string} from `{video_id}` | {video_title} is done!') + data_record.title = video_title + data_record.length = video_length + self.storage.update_record(data_record) + self.storage.save_records() + FileExplorer.cleanup_temp() + + +def main(): + instance = TrackMagic() + instance.init() + + instance.storage.check_integrity() + + while True: + print() + print('To start downloading video/audio, please provide the url of the video or playlist:') + print('(note if you want to download a playlist, make sure the url starts as follows:') + print(' https://youtube.com/playlist?list=PLAYLIST_ID)') + media_url = input('> ') + + purl = parse.urlparse(media_url) + url_path = purl.path + if url_path == '/watch' or media_url.startswith('https://youtu.be/'): + url_type = 0 + print('URL type is a video') + elif url_path == '/playlist': + url_type = 1 + print('URL type is a playlist') + else: + raise Exception(f'Could not detect url type: {media_url}') + + print() + print('Now pick the type of media:') + print('[V]ideo or [A]udio (or [B]oth)') + media_type = UserInput.choice_lowercase(['v', 'a', 'b'], '> ') + + if media_type == 'v': + user_choice = UserChoice.VIDEO + print('Picked video media type') + elif media_type == 'a': + user_choice = UserChoice.AUDIO + print('Picked audio media type') + elif media_type == 'b': + user_choice = UserChoice.VIDEO_AND_AUDIO + print('Picked video and audio media types') + else: + raise Exception(f'Invalid media type provided by user: {media_type}') + + order_func = (instance.order, instance.order_playlist)[url_type] + order_func(media_url, user_choice) + + +def cleanup(): + FileExplorer.cleanup_temp() + + +if __name__ == '__main__': + atexit.register(cleanup) + main() diff --git a/trackmagic_src/Uninstall.bat b/trackmagic_src/Uninstall.bat new file mode 100644 index 0000000..844d246 --- /dev/null +++ b/trackmagic_src/Uninstall.bat @@ -0,0 +1,5 @@ +echo off +cls +pip uninstall -r ..\requirements.txt -y +echo Everything has been cleaned up! +pause diff --git a/trackmagic_src/classes/Logger.py b/trackmagic_src/classes/Logger.py new file mode 100644 index 0000000..ea52b25 --- /dev/null +++ b/trackmagic_src/classes/Logger.py @@ -0,0 +1,57 @@ +from datetime import datetime +from time import time +import traceback +import os + +LOGS_DIRECTORY = '../logs/' + + +class Logger: + log_file_extension = 'txt' + + def __init__(self, log_file_name: str, log_to_file: bool = False): + self.log_file_name: str = Logger.rename_file_if_exists(log_file_name, Logger.log_file_extension) + self.log_to_file: bool = log_to_file + + def set_log_to_file(self, state: bool) -> None: + self.log_to_file = state + + def run(self, func) -> None: + try: + func() + except Exception as e: + error_string = traceback.format_exc() + self.log('ERROR', f'An error has occurred: {e}\nLog written to {self.log_file_name}\n{error_string}') + except KeyboardInterrupt: + self.log('EXIT', 'Closed via keyboard interrupt') + + def log(self, subsection: str = 'NORMAL', text: str = '') -> None: + log_text = f'[{datetime.now().strftime("%m/%d/%Y %H:%M:%S")}][{subsection}] {text}\n' + print(log_text, end='') + + if self.log_to_file: + if not os.path.exists(LOGS_DIRECTORY): + os.mkdir(LOGS_DIRECTORY) + with open(f'{LOGS_DIRECTORY}{self.log_file_name}', 'a', encoding='utf-8') as log_file: + log_file.write(log_text) + + @staticmethod + def rename_file_if_exists(file_name: str, file_extension: str) -> str: + file_number = 0 + search_file = '.'.join([file_name, file_extension]) + while os.path.exists(search_file): + file_number += 1 + search_file = f'{file_name} {file_number}{file_extension}' + return search_file + + +class Launcher: + def __init__(self): + self.startup_date_timestamp: datetime = datetime.now() + self.startup_timestamp: float = time() + + self.startup_timestamp_int: int = int(self.startup_timestamp) + self.logger = Logger(f'{datetime.now().strftime("%Y-%m-%d %H-%M-%S")}') + + def launch(self, launch_main) -> None: + self.logger.run(launch_main) diff --git a/trackmagic_src/classes/Records.py b/trackmagic_src/classes/Records.py new file mode 100644 index 0000000..7b8d527 --- /dev/null +++ b/trackmagic_src/classes/Records.py @@ -0,0 +1,91 @@ +from classes.static.Configuration import Configuration +from classes.static.FileExplorer import FileExplorer +from classes.Logger import Logger +import os + + +class Records: + def __init__(self, logger: Logger): + self.logger = logger + self.records: dict = {} + + def check_integrity(self) -> None: + for record in self.records.values(): + record.check_file_integrity() + self.save_records() + + def load_records(self) -> None: + content = FileExplorer.read_or_create_empty(Configuration.records_file) + records_unparsed = [attributes for attributes in content.split(Configuration.record_seperator)] + + for attributes in records_unparsed: + record = Record() + if record.parse(attributes): + self.records[record.video_id] = record + + self.logger.log('Records', f'Loaded {len(self.records)} record/s') + + def save_records(self) -> None: + new_content = '' + for record in self.records.values(): + new_content += record.serialize() + + with open(Configuration.records_file, 'w', encoding='utf-8') as f: + f.write(new_content) + + def get_record(self, video_id: str): + return self.records.get(video_id, None) + + def update_record(self, record): + video_id: str = record.video_id + self.records[video_id] = record + + +class Record: + def __init__(self): + self.video_id: str = None # type: ignore + self.title: str = None # type: ignore + self.length: int = None # type: ignore + self.video: str = None # type: ignore + self.video_stream: str = None # type: ignore + self.audio: str = None # type: ignore + self.audio_stream: str = None # type: ignore + self.thumbnail: str = None # type: ignore + + def check_file_integrity(self) -> bool: + changed_data = False + if self.video is not None and not os.path.exists(self.video): + self.video = None + self.video_stream = None + changed_data = True + + if self.audio is not None and not os.path.exists(self.audio): + self.audio = None + self.audio_stream = None + changed_data = True + + return changed_data + + def serialize(self) -> str: + return '\n'.join(f'{key}={item}' for key, item in self.__dict__.items()) + '\n' + Configuration.record_seperator + + def parse(self, unparsed_attributes: str) -> bool: + attributes = [attribute.split('=') for attribute in unparsed_attributes.splitlines(keepends=False)] + + if not attributes: + return False # Drop bad records (empty lines, corrupted, etc.) + + for key, value in attributes: + if value == 'None': + value = None + elif value == 'False': + value = False + elif value == 'True': + value = True + elif key == 'length' and value is not None: + value = int(value) + setattr(self, key, value) + return True + + def __repr__(self): + return str(self.__dict__) diff --git a/trackmagic_src/classes/__init__.py b/trackmagic_src/classes/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/trackmagic_src/classes/static/Configuration.py b/trackmagic_src/classes/static/Configuration.py new file mode 100644 index 0000000..843d2df --- /dev/null +++ b/trackmagic_src/classes/static/Configuration.py @@ -0,0 +1,7 @@ +class Configuration: + records_file: str = '../records' + record_seperator: str = '-= End of record =-\n' + video_dir: str = '../Videos/' + audio_dir: str = '../Audio/' + temp_dir: str = '../temp/' + audio_ext: str = '.m4a' diff --git a/trackmagic_src/classes/static/Downloader.py b/trackmagic_src/classes/static/Downloader.py new file mode 100644 index 0000000..ffa8d0a --- /dev/null +++ b/trackmagic_src/classes/static/Downloader.py @@ -0,0 +1,27 @@ +from classes.static.Configuration import Configuration +import yt_dlp as youtube +import os + + +class Downloader: + stream_filepath: str = None # type: ignore + stream_filename: str = None # type: ignore + + @staticmethod + def _set_stream_filepath_hook(data: dict) -> None: + if data['status'] == 'finished': + Downloader.stream_filepath = data['info_dict']['filename'] + Downloader.stream_filename = os.path.basename(Downloader.stream_filepath) + + @staticmethod + def download_stream(format_id: str, video_url: str) -> str: + downloader_options = {'outtmpl': f'{Configuration.temp_dir}%(title)s.%(ext)s', + 'progress_hooks': [Downloader._set_stream_filepath_hook], + 'format': format_id, + 'noplaylist': True, + 'quiet': True} + + with youtube.YoutubeDL(downloader_options) as ydl: + ydl.download(video_url) + + return Downloader.stream_filepath diff --git a/trackmagic_src/classes/static/FFmpeg.py b/trackmagic_src/classes/static/FFmpeg.py new file mode 100644 index 0000000..8172091 --- /dev/null +++ b/trackmagic_src/classes/static/FFmpeg.py @@ -0,0 +1,106 @@ +from classes.static.Configuration import Configuration +from classes.Logger import Logger +import subprocess +import ffmpy +import os + + +class FFmpeg: + logger: Logger = None # type: ignore + + @staticmethod + def init(logger: Logger) -> None: + FFmpeg.logger = logger + + @staticmethod + def check_ffmpeg(): + try: + ffmpeg_env = os.getenv('FFMPEG_BINARY', 'ffmpeg') + exit_code = subprocess.call([ffmpeg_env, '-version', '-loglevel panic'], stdout=subprocess.DEVNULL) + except FileNotFoundError: + FFmpeg.logger.log('FFmpeg', 'FFmpeg was not found on your system') + FFmpeg.logger.log('FFmpeg', 'Either you\'ve never downloaded FFmpeg') + FFmpeg.logger.log('FFmpeg', ' or you haven\'t added it to PATH') + FFmpeg.logger.log('FFmpeg', '') + FFmpeg.logger.log('FFmpeg', 'Check readme.md for more information') + exit(-1) + + # @staticmethod + # def process_video_stream(video_stream, progressive: bool): + # video_at = video_stream.download(Configuration.temp_video_dir) + # video_file = os.path.basename(video_at) + # video_filename, video_ext = os.path.splitext(video_file) + # if not progressive: + # return video_at + # + # video_path = f'{Configuration.video_dir}{video_filename}.mp4' + # ffmpeg = ffmpy.FFmpeg(inputs={video_at: None}, + # outputs={video_path: None}, + # global_options='-y -loglevel warning') + # ffmpeg.run() + # os.remove(video_at) + # return video_path + + @staticmethod + def process_audio_from_video(video_path: str): + video_directory = os.path.abspath(video_path) + video_file = os.path.basename(video_path) + video_filename, _ = os.path.splitext(video_file) + + audio_path = os.path.join(video_directory, f'{video_filename}.{Configuration.audio_ext}') + + ffmpeg = ffmpy.FFmpeg(inputs={video_path: None}, + outputs={audio_path: None}, + global_options='-y -loglevel warning') + ffmpeg.run() + return audio_path + + @staticmethod + def convert_audio(audio_path: str): + audio_directory = os.path.dirname(audio_path) + audio_file = os.path.basename(audio_path) + audio_filename, audio_extension = os.path.splitext(audio_file) + + if audio_extension == Configuration.audio_ext: + return audio_path + + new_audio_path = os.path.join(audio_directory, f'{audio_filename}{Configuration.audio_ext}') + + ffmpeg = ffmpy.FFmpeg(inputs={audio_path: None}, + outputs={new_audio_path: None}, + global_options='-y -loglevel warning') + ffmpeg.run() + return new_audio_path + + @staticmethod + def merge_video_audio(video_path: str, audio_path: str): + video_directory = os.path.dirname(video_path) + video_file = os.path.basename(video_path) + video_filename, _ = os.path.splitext(video_file) + new_video_path = os.path.join(video_directory, f'{video_filename}.merge.mp4') + + ffmpeg = ffmpy.FFmpeg(inputs={video_path: None, audio_path: None}, + outputs={new_video_path: '-c copy -map 0:v:0 -map 1:a:0'}, + global_options='-y -loglevel warning') + ffmpeg.run() + return new_video_path + + @staticmethod + def add_thumbnail_to_media_file(media_path: str, thumbnail_path: str): # Either video or audio (apparently) + if thumbnail_path is None: + return media_path + + media_directory = os.path.dirname(media_path) + media_file = os.path.basename(media_path) + media_filename, media_extension = os.path.splitext(media_file) + new_media_path = os.path.join(media_directory, f'{media_filename}.thumbnail{media_extension}') + + try: + ffmpeg = ffmpy.FFmpeg(inputs={media_path: None, thumbnail_path: None}, + outputs={new_media_path: '-map 1 -map 0 -c copy -disposition:0 attached_pic'}, + global_options='-y -loglevel warning') + ffmpeg.run() + except ffmpy.FFRuntimeError: + return media_path + + return new_media_path diff --git a/trackmagic_src/classes/static/FileExplorer.py b/trackmagic_src/classes/static/FileExplorer.py new file mode 100644 index 0000000..dae0d97 --- /dev/null +++ b/trackmagic_src/classes/static/FileExplorer.py @@ -0,0 +1,86 @@ +from classes.static.Configuration import Configuration +import pygetwindow as gw +import shutil +import os + + +class FileExplorer: + @staticmethod + def sanitize_filename(filename: str): + invalid_chars = ['<', '>', ':', '"', '/', '\\', '|', '?', '*'] + for char in invalid_chars: + filename = filename.replace(char, '_') + return filename + + @staticmethod + def remove_file(filepath: str): + os.remove(filepath) + + @staticmethod + def move_file(source_filepath: str, destination_filepath: str) -> str: + return shutil.move(source_filepath, destination_filepath) + + @staticmethod + def move_to_folder(source_filepath: str, destination_folder: str, rename_to_path_filename: str = None) -> str: + if not os.path.exists(destination_folder): + os.mkdir(destination_folder) + + if rename_to_path_filename: + file: str = os.path.basename(rename_to_path_filename) + _, source_extension = os.path.splitext(source_filepath) + rename_filename, _ = os.path.splitext(file) + filename: str = f'{rename_filename}{source_extension}' + else: + filename: str = os.path.basename(source_filepath) + destination_filepath: str = os.path.join(destination_folder, filename) + return shutil.move(source_filepath, destination_filepath) + + @staticmethod + def create_folder(folder_path): + if not os.path.exists(folder_path): + os.mkdir(folder_path) + + @staticmethod + def is_folder_open(folder_path): + folder_path = os.path.abspath(folder_path) + folder_name = os.path.basename(folder_path) + for window in gw.getWindowsWithTitle(folder_name): + if folder_path in window.title: + return True + return False + + @staticmethod + def open_folder_in_explorer(folder_path): + try: + if not FileExplorer.is_folder_open(folder_path): + os.startfile(os.path.abspath(folder_path)) + else: + print(f"Folder '{folder_path}' is already open.") + except Exception as e: + print("Error:", e) + + @staticmethod + def cleanup_temp(): + path = f'{os.getcwd()}\\{Configuration.temp_dir}' + if os.path.exists(path): + for file in os.listdir(path): + os.remove(path+file) + os.rmdir(path) + + # @staticmethod + # def update_records(): + # new_content = '' + # for record in gRecords.values(): + # new_content += record.Parse() + # + # with open(Configuration.records_file, 'w', encoding='utf-8') as f: + # f.write(new_content) + + @staticmethod + def read_or_create_empty(filepath: str) -> str: + if not os.path.exists(filepath): + with open(filepath, 'w', encoding='utf-8'): + pass + + with open(filepath, 'r', encoding='utf-8') as f: + return f.read() diff --git a/trackmagic_src/classes/static/ImageProcessing.py b/trackmagic_src/classes/static/ImageProcessing.py new file mode 100644 index 0000000..6acdf23 --- /dev/null +++ b/trackmagic_src/classes/static/ImageProcessing.py @@ -0,0 +1,18 @@ +from PIL import Image +import os + + +class ImageProcessing: + @staticmethod + def convert_to_jpg(image_path: str) -> str: + image_file = os.path.basename(image_path) + image_filename, image_extension = os.path.splitext(image_file) + + if image_filename == '.jpg': + return image_path + + converted_path = os.path.join(os.path.dirname(image_path), f'{image_filename}.jpg') + with Image.open(image_path) as img: + rgb_img = img.convert('RGB') # just for safety + rgb_img.save(converted_path) + return converted_path diff --git a/trackmagic_src/classes/static/UserChoice.py b/trackmagic_src/classes/static/UserChoice.py new file mode 100644 index 0000000..04a2834 --- /dev/null +++ b/trackmagic_src/classes/static/UserChoice.py @@ -0,0 +1,13 @@ +class UserChoice: + VIDEO = 0 + AUDIO = 1 + VIDEO_AND_AUDIO = 2 + AUDIO_AND_VIDEO = 2 + + +class StreamResult: + NO_STREAM = 0 + INTERLACED_VIDEO_ONLY = 1 + INTERLACED_AUDIO_ONLY = 2 + INTERLACED_VIDEO_AUDIO = 3 + PROGRESSIVE_VIDEO = 4 diff --git a/trackmagic_src/classes/static/UserInput.py b/trackmagic_src/classes/static/UserInput.py new file mode 100644 index 0000000..a40c4e9 --- /dev/null +++ b/trackmagic_src/classes/static/UserInput.py @@ -0,0 +1,8 @@ +class UserInput: + @staticmethod + def choice_lowercase(choices: list, prompt: str = ''): + while True: + user_input = input(prompt) + + if user_input.lower() in choices: + return user_input diff --git a/trackmagic_src/classes/static/Utils.py b/trackmagic_src/classes/static/Utils.py new file mode 100644 index 0000000..4eded7a --- /dev/null +++ b/trackmagic_src/classes/static/Utils.py @@ -0,0 +1,15 @@ +import re + + +class Utils: + @staticmethod + def none_to_zero(value): + if value is None: + return 0 + return value + + @staticmethod + def get_video_id_from_url(video_url: str) -> str: + pattern = r'(?:v=|\/)([0-9A-Za-z_-]{11}).*' + match = re.search(pattern, video_url) + return match.group(1) if match else None diff --git a/trackmagic_src/classes/static/__init__.py b/trackmagic_src/classes/static/__init__.py new file mode 100644 index 0000000..e69de29