Files
video-converter/DEVELOPMENT_PLAN.md
2025-11-02 12:37:09 +01:00

3.0 KiB

Development Plan: Video Converter

This document outlines the development plan for the Video Converter project, aiming to create a standalone Python tool for converting video files into DaVinci Resolve compatible formats.

Overall Goal

Develop a user-friendly, standalone Python tool to convert video files into formats compatible with Davinci Resolve (Free edition on Linux) to improve editing workflows for content creators.

Completed Features

  • Core Conversion Logic: Implemented video conversion using ffmpeg with dnxhd codec and pcm_s16le audio, outputting to .mov container.
  • Quality Profile Picker: Added --quality argument (low, medium, high, archive) to control dnxhd profiles.
  • Filename Fail-safe: Implemented logic to append _1, _2, etc., to output filenames if a file with the same name already exists.
  • yt-dlp Integration: Added --url argument to download videos from YouTube (and other supported sites) using yt-dlp before conversion.
  • PyInstaller Bundling: Successfully bundled the application into a standalone executable for Linux.
  • Robust Download Path Handling: Ensured yt-dlp downloads directly to the user-specified output directory (or current working directory if not specified), resolving os.path.exists() issues within the PyInstaller environment.
  • Basic Error Handling & Logging: Suppressed verbose yt-dlp output and redirected ffmpeg output to ffmpeg_output.log for detailed error inspection.

Current Priorities (Next Steps)

  1. Implement GUI: Develop a graphical user interface for easier interaction, including file selection, quality profile choice, and URL input. (High Priority)
  2. Implement Browser Cookies for YouTube Authorization: Revisit and implement --cookies-from-browser functionality for yt-dlp to handle age-restricted or private YouTube videos. (Deferred, now higher priority)
  3. Refine Error Handling/Logging: Implement more user-friendly error messages, potentially displaying the last few lines of the log file directly in the console upon failure, and providing clear instructions to check the full log.

Future Considerations

  • Batch Processing: Allow conversion of multiple files or URLs in a single run.
  • Configuration File: Implement a configuration file (e.g., YAML, JSON) for persistent settings.
  • Progress Bar: Integrate a progress bar for both download and conversion processes.
  • Cross-Platform Compatibility: Explore bundling for Windows and macOS. (Lowest priority)
  • Advanced ffmpeg Options: Expose more ffmpeg options (e.g., bitrate, resolution scaling) for advanced users.
  • Metadata Preservation: Option to preserve or transfer metadata from the original file.

Known Issues / Limitations

  • DaVinci Resolve Free on Linux has limitations with certain audio codecs (e.g., AAC) and 4K output/encoding (requires Studio version).
  • ffmpeg-full AUR package is required for dnxhd support on Arch-based systems.