Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: automatic portable mpv releases #207

Merged
merged 1 commit into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
linkChecker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Link Checker
id: lychee
Expand Down
80 changes: 80 additions & 0 deletions .github/workflows/mpv.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: mpv

permissions:
contents: write

on:
push:
paths:
- "docs/static/tutorials/mpv/portable_config/**/*.*"
- "docs/tutorials/mpv.md"
- ".github/workflows/mpv.yml"
schedule:
- cron: "0 0 * * *" # daily
workflow_dispatch:


jobs:
mpv:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
sparse-checkout: docs/static/tutorials/mpv/portable_config

- name: Download mpv
uses: robinraju/[email protected]
with:
repository: zhongfly/mpv-winbuild
latest: true
fileName: "mpv-x86_64-20*-git-*.7z"

- name: Get the filename of the mpv archive
id: mpv-filename
run: |
echo "fullname=$(ls | grep mpv)" >> $GITHUB_OUTPUT
echo "basename=$(ls | grep mpv | xargs -I {} basename {} .7z)" >> $GITHUB_OUTPUT
echo "commit=$(ls | grep -oP '(?<=git-)[0-9a-fA-F]+')" >> $GITHUB_OUTPUT
# echo "date=$(ls | grep -oP '\d{8}')" >> $GITHUB_OUTPUT

- name: Extract mpv archive
run: 7z x ${{ steps.mpv-filename.outputs.fullname }} -o${{ steps.mpv-filename.outputs.basename }}

- name: Copy portable config to the extracted mpv folder
run: cp -r "docs/static/tutorials/mpv/portable_config" "${{ steps.mpv-filename.outputs.basename }}/portable_config"

- name: Remove the original mpv archive
run: rm ${{ steps.mpv-filename.outputs.fullname }}

- name: Compress mpv using 7zip
run: 7z a ${{ steps.mpv-filename.outputs.fullname }} ${{ steps.mpv-filename.outputs.basename }} -mx9

- name: Compress portable_config using 7zip
run: |
cd docs/static/tutorials/mpv
7z a portable_config.7z portable_config -mx9
mv portable_config.7z ${{ github.workspace }}

- name: Create release
uses: ncipollo/release-action@v1
with:
name: mpv
artifacts: ${{ steps.mpv-filename.outputs.fullname }}, portable_config.7z
allowUpdates: true
removeArtifacts: true
replacesArtifacts: true
makeLatest: true
tag: mpv
body: >
Pre-configured portable MPV based on [zhongfly's build](https://github.com/zhongfly/mpv-winbuild) using
the [config](https://github.com/${{ github.repository }}/tree/master/docs/static/tutorials/mpv/portable_config)
from [thewiki](https://thewiki.moe/tutorials/mpv/)


This release is updated daily using [this workflow](https://github.com/${{ github.repository }}/blob/master/.github/workflows/mpv.yml)


Based on: mpv-player/mpv@${{ steps.mpv-filename.outputs.commit }}

Logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id}}
2 changes: 1 addition & 1 deletion .github/workflows/retype-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
name: Publish to retype branch
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- uses: retypeapp/action-build@latest
- uses: retypeapp/action-github-pages@latest
with:
Expand Down
1 change: 0 additions & 1 deletion docs/static/index.yml

This file was deleted.

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
5 changes: 5 additions & 0 deletions docs/static/tutorials/mpv/portable_config/input.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# deband by pressing SHIFT + d
D cycle deband

# restyle subtitles by pressing k
k cycle_values sub-ass-override "force" "no"
59 changes: 59 additions & 0 deletions docs/static/tutorials/mpv/portable_config/mpv.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
## Video
profile=high-quality
vo=gpu-next
gpu-api=vulkan
scale-antiring=0.5
deband=no

# Dither
# This must be set to match your monitor's bit depth
dither-depth = 8

## Behavior (personal preference)
keep-open=yes
save-position-on-quit

## Screenshots
screenshot-format=png
screenshot-dir="~/Pictures/mpv"
screenshot-template="%F-%p-%n"

## Language Priority
# Sub
# Add enm before eng for honorifics
slang=eng,en
alang=jpn,ja

# Dub
# Uncomment this section to prefer English dub with subtitles for English dub
#slang=zxx,eng,en
#alang=eng,en
#subs-with-matching-audio=no

## Deband
# Set deband to "no" as we only need to enable it for specific cases
deband=no
deband-iterations=4
deband-grain=48

## Restyle Subtitles
# Set sub-ass-override to "no" as we only need to enable it for specific cases
sub-ass-override=no
sub-ass-style-overrides=playresx=1920,playresy=1080
sub-font="Gandhi Sans"
sub-font-size=50
sub-color="#FFFFFF"
sub-border-size=2.4
sub-border-color="#FF000000"
sub-shadow-color="#A0000000"
sub-shadow-offset=0.75
sub-bold=yes
sub-ass-style-overrides=Kerning=yes

## Auto profiles
[simulcast]
profile-cond=string.match(p.filename, "SubsPlease") or string.match(p.filename, "Erai%-raws") or string.match(p.filename, "Tsundere%-Raws") or string.match(p.filename, "%-VARYG") or string.match(p.filename, "HorribleSubs")
profile-restore=copy
sub-fix-timing=yes
sub-ass-override=force
deband=yes
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
#### ------- Mpv-Playlistmanager configuration ------- ####

#### ------- FUNCTIONAL ------- ####

#navigation keybindings force override only while playlist is visible
#if "no" then you can display the playlist by any of the navigation keys
dynamic_binds=yes

# To bind multiple keys separate them by a space

# main key to show playlist
key_showplaylist=SHIFT+ENTER

# display playlist while key is held down
key_peek_at_playlist=

# dynamic keys
key_moveup=UP
key_movedown=DOWN
key_movepageup=PGUP
key_movepagedown=PGDWN
key_movebegin=HOME
key_moveend=END
key_selectfile=RIGHT LEFT
key_unselectfile=
key_playfile=ENTER
key_removefile=BS
key_closeplaylist=ESC SHIFT+ENTER

# extra functionality keys
key_sortplaylist=
key_shuffleplaylist=
key_reverseplaylist=
key_loadfiles=
key_saveplaylist=

#json format for replacing, check .lua for explanation
#example json=[{"ext":{"all":true},"rules":[{"_":" "}]},{"ext":{"mp4":true,"mkv":true},"rules":[{"^(.+)%..+$":"%1"},{"%s*[%[%(].-[%]%)]%s*":""},{"(%w)%.(%w)":"%1 %2"}]},{"protocol":{"http":true,"https":true},"rules":[{"^%a+://w*%.?":""}]}]
#empty for no replace
filename_replace=[{"protocol":{"all":true},"rules":[{"%%(%x%x)":"hex_to_char"}]}]

#filetypes to search from directory
loadfiles_filetypes=["jpg","jpeg","png","tif","tiff","gif","webp","svg","bmp","mp3","wav","ogm","flac","m4a","wma","ogg","opus","mkv","avi","mp4","ogv","webm","rmvb","flv","wmv","mpeg","mpg","m4v","3gp"]

#loadfiles at startup if 1 or more items in playlist
loadfiles_on_start=no
#loadfiles from working directory on idle startup
loadfiles_on_idle_start=no
#always put loaded files after currently playing file
loadfiles_always_append=no

#sort playlist when any files are added to playlist after initial load
sortplaylist_on_file_add=no

#default sorting method, must be one of: "name-asc", "name-desc", "date-asc", "date-desc", "size-asc", "size-desc".
default_sort=name-asc

#linux | windows | auto
system=auto

#Use ~ for home directory. Leave as empty to use mpv/playlists
playlist_savepath=

#constant filename to save playlist as. Note that it will override existing playlist. Leave empty for generated name.
playlist_save_filename=

#save playlist automatically after current file was unloaded
save_playlist_on_file_end=no

#show file title every time a new file is loaded
show_title_on_file_load=no

#show playlist every time a new file is loaded
show_playlist_on_file_load=no

#close playlist when selecting file to play
close_playlist_on_playfile=no

#sync cursor when file is loaded from outside reasons(file-ending, playlist-next shortcut etc.)
sync_cursor_on_load=yes

#allow the playlist cursor to loop from end to start and vice versa
loop_cursor=yes

#youtube-dl executable for title resolving if enabled, probably "youtube-dl" or "yt-dlp", can be absolute path
youtube_dl_executable=youtube-dl

#allow playlistmanager to write watch later config when navigating between files
allow_write_watch_later_config=yes

#reset cursor navigation when closing or opening playlist
reset_cursor_on_close=yes
reset_cursor_on_open=yes

#### ------- VISUAL ------- ####

#prefer to display titles for following files: "all", "url", "none". Sorting still uses filename
prefer_titles=url

#call youtube-dl to resolve the titles of urls in the playlist
#if yes, prefer_titles must be set to "url" or "all" for this to work
resolve_url_titles=no

#call ffprobe to resolve the titles of local files in the playlist (if they exist in the metadata)
#if yes, prefer_titles must be set to "all" for this to work
resolve_local_titles=no

#timeout in seconds for url title resolving
resolve_title_timeout=15

#how many url titles can be resolved at a time. Higher number might lead to stutters.
concurrent_title_resolve_limit=10

#osd timeout on inactivity in seconds, use 0 for no timeout
playlist_display_timeout=0

#when peeking at playlist, show playlist at the very least for display timeout
peek_respect_display_timeout=no

#the maximum amount of lines playlist will render. Optimal value depends on font/video size etc.
showamount=9

#font size scales by window, if no then needs larger font and padding sizes
scale_playlist_by_window=yes
#playlist ass style overrides
#example {\fnUbuntu\fs10\b0\bord1} equals: font=Ubuntu, size=10, bold=no, border=1
#read http://docs.aegisub.org/3.2/ASS_Tags/ for reference of tags
#no values defaults to OSD settings in mpv.conf
style_ass_tags=
#paddings for top left corner
text_padding_x=10
text_padding_y=30

#screen dim when menu is open 0.0 - 1.0 (0 is no dim, 1 is black)
curtain_opacity=0

#set title of window with stripped name
set_title_stripped=no
title_prefix=
title_suffix= - mpv

#slice long filenames, and how many chars to show
slice_longfilenames=no
slice_longfilenames_amount=70

#Playing header. One newline will be added after the string.
#%mediatitle or %filename = title or name of playing file
#%pos = position of playing file
#%cursor = position of navigation
#%plen = playlist lenght
#%N = newline
playlist_header=[%cursor/%plen]

#Playlist file templates
#%pos = position of file with leading zeros
#%name = title or name of file
#%N = newline
#you can also use the ass tags mentioned above. For example:
# selected_file={\c&HFF00FF&}➔ %name | to add a color for selected file. However, if you
# use ass tags you need to reset them for every line (see https://github.com/jonniek/mpv-playlistmanager/issues/20)
normal_file=○ %name
hovered_file=● %name
selected_file=➔ %name
playing_file=▷ %name
playing_hovered_file=▶ %name
playing_selected_file=➤ %name

#what to show when playlist is truncated
playlist_sliced_prefix=...
playlist_sliced_suffix=...

#output visual feedback to OSD when saving, shuffling, reversing playlists
display_osd_feedback=yes

Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Socket path (leave empty for auto)
socket=

# Thumbnail path (leave empty for auto)
thumbnail=

# Maximum thumbnail size in pixels (scaled down to fit)
# Values are scaled when hidpi is enabled
max_height=200
max_width=200

# Apply tone-mapping, no to disable
tone_mapping=auto

# Overlay id
overlay_id=42

# Spawn thumbnailer on file load for faster initial thumbnails
spawn_first=no

# Close thumbnailer process after an inactivity period in seconds, 0 to disable
quit_after_inactivity=0

# Enable on network playback
network=no

# Enable on audio playback
audio=no

# Enable hardware decoding
hwdec=no

# Windows only: use native Windows API to write to pipe (requires LuaJIT)
direct_io=no

# Custom path to the mpv executable
mpv_path=mpv
Loading