Skip to content

Releases: WyattBlue/auto-editor

21w35a

06 Sep 00:55
Compare
Choose a tag to compare

What's New

Allow POSIX style options, ex --frame-margin, --export-to-premiere

New subcommand: subdump. Dump subtitles to the console.

Full Changelog: 21w34a...21w35a

21w34a

29 Aug 01:28
Compare
Choose a tag to compare

What's New

  • Subtitles now get copied and edited
  • bad pix_fmts will now either get converted or throw an error.
  • info subcommand:
    • fix some subtitle streams not displaying
    • new alias --has_vfr for --include_vfr

Dev Stuff

  • remove an unnecessary file copy, change name of one temp file
  • add version requirements for av and audiotsm2
  • renamed more camelCases

Full Changelog: 21w30a...21w34a

21w30a

01 Aug 23:56
Compare
Choose a tag to compare

What's New

new option --has_vfr, get a speed boost by skipping detecting VFR frames manually setting it instead.
new option --add_in, the inverse --cut_out, add in a user-defined section.
new choice for --edit, all, skip automatic edits and cut out everything. Best used with --add_in.

info subcommand now detects codecs for subtitle streams and the language for audio streams.

Greatly improved the grep subcommand:

  • new options, --time, --timecode, --no_filename
  • subtitles are sanitized, (no random xml-like tags)

fixed --mark_as_loud and --mark_as_silent not being applied to frame margin and minimum clip/cut like it's supposed to.

Dev Stuff

  • Debug messages are prettier and more concise.
  • setup.py marked as available for the upcoming python 3.10 release.

Full Changelog: 21w28a...21w30a

21w28a

18 Jul 08:03
Compare
Choose a tag to compare

What's New

Units are now handled in a uniform fashion.

  • Invalid numbers now only trigger errors, not crashes.
  • Spaces are allow in all units now. (exp --frame_margin "30 frames")

Here's a list of all the units and their aliases in this version:

 - Seconds units: s, sec, secs, second, seconds
 - Frame units:   f, frame, frames
 - Sample units:  Hz, kHz
 - Percent:       %

Other Stuff:

  • Backwards range (example --cut_out 30,-50) now works, is tested, and will be added to documentation soon
  • Fixed crash related to URL inputs when neither a cookiefile path or an archive path are specified

In The Future

Add more documentation, both internal and external, on what units do, where you can use them.

Tip: you can use the percent unit in any float_type option.

Dev Stuff

  • Updated typing info so that it can be understood by mypy
  • GitHub Actions Workflow updated so that:
    • changes in main dunder init don't trigger testing
    • youtube-dl is installed
  • URL inputs are now tested.

Full Changelog: 21w26a...21w28a

21w26a

04 Jul 00:13
Compare
Choose a tag to compare

What's New

  • GIFs are now supported
  • Added alias --margin for --frame_margin and --edit for --edit_based_on
  • New choice none for --edit_based_on
  • Fixed spelling in some help messages
  • Fixed fps detection that was affecting some videos
  • Fixed width and height detection that was affecting some videos

Dev Stuff

  • Testing improved
  • Various other small improvements

Full Changelog: 21w25a...21w26a

21w25a

25 Jun 23:42
Compare
Choose a tag to compare

What's New

Fixed many regressions with --export_to_premiere

  • width and height are always a number now, and never None
  • The xmls to references to more than one file are now made correctly again.
  • Added back the stereo attribute in the audio clips in the xml file.

Added SponsorBlock Integration. When downloading videos from YouTube, you can cut out sponsors, intros, self promotions and more using the --block option.

auto-editor "https://youtube.com/watch?v=kG7qmYHeB2c" --block sponsor,intro,outro,selfpromo,interaction

SponsorBlock also works with local files, just add use the --id option to set the YouTube id.

auto-editor "videos/4 Incredible Instances of Lost Media in Speedrunning.mp4" --id kG7qmYHeB2c --block sponsor 

New option. --ffmpeg_location, this does exactly what it says it does.

auto-editor example.mp4 --ffmpeg_location /usr/local/bin/ffmpeg.exe

Various youtube-dl options that were too useful to be included in auto-editor.

  • --limit_rate Limits how fast auto-editor will download online videos. Helps make sure you don't get throttled or blocked by the server.
  • --download_archive Write down the urls to videos you've downloaded. If used, prevents auto-editor from downloading the same video twice.
  • --cookies Read and write browser cookies. Helps the server track you and make sure you don't get throttled or blocked by the server.

Full Changelog: 21w24a...21w25a

21w24a

16 Jun 02:53
Compare
Choose a tag to compare

What's New

Search for media subtitles with regex with the new grep subcommand.

Usage:

auto-editor grep [PATTERN] [FILE]

Example:

auto-editor grep op resources/subtitle.mp4

grep has a number of options as well.

auto-editor grep -h
  --max_count, -m: Stop reading a file after NUM matching lines
  --count, -c: Suppress normal output; instead print count of matching lines for
  each file.
  --ignore_case, -i: Ignore case distinctions for the PATTERN.
  --my_ffmpeg: use your ffmpeg and other binaries instead of the ones packaged.
  --help, -h: print info about the program or an option and exit.
  input: the path to a file you want inspected.

Auto-Editor will now gracefully exit when interrupted.

Before:

[wyattblue] auto-editor % auto-editor example.mp4 
^CTraceback (most recent call last):░░░░░░] 23.4% done ETA 22:04                    
  File "/usr/local/bin/auto-editor", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.9/site-packages/auto_editor/__main__.py", line 730, in main
    makeVideoFile(inp, chunks, newOutput)
  File "/usr/local/lib/python3.9/site-packages/auto_editor/__main__.py", line 701, in makeVideoFile
    renderAv(ffmpeg, inp, args, chunks, speeds, fps, has_vfr, TEMP, log)
  File "/usr/local/lib/python3.9/site-packages/auto_editor/renderVideo.py", line 128, in renderAv
    in_bytes = frame.to_ndarray().tobytes()
  File "av/video/frame.pyx", line 261, in av.video.frame.VideoFrame.to_ndarray
  File "av/video/frame.pyx", line 58, in av.video.frame.useful_array
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 982, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 925, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1414, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1386, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1513, in find_spec
  File "<frozen importlib._bootstrap_external>", line 142, in _path_stat
KeyboardInterrupt

After

[wyattblue] % auto-editor example.mp4 
^C                                                                                   
Error! Keyboard Interrupt

Dev Stuff

Added future statements.
Renamed more camelCase variables to snake_case
Reorganized a lot of files. for example, renderVideo.py to render/av.py and render/opencv.py.
Fixed some minor issues in the Installing article.

Future

all camelCase files will eventually be moved.
vanparse will be rewritten so that it can support Python 2.7
Linking audio-video clips doesn't work in DaVinci Resolve 17, although some steps have been taken, it appears that the problem persists.

Full Changelog: 21w22a...21w24a

21w22a

02 Jun 01:24
Compare
Choose a tag to compare

What's new

Improved the info subcommand auto-editor info your_file.mp4
Added export to Shotcut --export_to_shotcut -exs
removed the --force_tracks_to option.

Full Changelog: 21w21a...21w22a

21w21a

24 May 05:05
Compare
Choose a tag to compare

What's New

Changed --video_codec default from copy back to uncompressed
fixed an import statement

Full Changelog: 21w20c...21w21a

21w20c

22 May 08:59
Compare
Choose a tag to compare

What's New

Added needed init files.
Incorrect default fixed.

Full Changelog: 21w20b...21w20c