Record with IINA

An Alfred Workflow


Short Description

Records video file to disk while streaming to IINA

Last Updated

01 Jan 2022

Compatibility

Yosemite
(10.10)
Mavericks
(10.9)
Mountain Lion
(10.8)
Lion
(10.7)
Snow Leopard
(10.6)
Yes Yes Yes Yes Yes
 

Version

2.0
 

Bundle ID

com.strassell.recordInIINA
 

Categories

Tags

This is version 2.0 of previously named "StreamCopy" worklow

Updated commands to send file to iina-cli as stdin. Also uses IINA's own youtube-dl binary.

This workflow takes a valid video URL from the clipboard, plays it in IINA, and writes the video file to disk.

Uses applescript to run commands with iTerm2.

Provides a dialog for the user to select video quality (the user enters the youtube-dl format code which get sent back into the script)

NOTE: When selecting video quality enter ONLY the format integer value, not the whole string listed. See screenshot of dialog below

Writes to folder ~/Movies (modify the script to save anywhere you please)

Requirements: IINA.app, iTerm2 (installed with homebrew)

Issues: The workflow creates a pipe between ffmpeg and mpv. Closing the window before the download has finished will result in a broken pipe i.e. when streaming an hls playlist. This results in ffmpeg not writing the trailer for the mp4 file correctly. The file will still plays in apps like IINA or MPV with no issue. However, Quicktime player will not recognize the file. Nor will Quicklook. 

Solution 1: I have resorted to re-encoding these files with ffmpeg. Then Quicktime and Quicklook will have no issues playing file

Solution 2: Use ffmpeg's built in streaming protocol zmq to stream to a server on localhost then play the file with ffplay. Basic command for this looks somethting like:

ffmpeg -re -i input.m3u8 -c:v libx264 -c:a aac -f tee -map 0:v -map 0:a "output.mp4|[f=mpegts]zmq:tcp://127.0.0.1:5555"

then

ffplay zmq:tcp://127.0.0.1:5555

Caveat: Neither IINA nor MPV seem to use the zmq protocol so using this method, one is stuck with using ffplay

Screenshots