From e778e0ec8fe9629a83169659fe5e9122280a26b3 Mon Sep 17 00:00:00 2001 From: RTSDA Date: Thu, 6 Feb 2025 22:14:18 -0500 Subject: [PATCH] Initial commit --- .gitignore | 1 + Cargo.lock | 748 ++++++++++++++++++++++++++++ Cargo.toml | 14 + output.mp4 | Bin 0 -> 10551944 bytes src/main.rs | 94 ++++ src/services/livestream_archiver.rs | 191 +++++++ src/services/mod.rs | 1 + test.mp4 | Bin 0 -> 2056470 bytes 8 files changed, 1049 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 output.mp4 create mode 100644 src/main.rs create mode 100644 src/services/livestream_archiver.rs create mode 100644 src/services/mod.rs create mode 100644 test.mp4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..fde4950 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,748 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34ac096ce696dc2fcabef30516bb13c0a68a11d30131d3df6f04711467681b04" + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" + +[[package]] +name = "cc" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e36cc9d416881d2e24f9a963be5fb1cd90966419ac844274161d10488b3e825" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "wasm-bindgen", + "windows-targets 0.52.6", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "crossbeam-channel" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "filetime" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +dependencies = [ + "cfg-if", + "libc", + "libredox", + "windows-sys 0.59.0", +] + +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "iana-time-zone" +version = "0.1.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "inotify" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff" +dependencies = [ + "bitflags 1.3.2", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "kqueue" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", + "redox_syscall", +] + +[[package]] +name = "livestream_archiver" +version = "0.1.0" +dependencies = [ + "anyhow", + "chrono", + "notify", + "tokio", +] + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "miniz_oxide" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.48.0", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "notify" +version = "6.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d" +dependencies = [ + "bitflags 2.6.0", + "crossbeam-channel", + "filetime", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio 0.8.11", + "walkdir", + "windows-sys 0.48.0", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "syn" +version = "2.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tokio" +version = "1.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio 1.0.3", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" +dependencies = [ + "cfg-if", + "once_cell", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..9e22573 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "livestream_archiver" +version = "0.1.0" +edition = "2024" + +[dependencies] +tokio = { version = "1.36", features = ["full"] } +anyhow = "1.0" +notify = "6.1" +chrono = "0.4" + + +# We don't need regex or other conversion-related deps +# since we're just copying and renaming files diff --git a/output.mp4 b/output.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..f4d5851c92d85de4712c424a580f84754266b5aa GIT binary patch literal 10551944 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