So I downloaded it with youtube-dl (after more annoyances with MacPorts updates ) and a helper script ytplaylist
: [updated 2019-06-22]
youtube-dl -i --yes-playlist --restrict-filenames --recode-video mp4 -o '%(playlist)s/%(playlist_index)s-%(title)s.%(ext)s' "$1"
osascript -e 'display notification "Youtube playlist downloaded"'
where $1 is the actual playlist URL; "show video list" under the video player or pick from DNA Lounge playlists
Now I have a folder full of properly-named videos. VLC can be opened from the shell with:
~/Applications/VLC.app/Contents/MacOS/VLC jwz_mixtape_200 &
Frustrated by VLC constantly resizing, I then ignored the problem for most of the morning, finally wrote resizeWindow.applescript
:
#!/usr/bin/osascript
global appName
global windowX, windowY, windowW, windowH
on run argv
parseArgs(argv)
wrapCoords()
resizeWindow()
end run
on parseArgs(argv)
set argc to (count of argv)
if argc ≠ 5 then
display dialog "Usage: resizeWindow.applescript APPNAME X Y W H"
error number -128 -- User canceled
end if
set appName to item 1 of argv
set windowX to item 2 of argv as number
set windowY to item 3 of argv as number
set windowW to item 4 of argv as number
set windowH to item 5 of argv as number
end parseArgs
-- Wrap negative coords around to other side
on wrapCoords()
tell application "Finder"
set desktopBounds to bounds of window of desktop
end tell
if windowX ≥ 0 then
-- no changes
else
set windowX to windowX + (item 3 of desktopBounds) - windowW
end if
if windowY ≥ 0 then
set windowY to windowY + 24 -- menu bar
else
set windowY to windowY + (item 4 of desktopBounds) - windowH
end if
end wrapCoords
on resizeWindow()
tell application "System Events"
tell process appName
set frontWindow to the first window
set appPos to position of frontWindow
set appSize to size of frontWindow
-- display dialog ("front window of " & appName & ": " & (item 1 of appPos) & ", " & (item 2 of appPos) & ", " & (item 1 of appSize) & ", " & (item 2 of appSize))
-- display dialog (appName & " at " & windowX & ", " & windowY & ", " & windowW & ", " & windowH)
set size of frontWindow to {windowW, windowH}
set position of frontWindow to {windowX, windowY}
end tell
end tell
end resizeWindow
Now I can just leave it running to update every 5 seconds:
while true; do resizeWindow.applescript VLC 0 -64 720 640; sleep 5; done
Slight annoyance, sometimes it's still expanding the size further down than it should until I size it smaller, and then it works. Fucking software.
I don't know that what I've done is productive in any way, but I have my MTV.
The kids are disco-dancing
They're tired of rock and roll
I try to tell them, "Hey, that drum machine ain't got no soul"
But they don't want to listen, no
They think they've heard it all
They trade those guitars in for drum machines and disco balls
We can't rewind now; we've gone too far
Internet killed the video star
—The Limousines, "Internet Killed the Video Star"