marquesafonso commited on
Commit
78c135b
·
1 Parent(s): 21b498c

wip on periodic archiving. small fixes on process video.

Browse files
Files changed (7) hide show
  1. .gitignore +2 -0
  2. Pipfile +1 -0
  3. Pipfile.lock +174 -119
  4. main.py +28 -11
  5. utils/archiver.py +11 -0
  6. utils/periodic_archiver.py +0 -0
  7. utils/process_video.py +2 -2
.gitignore CHANGED
@@ -1,6 +1,8 @@
1
  data/*
 
2
  temp/
3
  api_config.yml
 
4
  # Byte-compiled / optimized / DLL files
5
  __pycache__/
6
  *.py[cod]
 
1
  data/*
2
+ archive/*
3
  temp/
4
  api_config.yml
5
+
6
  # Byte-compiled / optimized / DLL files
7
  __pycache__/
8
  *.py[cod]
Pipfile CHANGED
@@ -12,6 +12,7 @@ requests = "*"
12
  python-multipart = "*"
13
  fastapi = "*"
14
  uvicorn = "*"
 
15
 
16
  [dev-packages]
17
 
 
12
  python-multipart = "*"
13
  fastapi = "*"
14
  uvicorn = "*"
15
+ apscheduler = "*"
16
 
17
  [dev-packages]
18
 
Pipfile.lock CHANGED
@@ -1,7 +1,7 @@
1
  {
2
  "_meta": {
3
  "hash": {
4
- "sha256": "8f0d40a634119c47c91003d2d9240c3f4f51e916aafde61ae5fc7376e961f54b"
5
  },
6
  "pipfile-spec": 6,
7
  "requires": {
@@ -32,6 +32,14 @@
32
  "markers": "python_version >= '3.7'",
33
  "version": "==3.7.1"
34
  },
 
 
 
 
 
 
 
 
35
  "av": {
36
  "hashes": [
37
  "sha256:04cd0ce13a87870fb0a0ea4673f04934af2b9ac7ae844eafe92e2c19c092ab11",
@@ -209,6 +217,14 @@
209
  "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
210
  "version": "==15.0.1"
211
  },
 
 
 
 
 
 
 
 
212
  "ctranslate2": {
213
  "hashes": [
214
  "sha256:14db7daeee240c71c41e8021d431a865bb25a1f7ec0d1b37a0dd8cc0ecd64cc0",
@@ -295,11 +311,11 @@
295
  },
296
  "huggingface-hub": {
297
  "hashes": [
298
- "sha256:176a4fc355a851c17550e7619488f383189727eab209534d7cef2114dae77b22",
299
- "sha256:dba013f779da16f14b606492828f3760600a1e1801432d09fe1c33e50b825bb5"
300
  ],
301
  "markers": "python_full_version >= '3.8.0'",
302
- "version": "==0.19.4"
303
  },
304
  "humanfriendly": {
305
  "hashes": [
@@ -516,122 +532,122 @@
516
  },
517
  "pydantic": {
518
  "hashes": [
519
- "sha256:80c50fb8e3dcecfddae1adbcc00ec5822918490c99ab31f6cf6140ca1c1429f0",
520
- "sha256:ff177ba64c6faf73d7afa2e8cad38fd456c0dbe01c9954e71038001cd15a6edd"
521
  ],
522
  "markers": "python_version >= '3.7'",
523
- "version": "==2.5.2"
524
  },
525
  "pydantic-core": {
526
  "hashes": [
527
- "sha256:038c9f763e650712b899f983076ce783175397c848da04985658e7628cbe873b",
528
- "sha256:074f3d86f081ce61414d2dc44901f4f83617329c6f3ab49d2bc6c96948b2c26b",
529
- "sha256:079206491c435b60778cf2b0ee5fd645e61ffd6e70c47806c9ed51fc75af078d",
530
- "sha256:09b0e985fbaf13e6b06a56d21694d12ebca6ce5414b9211edf6f17738d82b0f8",
531
- "sha256:0f6116a558fd06d1b7c2902d1c4cf64a5bd49d67c3540e61eccca93f41418124",
532
- "sha256:103ef8d5b58596a731b690112819501ba1db7a36f4ee99f7892c40da02c3e189",
533
- "sha256:16e29bad40bcf97aac682a58861249ca9dcc57c3f6be22f506501833ddb8939c",
534
- "sha256:206ed23aecd67c71daf5c02c3cd19c0501b01ef3cbf7782db9e4e051426b3d0d",
535
- "sha256:2248485b0322c75aee7565d95ad0e16f1c67403a470d02f94da7344184be770f",
536
- "sha256:27548e16c79702f1e03f5628589c6057c9ae17c95b4c449de3c66b589ead0520",
537
- "sha256:2d0ae0d8670164e10accbeb31d5ad45adb71292032d0fdb9079912907f0085f4",
538
- "sha256:3128e0bbc8c091ec4375a1828d6118bc20404883169ac95ffa8d983b293611e6",
539
- "sha256:3387277f1bf659caf1724e1afe8ee7dbc9952a82d90f858ebb931880216ea955",
540
- "sha256:34708cc82c330e303f4ce87758828ef6e457681b58ce0e921b6e97937dd1e2a3",
541
- "sha256:35613015f0ba7e14c29ac6c2483a657ec740e5ac5758d993fdd5870b07a61d8b",
542
- "sha256:3ad873900297bb36e4b6b3f7029d88ff9829ecdc15d5cf20161775ce12306f8a",
543
- "sha256:40180930807ce806aa71eda5a5a5447abb6b6a3c0b4b3b1b1962651906484d68",
544
- "sha256:439c9afe34638ace43a49bf72d201e0ffc1a800295bed8420c2a9ca8d5e3dbb3",
545
- "sha256:45e95333b8418ded64745f14574aa9bfc212cb4fbeed7a687b0c6e53b5e188cd",
546
- "sha256:4641e8ad4efb697f38a9b64ca0523b557c7931c5f84e0fd377a9a3b05121f0de",
547
- "sha256:49b08aae5013640a3bfa25a8eebbd95638ec3f4b2eaf6ed82cf0c7047133f03b",
548
- "sha256:4bc536201426451f06f044dfbf341c09f540b4ebdb9fd8d2c6164d733de5e634",
549
- "sha256:4ce601907e99ea5b4adb807ded3570ea62186b17f88e271569144e8cca4409c7",
550
- "sha256:4e40f2bd0d57dac3feb3a3aed50f17d83436c9e6b09b16af271b6230a2915459",
551
- "sha256:4e47a76848f92529879ecfc417ff88a2806438f57be4a6a8bf2961e8f9ca9ec7",
552
- "sha256:513b07e99c0a267b1d954243845d8a833758a6726a3b5d8948306e3fe14675e3",
553
- "sha256:531f4b4252fac6ca476fbe0e6f60f16f5b65d3e6b583bc4d87645e4e5ddde331",
554
- "sha256:57d52fa717ff445cb0a5ab5237db502e6be50809b43a596fb569630c665abddf",
555
- "sha256:59986de5710ad9613ff61dd9b02bdd2f615f1a7052304b79cc8fa2eb4e336d2d",
556
- "sha256:5baab5455c7a538ac7e8bf1feec4278a66436197592a9bed538160a2e7d11e36",
557
- "sha256:5c7d5b5005f177764e96bd584d7bf28d6e26e96f2a541fdddb934c486e36fd59",
558
- "sha256:60b7607753ba62cf0739177913b858140f11b8af72f22860c28eabb2f0a61937",
559
- "sha256:615a0a4bff11c45eb3c1996ceed5bdaa2f7b432425253a7c2eed33bb86d80abc",
560
- "sha256:61ea96a78378e3bd5a0be99b0e5ed00057b71f66115f5404d0dae4819f495093",
561
- "sha256:652c1988019752138b974c28f43751528116bcceadad85f33a258869e641d753",
562
- "sha256:6637560562134b0e17de333d18e69e312e0458ee4455bdad12c37100b7cad706",
563
- "sha256:678265f7b14e138d9a541ddabbe033012a2953315739f8cfa6d754cc8063e8ca",
564
- "sha256:699156034181e2ce106c89ddb4b6504c30db8caa86e0c30de47b3e0654543260",
565
- "sha256:6b9ff467ffbab9110e80e8c8de3bcfce8e8b0fd5661ac44a09ae5901668ba997",
566
- "sha256:6c327e9cd849b564b234da821236e6bcbe4f359a42ee05050dc79d8ed2a91588",
567
- "sha256:6d30226dfc816dd0fdf120cae611dd2215117e4f9b124af8c60ab9093b6e8e71",
568
- "sha256:6e227c40c02fd873c2a73a98c1280c10315cbebe26734c196ef4514776120aeb",
569
- "sha256:6e4d090e73e0725b2904fdbdd8d73b8802ddd691ef9254577b708d413bf3006e",
570
- "sha256:70f4b4851dbb500129681d04cc955be2a90b2248d69273a787dda120d5cf1f69",
571
- "sha256:70f947628e074bb2526ba1b151cee10e4c3b9670af4dbb4d73bc8a89445916b5",
572
- "sha256:774de879d212db5ce02dfbf5b0da9a0ea386aeba12b0b95674a4ce0593df3d07",
573
- "sha256:77fa384d8e118b3077cccfcaf91bf83c31fe4dc850b5e6ee3dc14dc3d61bdba1",
574
- "sha256:79e0a2cdbdc7af3f4aee3210b1172ab53d7ddb6a2d8c24119b5706e622b346d0",
575
- "sha256:7e88f5696153dc516ba6e79f82cc4747e87027205f0e02390c21f7cb3bd8abfd",
576
- "sha256:7f8210297b04e53bc3da35db08b7302a6a1f4889c79173af69b72ec9754796b8",
577
- "sha256:81982d78a45d1e5396819bbb4ece1fadfe5f079335dd28c4ab3427cd95389944",
578
- "sha256:823fcc638f67035137a5cd3f1584a4542d35a951c3cc68c6ead1df7dac825c26",
579
- "sha256:853a2295c00f1d4429db4c0fb9475958543ee80cfd310814b5c0ef502de24dda",
580
- "sha256:88e74ab0cdd84ad0614e2750f903bb0d610cc8af2cc17f72c28163acfcf372a4",
581
- "sha256:8aa1768c151cf562a9992462239dfc356b3d1037cc5a3ac829bb7f3bda7cc1f9",
582
- "sha256:8c8a8812fe6f43a3a5b054af6ac2d7b8605c7bcab2804a8a7d68b53f3cd86e00",
583
- "sha256:95b15e855ae44f0c6341ceb74df61b606e11f1087e87dcb7482377374aac6abe",
584
- "sha256:96581cfefa9123accc465a5fd0cc833ac4d75d55cc30b633b402e00e7ced00a6",
585
- "sha256:9bd18fee0923ca10f9a3ff67d4851c9d3e22b7bc63d1eddc12f439f436f2aada",
586
- "sha256:a33324437018bf6ba1bb0f921788788641439e0ed654b233285b9c69704c27b4",
587
- "sha256:a6a16f4a527aae4f49c875da3cdc9508ac7eef26e7977952608610104244e1b7",
588
- "sha256:a717aef6971208f0851a2420b075338e33083111d92041157bbe0e2713b37325",
589
- "sha256:a71891847f0a73b1b9eb86d089baee301477abef45f7eaf303495cd1473613e4",
590
- "sha256:aae7ea3a1c5bb40c93cad361b3e869b180ac174656120c42b9fadebf685d121b",
591
- "sha256:ab1cdb0f14dc161ebc268c09db04d2c9e6f70027f3b42446fa11c153521c0e88",
592
- "sha256:ab4ea451082e684198636565224bbb179575efc1658c48281b2c866bfd4ddf04",
593
- "sha256:abf058be9517dc877227ec3223f0300034bd0e9f53aebd63cf4456c8cb1e0863",
594
- "sha256:af36f36538418f3806048f3b242a1777e2540ff9efaa667c27da63d2749dbce0",
595
- "sha256:b53e9ad053cd064f7e473a5f29b37fc4cc9dc6d35f341e6afc0155ea257fc911",
596
- "sha256:b7851992faf25eac90bfcb7bfd19e1f5ffa00afd57daec8a0042e63c74a4551b",
597
- "sha256:b9b759b77f5337b4ea024f03abc6464c9f35d9718de01cfe6bae9f2e139c397e",
598
- "sha256:ba39688799094c75ea8a16a6b544eb57b5b0f3328697084f3f2790892510d144",
599
- "sha256:ba6b6b3846cfc10fdb4c971980a954e49d447cd215ed5a77ec8190bc93dd7bc5",
600
- "sha256:bb4c2eda937a5e74c38a41b33d8c77220380a388d689bcdb9b187cf6224c9720",
601
- "sha256:c0b97ec434041827935044bbbe52b03d6018c2897349670ff8fe11ed24d1d4ab",
602
- "sha256:c1452a1acdf914d194159439eb21e56b89aa903f2e1c65c60b9d874f9b950e5d",
603
- "sha256:c2027d05c8aebe61d898d4cffd774840a9cb82ed356ba47a90d99ad768f39789",
604
- "sha256:c2adbe22ab4babbca99c75c5d07aaf74f43c3195384ec07ccbd2f9e3bddaecec",
605
- "sha256:c2d97e906b4ff36eb464d52a3bc7d720bd6261f64bc4bcdbcd2c557c02081ed2",
606
- "sha256:c339dabd8ee15f8259ee0f202679b6324926e5bc9e9a40bf981ce77c038553db",
607
- "sha256:c6eae413494a1c3f89055da7a5515f32e05ebc1a234c27674a6956755fb2236f",
608
- "sha256:c949f04ecad823f81b1ba94e7d189d9dfb81edbb94ed3f8acfce41e682e48cef",
609
- "sha256:c97bee68898f3f4344eb02fec316db93d9700fb1e6a5b760ffa20d71d9a46ce3",
610
- "sha256:ca61d858e4107ce5e1330a74724fe757fc7135190eb5ce5c9d0191729f033209",
611
- "sha256:cb4679d4c2b089e5ef89756bc73e1926745e995d76e11925e3e96a76d5fa51fc",
612
- "sha256:cb774298da62aea5c80a89bd58c40205ab4c2abf4834453b5de207d59d2e1651",
613
- "sha256:ccd4d5702bb90b84df13bd491be8d900b92016c5a455b7e14630ad7449eb03f8",
614
- "sha256:cf9d3fe53b1ee360e2421be95e62ca9b3296bf3f2fb2d3b83ca49ad3f925835e",
615
- "sha256:d2ae91f50ccc5810b2f1b6b858257c9ad2e08da70bf890dee02de1775a387c66",
616
- "sha256:d37f8ec982ead9ba0a22a996129594938138a1503237b87318392a48882d50b7",
617
- "sha256:d81e6987b27bc7d101c8597e1cd2bcaa2fee5e8e0f356735c7ed34368c471550",
618
- "sha256:dcf4e6d85614f7a4956c2de5a56531f44efb973d2fe4a444d7251df5d5c4dcfd",
619
- "sha256:de790a3b5aa2124b8b78ae5faa033937a72da8efe74b9231698b5a1dd9be3405",
620
- "sha256:e47e9a08bcc04d20975b6434cc50bf82665fbc751bcce739d04a3120428f3e27",
621
- "sha256:e60f112ac88db9261ad3a52032ea46388378034f3279c643499edb982536a093",
622
- "sha256:e87fc540c6cac7f29ede02e0f989d4233f88ad439c5cdee56f693cc9c1c78077",
623
- "sha256:eac5c82fc632c599f4639a5886f96867ffced74458c7db61bc9a66ccb8ee3113",
624
- "sha256:ebb4e035e28f49b6f1a7032920bb9a0c064aedbbabe52c543343d39341a5b2a3",
625
- "sha256:ec1e72d6412f7126eb7b2e3bfca42b15e6e389e1bc88ea0069d0cc1742f477c6",
626
- "sha256:ef98ca7d5995a82f43ec0ab39c4caf6a9b994cb0b53648ff61716370eadc43cf",
627
- "sha256:f0cbc7fff06a90bbd875cc201f94ef0ee3929dfbd5c55a06674b60857b8b85ed",
628
- "sha256:f4791cf0f8c3104ac668797d8c514afb3431bc3305f5638add0ba1a5a37e0d88",
629
- "sha256:f5e412d717366e0677ef767eac93566582518fe8be923361a5c204c1a62eaafe",
630
- "sha256:fb2ed8b3fe4bf4506d6dab3b93b83bbc22237e230cba03866d561c3577517d18",
631
- "sha256:fe0a5a1025eb797752136ac8b4fa21aa891e3d74fd340f864ff982d649691867"
632
  ],
633
  "markers": "python_version >= '3.7'",
634
- "version": "==2.14.5"
635
  },
636
  "pyreadline3": {
637
  "hashes": [
@@ -641,6 +657,14 @@
641
  "markers": "python_version >= '3.8' and sys_platform == 'win32'",
642
  "version": "==3.4.1"
643
  },
 
 
 
 
 
 
 
 
644
  "python-multipart": {
645
  "hashes": [
646
  "sha256:e9925a80bb668529f1b67c7fdb0a5dacdd7cbfc6fb0bff3ea443fe22bdd62132",
@@ -657,6 +681,13 @@
657
  "index": "pypi",
658
  "version": "==15.0.0"
659
  },
 
 
 
 
 
 
 
660
  "pyyaml": {
661
  "hashes": [
662
  "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
@@ -723,11 +754,19 @@
723
  },
724
  "setuptools": {
725
  "hashes": [
726
- "sha256:1e8fdff6797d3865f37397be788a4e3cba233608e9b509382a2777d25ebde7f2",
727
- "sha256:735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6"
728
  ],
729
  "markers": "python_version >= '3.8'",
730
- "version": "==69.0.2"
 
 
 
 
 
 
 
 
731
  },
732
  "sniffio": {
733
  "hashes": [
@@ -873,6 +912,22 @@
873
  "markers": "python_version >= '3.8'",
874
  "version": "==4.9.0"
875
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
876
  "urllib3": {
877
  "hashes": [
878
  "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3",
@@ -883,11 +938,11 @@
883
  },
884
  "uvicorn": {
885
  "hashes": [
886
- "sha256:09c8e5a79dc466bdf28dead50093957db184de356fcdc48697bad3bde4c2588e",
887
- "sha256:7c84fea70c619d4a710153482c0d230929af7bcf76c7bfa6de151f0a3a80121e"
888
  ],
889
  "index": "pypi",
890
- "version": "==0.24.0.post1"
891
  }
892
  },
893
  "develop": {}
 
1
  {
2
  "_meta": {
3
  "hash": {
4
+ "sha256": "f90758c15beaaa65320f587d37f0a05bf701c10842690a97c92d02674bf3edef"
5
  },
6
  "pipfile-spec": 6,
7
  "requires": {
 
32
  "markers": "python_version >= '3.7'",
33
  "version": "==3.7.1"
34
  },
35
+ "apscheduler": {
36
+ "hashes": [
37
+ "sha256:e6df071b27d9be898e486bc7940a7be50b4af2e9da7c08f0744a96d4bd4cef4a",
38
+ "sha256:fb91e8a768632a4756a585f79ec834e0e27aad5860bac7eaa523d9ccefd87661"
39
+ ],
40
+ "index": "pypi",
41
+ "version": "==3.10.4"
42
+ },
43
  "av": {
44
  "hashes": [
45
  "sha256:04cd0ce13a87870fb0a0ea4673f04934af2b9ac7ae844eafe92e2c19c092ab11",
 
217
  "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
218
  "version": "==15.0.1"
219
  },
220
+ "croniter": {
221
+ "hashes": [
222
+ "sha256:4cb064ce2d8f695b3b078be36ff50115cf8ac306c10a7e8653ee2a5b534673d7",
223
+ "sha256:d199b2ec3ea5e82988d1f72022433c5f9302b3b3ea9e6bfd6a1518f6ea5e700a"
224
+ ],
225
+ "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
226
+ "version": "==2.0.1"
227
+ },
228
  "ctranslate2": {
229
  "hashes": [
230
  "sha256:14db7daeee240c71c41e8021d431a865bb25a1f7ec0d1b37a0dd8cc0ecd64cc0",
 
311
  },
312
  "huggingface-hub": {
313
  "hashes": [
314
+ "sha256:8c88c4c3c8853e22f2dfb4d84c3d493f4e1af52fb3856a90e1eeddcf191ddbb1",
315
+ "sha256:ecfdea395a8bc68cd160106c5bd857f7e010768d95f9e1862a779010cc304831"
316
  ],
317
  "markers": "python_full_version >= '3.8.0'",
318
+ "version": "==0.20.1"
319
  },
320
  "humanfriendly": {
321
  "hashes": [
 
532
  },
533
  "pydantic": {
534
  "hashes": [
535
+ "sha256:b3ef57c62535b0941697cce638c08900d87fcb67e29cfa99e8a68f747f393f7a",
536
+ "sha256:d0caf5954bee831b6bfe7e338c32b9e30c85dfe080c843680783ac2b631673b4"
537
  ],
538
  "markers": "python_version >= '3.7'",
539
+ "version": "==2.5.3"
540
  },
541
  "pydantic-core": {
542
  "hashes": [
543
+ "sha256:00646784f6cd993b1e1c0e7b0fdcbccc375d539db95555477771c27555e3c556",
544
+ "sha256:00b1087dabcee0b0ffd104f9f53d7d3eaddfaa314cdd6726143af6bc713aa27e",
545
+ "sha256:0348b1dc6b76041516e8a854ff95b21c55f5a411c3297d2ca52f5528e49d8411",
546
+ "sha256:036137b5ad0cb0004c75b579445a1efccd072387a36c7f217bb8efd1afbe5245",
547
+ "sha256:095b707bb287bfd534044166ab767bec70a9bba3175dcdc3371782175c14e43c",
548
+ "sha256:0c08de15d50fa190d577e8591f0329a643eeaed696d7771760295998aca6bc66",
549
+ "sha256:1302a54f87b5cd8528e4d6d1bf2133b6aa7c6122ff8e9dc5220fbc1e07bffebd",
550
+ "sha256:172de779e2a153d36ee690dbc49c6db568d7b33b18dc56b69a7514aecbcf380d",
551
+ "sha256:1b027c86c66b8627eb90e57aee1f526df77dc6d8b354ec498be9a757d513b92b",
552
+ "sha256:1ce830e480f6774608dedfd4a90c42aac4a7af0a711f1b52f807130c2e434c06",
553
+ "sha256:1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948",
554
+ "sha256:23598acb8ccaa3d1d875ef3b35cb6376535095e9405d91a3d57a8c7db5d29341",
555
+ "sha256:24368e31be2c88bd69340fbfe741b405302993242ccb476c5c3ff48aeee1afe0",
556
+ "sha256:26a92ae76f75d1915806b77cf459811e772d8f71fd1e4339c99750f0e7f6324f",
557
+ "sha256:27e524624eace5c59af499cd97dc18bb201dc6a7a2da24bfc66ef151c69a5f2a",
558
+ "sha256:2b8719037e570639e6b665a4050add43134d80b687288ba3ade18b22bbb29dd2",
559
+ "sha256:2c5bcf3414367e29f83fd66f7de64509a8fd2368b1edf4351e862910727d3e51",
560
+ "sha256:2dbe357bc4ddda078f79d2a36fc1dd0494a7f2fad83a0a684465b6f24b46fe80",
561
+ "sha256:2f5fa187bde8524b1e37ba894db13aadd64faa884657473b03a019f625cee9a8",
562
+ "sha256:2f6ffc6701a0eb28648c845f4945a194dc7ab3c651f535b81793251e1185ac3d",
563
+ "sha256:314ccc4264ce7d854941231cf71b592e30d8d368a71e50197c905874feacc8a8",
564
+ "sha256:36026d8f99c58d7044413e1b819a67ca0e0b8ebe0f25e775e6c3d1fabb3c38fb",
565
+ "sha256:36099c69f6b14fc2c49d7996cbf4f87ec4f0e66d1c74aa05228583225a07b590",
566
+ "sha256:36fa402dcdc8ea7f1b0ddcf0df4254cc6b2e08f8cd80e7010d4c4ae6e86b2a87",
567
+ "sha256:370ffecb5316ed23b667d99ce4debe53ea664b99cc37bfa2af47bc769056d534",
568
+ "sha256:3860c62057acd95cc84044e758e47b18dcd8871a328ebc8ccdefd18b0d26a21b",
569
+ "sha256:399ac0891c284fa8eb998bcfa323f2234858f5d2efca3950ae58c8f88830f145",
570
+ "sha256:3a0b5db001b98e1c649dd55afa928e75aa4087e587b9524a4992316fa23c9fba",
571
+ "sha256:3dcf1978be02153c6a31692d4fbcc2a3f1db9da36039ead23173bc256ee3b91b",
572
+ "sha256:4241204e4b36ab5ae466ecec5c4c16527a054c69f99bba20f6f75232a6a534e2",
573
+ "sha256:438027a975cc213a47c5d70672e0d29776082155cfae540c4e225716586be75e",
574
+ "sha256:43e166ad47ba900f2542a80d83f9fc65fe99eb63ceec4debec160ae729824052",
575
+ "sha256:478e9e7b360dfec451daafe286998d4a1eeaecf6d69c427b834ae771cad4b622",
576
+ "sha256:4ce8299b481bcb68e5c82002b96e411796b844d72b3e92a3fbedfe8e19813eab",
577
+ "sha256:4f86f1f318e56f5cbb282fe61eb84767aee743ebe32c7c0834690ebea50c0a6b",
578
+ "sha256:55a23dcd98c858c0db44fc5c04fc7ed81c4b4d33c653a7c45ddaebf6563a2f66",
579
+ "sha256:599c87d79cab2a6a2a9df4aefe0455e61e7d2aeede2f8577c1b7c0aec643ee8e",
580
+ "sha256:5aa90562bc079c6c290f0512b21768967f9968e4cfea84ea4ff5af5d917016e4",
581
+ "sha256:64634ccf9d671c6be242a664a33c4acf12882670b09b3f163cd00a24cffbd74e",
582
+ "sha256:667aa2eac9cd0700af1ddb38b7b1ef246d8cf94c85637cbb03d7757ca4c3fdec",
583
+ "sha256:6a31d98c0d69776c2576dda4b77b8e0c69ad08e8b539c25c7d0ca0dc19a50d6c",
584
+ "sha256:6af4b3f52cc65f8a0bc8b1cd9676f8c21ef3e9132f21fed250f6958bd7223bed",
585
+ "sha256:6c8edaea3089bf908dd27da8f5d9e395c5b4dc092dbcce9b65e7156099b4b937",
586
+ "sha256:71d72ca5eaaa8d38c8df16b7deb1a2da4f650c41b58bb142f3fb75d5ad4a611f",
587
+ "sha256:72f9a942d739f09cd42fffe5dc759928217649f070056f03c70df14f5770acf9",
588
+ "sha256:747265448cb57a9f37572a488a57d873fd96bf51e5bb7edb52cfb37124516da4",
589
+ "sha256:75ec284328b60a4e91010c1acade0c30584f28a1f345bc8f72fe8b9e46ec6a96",
590
+ "sha256:78d0768ee59baa3de0f4adac9e3748b4b1fffc52143caebddfd5ea2961595277",
591
+ "sha256:78ee52ecc088c61cce32b2d30a826f929e1708f7b9247dc3b921aec367dc1b23",
592
+ "sha256:7be719e4d2ae6c314f72844ba9d69e38dff342bc360379f7c8537c48e23034b7",
593
+ "sha256:7e1f4744eea1501404b20b0ac059ff7e3f96a97d3e3f48ce27a139e053bb370b",
594
+ "sha256:7e90d6cc4aad2cc1f5e16ed56e46cebf4877c62403a311af20459c15da76fd91",
595
+ "sha256:7ebe3416785f65c28f4f9441e916bfc8a54179c8dea73c23023f7086fa601c5d",
596
+ "sha256:7f41533d7e3cf9520065f610b41ac1c76bc2161415955fbcead4981b22c7611e",
597
+ "sha256:7f5025db12fc6de7bc1104d826d5aee1d172f9ba6ca936bf6474c2148ac336c1",
598
+ "sha256:86c963186ca5e50d5c8287b1d1c9d3f8f024cbe343d048c5bd282aec2d8641f2",
599
+ "sha256:86ce5fcfc3accf3a07a729779d0b86c5d0309a4764c897d86c11089be61da160",
600
+ "sha256:8a14c192c1d724c3acbfb3f10a958c55a2638391319ce8078cb36c02283959b9",
601
+ "sha256:8b93785eadaef932e4fe9c6e12ba67beb1b3f1e5495631419c784ab87e975670",
602
+ "sha256:8ed1af8692bd8d2a29d702f1a2e6065416d76897d726e45a1775b1444f5928a7",
603
+ "sha256:92879bce89f91f4b2416eba4429c7b5ca22c45ef4a499c39f0c5c69257522c7c",
604
+ "sha256:94fc0e6621e07d1e91c44e016cc0b189b48db053061cc22d6298a611de8071bb",
605
+ "sha256:982487f8931067a32e72d40ab6b47b1628a9c5d344be7f1a4e668fb462d2da42",
606
+ "sha256:9862bf828112e19685b76ca499b379338fd4c5c269d897e218b2ae8fcb80139d",
607
+ "sha256:99b14dbea2fdb563d8b5a57c9badfcd72083f6006caf8e126b491519c7d64ca8",
608
+ "sha256:9c6a5c79b28003543db3ba67d1df336f253a87d3112dac3a51b94f7d48e4c0e1",
609
+ "sha256:a19b794f8fe6569472ff77602437ec4430f9b2b9ec7a1105cfd2232f9ba355e6",
610
+ "sha256:a306cdd2ad3a7d795d8e617a58c3a2ed0f76c8496fb7621b6cd514eb1532cae8",
611
+ "sha256:a3dde6cac75e0b0902778978d3b1646ca9f438654395a362cb21d9ad34b24acf",
612
+ "sha256:a874f21f87c485310944b2b2734cd6d318765bcbb7515eead33af9641816506e",
613
+ "sha256:a983cca5ed1dd9a35e9e42ebf9f278d344603bfcb174ff99a5815f953925140a",
614
+ "sha256:aca48506a9c20f68ee61c87f2008f81f8ee99f8d7f0104bff3c47e2d148f89d9",
615
+ "sha256:b2602177668f89b38b9f84b7b3435d0a72511ddef45dc14446811759b82235a1",
616
+ "sha256:b3e5fe4538001bb82e2295b8d2a39356a84694c97cb73a566dc36328b9f83b40",
617
+ "sha256:b6ca36c12a5120bad343eef193cc0122928c5c7466121da7c20f41160ba00ba2",
618
+ "sha256:b89f4477d915ea43b4ceea6756f63f0288941b6443a2b28c69004fe07fde0d0d",
619
+ "sha256:b9a9d92f10772d2a181b5ca339dee066ab7d1c9a34ae2421b2a52556e719756f",
620
+ "sha256:c99462ffc538717b3e60151dfaf91125f637e801f5ab008f81c402f1dff0cd0f",
621
+ "sha256:cb92f9061657287eded380d7dc455bbf115430b3aa4741bdc662d02977e7d0af",
622
+ "sha256:cdee837710ef6b56ebd20245b83799fce40b265b3b406e51e8ccc5b85b9099b7",
623
+ "sha256:cf10b7d58ae4a1f07fccbf4a0a956d705356fea05fb4c70608bb6fa81d103cda",
624
+ "sha256:d15687d7d7f40333bd8266f3814c591c2e2cd263fa2116e314f60d82086e353a",
625
+ "sha256:d5c28525c19f5bb1e09511669bb57353d22b94cf8b65f3a8d141c389a55dec95",
626
+ "sha256:d5f916acf8afbcab6bacbb376ba7dc61f845367901ecd5e328fc4d4aef2fcab0",
627
+ "sha256:dab03ed811ed1c71d700ed08bde8431cf429bbe59e423394f0f4055f1ca0ea60",
628
+ "sha256:db453f2da3f59a348f514cfbfeb042393b68720787bbef2b4c6068ea362c8149",
629
+ "sha256:de2a0645a923ba57c5527497daf8ec5df69c6eadf869e9cd46e86349146e5975",
630
+ "sha256:dea7fcd62915fb150cdc373212141a30037e11b761fbced340e9db3379b892d4",
631
+ "sha256:dfcbebdb3c4b6f739a91769aea5ed615023f3c88cb70df812849aef634c25fbe",
632
+ "sha256:dfcebb950aa7e667ec226a442722134539e77c575f6cfaa423f24371bb8d2e94",
633
+ "sha256:e0641b506486f0b4cd1500a2a65740243e8670a2549bb02bc4556a83af84ae03",
634
+ "sha256:e33b0834f1cf779aa839975f9d8755a7c2420510c0fa1e9fa0497de77cd35d2c",
635
+ "sha256:e4ace1e220b078c8e48e82c081e35002038657e4b37d403ce940fa679e57113b",
636
+ "sha256:e4cf2d5829f6963a5483ec01578ee76d329eb5caf330ecd05b3edd697e7d768a",
637
+ "sha256:e574de99d735b3fc8364cba9912c2bec2da78775eba95cbb225ef7dda6acea24",
638
+ "sha256:e646c0e282e960345314f42f2cea5e0b5f56938c093541ea6dbf11aec2862391",
639
+ "sha256:e8a5ac97ea521d7bde7621d86c30e86b798cdecd985723c4ed737a2aa9e77d0c",
640
+ "sha256:eedf97be7bc3dbc8addcef4142f4b4164066df0c6f36397ae4aaed3eb187d8ab",
641
+ "sha256:ef633add81832f4b56d3b4c9408b43d530dfca29e68fb1b797dcb861a2c734cd",
642
+ "sha256:f27207e8ca3e5e021e2402ba942e5b4c629718e665c81b8b306f3c8b1ddbb786",
643
+ "sha256:f85f3843bdb1fe80e8c206fe6eed7a1caeae897e496542cee499c374a85c6e08",
644
+ "sha256:f8e81e4b55930e5ffab4a68db1af431629cf2e4066dbdbfef65348b8ab804ea8",
645
+ "sha256:f96ae96a060a8072ceff4cfde89d261837b4294a4f28b84a28765470d502ccc6",
646
+ "sha256:fd9e98b408384989ea4ab60206b8e100d8687da18b5c813c11e92fd8212a98e0",
647
+ "sha256:ffff855100bc066ff2cd3aa4a60bc9534661816b110f0243e59503ec2df38421"
648
  ],
649
  "markers": "python_version >= '3.7'",
650
+ "version": "==2.14.6"
651
  },
652
  "pyreadline3": {
653
  "hashes": [
 
657
  "markers": "python_version >= '3.8' and sys_platform == 'win32'",
658
  "version": "==3.4.1"
659
  },
660
+ "python-dateutil": {
661
+ "hashes": [
662
+ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
663
+ "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
664
+ ],
665
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
666
+ "version": "==2.8.2"
667
+ },
668
  "python-multipart": {
669
  "hashes": [
670
  "sha256:e9925a80bb668529f1b67c7fdb0a5dacdd7cbfc6fb0bff3ea443fe22bdd62132",
 
681
  "index": "pypi",
682
  "version": "==15.0.0"
683
  },
684
+ "pytz": {
685
+ "hashes": [
686
+ "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b",
687
+ "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"
688
+ ],
689
+ "version": "==2023.3.post1"
690
+ },
691
  "pyyaml": {
692
  "hashes": [
693
  "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5",
 
754
  },
755
  "setuptools": {
756
  "hashes": [
757
+ "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05",
758
+ "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"
759
  ],
760
  "markers": "python_version >= '3.8'",
761
+ "version": "==69.0.3"
762
+ },
763
+ "six": {
764
+ "hashes": [
765
+ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
766
+ "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
767
+ ],
768
+ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
769
+ "version": "==1.16.0"
770
  },
771
  "sniffio": {
772
  "hashes": [
 
912
  "markers": "python_version >= '3.8'",
913
  "version": "==4.9.0"
914
  },
915
+ "tzdata": {
916
+ "hashes": [
917
+ "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a",
918
+ "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"
919
+ ],
920
+ "markers": "platform_system == 'Windows'",
921
+ "version": "==2023.3"
922
+ },
923
+ "tzlocal": {
924
+ "hashes": [
925
+ "sha256:49816ef2fe65ea8ac19d19aa7a1ae0551c834303d5014c6d5a62e4cbda8047b8",
926
+ "sha256:8d399205578f1a9342816409cc1e46a93ebd5755e39ea2d85334bea911bf0e6e"
927
+ ],
928
+ "markers": "python_version >= '3.8'",
929
+ "version": "==5.2"
930
+ },
931
  "urllib3": {
932
  "hashes": [
933
  "sha256:55901e917a5896a349ff771be919f8bd99aff50b79fe58fec595eb37bbc56bb3",
 
938
  },
939
  "uvicorn": {
940
  "hashes": [
941
+ "sha256:6dddbad1d7ee0f5140aba5ec138ddc9612c5109399903828b4874c9937f009c2",
942
+ "sha256:ce107f5d9bd02b4636001a77a4e74aab5e1e2b146868ebbad565237145af444c"
943
  ],
944
  "index": "pypi",
945
+ "version": "==0.25.0"
946
  }
947
  },
948
  "develop": {}
main.py CHANGED
@@ -1,20 +1,19 @@
1
- from fastapi import FastAPI, UploadFile, File, HTTPException, Form, Depends
2
  from fastapi.responses import FileResponse, HTMLResponse
3
  from fastapi.security import HTTPBasic, HTTPBasicCredentials
4
  from typing import Optional
5
  from utils.process_video import process_video
6
  from utils.zip_response import zip_response
7
  from utils.api_configs import api_configs
 
 
 
8
  import shutil, os, logging, uvicorn, secrets
9
 
10
- logging.basicConfig(filename='main.log',
11
- encoding='utf-8',
12
- level=logging.DEBUG,
13
- format='%(asctime)s %(levelname)s %(message)s',
14
- datefmt='%m/%d/%Y %I:%M:%S %p')
15
-
16
  security = HTTPBasic()
17
- api_configs_file = os.path.abspath("api_config_example.yml")
18
 
19
  def get_current_user(credentials: HTTPBasicCredentials = Depends(security)):
20
  correct_username = secrets.compare_digest(credentials.username, api_configs(api_configs_file)["secrets"]["username"])
@@ -27,7 +26,25 @@ def get_current_user(credentials: HTTPBasicCredentials = Depends(security)):
27
  )
28
  return credentials.username
29
 
30
- app = FastAPI()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
 
32
  @app.get("/")
33
  async def root():
@@ -89,9 +106,9 @@ async def process_video_api(video_file: UploadFile = File(...),
89
  finally:
90
  srt_file.file.close()
91
  logging.info("Processing the video...")
92
- output_path, srt_path = process_video(temp_input_path, SRT_PATH, max_words_per_line, fontsize, font, bg_color, text_color)
93
  logging.info("Archiving response...")
94
- zip_path = zip_response(os.path.join(temp_vid_dir,"archive.zip"), [output_path, srt_path])
95
  return FileResponse(zip_path, media_type='application/zip', filename=f"result_{video_file.filename.split('.')[0]}.zip")
96
  logging.info("Processing the video...")
97
  output_path, srt_path = process_video(temp_input_path, None, max_words_per_line, fontsize, font, bg_color, text_color)
 
1
+ from fastapi import FastAPI, UploadFile, HTTPException, BackgroundTasks, File, Form, Depends
2
  from fastapi.responses import FileResponse, HTMLResponse
3
  from fastapi.security import HTTPBasic, HTTPBasicCredentials
4
  from typing import Optional
5
  from utils.process_video import process_video
6
  from utils.zip_response import zip_response
7
  from utils.api_configs import api_configs
8
+ from utils.archiver import archiver
9
+ from apscheduler.schedulers.asyncio import AsyncIOScheduler
10
+ from datetime import datetime
11
  import shutil, os, logging, uvicorn, secrets
12
 
13
+ app = FastAPI()
14
+ scheduler = AsyncIOScheduler()
 
 
 
 
15
  security = HTTPBasic()
16
+ api_configs_file = os.path.abspath("api_config_example.yml")
17
 
18
  def get_current_user(credentials: HTTPBasicCredentials = Depends(security)):
19
  correct_username = secrets.compare_digest(credentials.username, api_configs(api_configs_file)["secrets"]["username"])
 
26
  )
27
  return credentials.username
28
 
29
+ logging.basicConfig(filename='main.log',
30
+ encoding='utf-8',
31
+ level=logging.DEBUG,
32
+ format='%(asctime)s %(levelname)s %(message)s',
33
+ datefmt='%m/%d/%Y %I:%M:%S %p')
34
+
35
+ # # 0 6 * * 6
36
+ # @pycron.cron("*/5 * * * *")
37
+ async def periodic_archiver(timestamp: datetime):
38
+ archive = os.path.abspath(os.path.join(os.getcwd(),"archive/"))
39
+ archiver(archive, timestamp)
40
+ logging.info(f"Archive writen at {timestamp}")
41
+
42
+ @app.on_event("startup")
43
+ def start_periodic_task():
44
+ # Schedule the job to run once every day at 3:00 AM
45
+ scheduler.add_job(periodic_archiver(datetime.now()), "cron", minute="*/2")
46
+ scheduler.start()
47
+
48
 
49
  @app.get("/")
50
  async def root():
 
106
  finally:
107
  srt_file.file.close()
108
  logging.info("Processing the video...")
109
+ output_path, _ = process_video(temp_input_path, SRT_PATH, max_words_per_line, fontsize, font, bg_color, text_color)
110
  logging.info("Archiving response...")
111
+ zip_path = zip_response(os.path.join(temp_vid_dir,"archive.zip"), [output_path, SRT_PATH])
112
  return FileResponse(zip_path, media_type='application/zip', filename=f"result_{video_file.filename.split('.')[0]}.zip")
113
  logging.info("Processing the video...")
114
  output_path, srt_path = process_video(temp_input_path, None, max_words_per_line, fontsize, font, bg_color, text_color)
utils/archiver.py ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import shutil, os
2
+ from datetime import datetime
3
+
4
+ def archiver(archive:str, timestamp:datetime):
5
+ TEMP_DIR = os.path.abspath("temp/")
6
+ LOG_FILE = os.path.abspath("main.log")
7
+ if os.path.exists(TEMP_DIR):
8
+ shutil.make_archive(os.path.join(archive, f"{timestamp.year:4d}-{timestamp.month:2d}-{timestamp.day:2d}"), 'zip', [TEMP_DIR, LOG_FILE])
9
+ shutil.rmtree(TEMP_DIR)
10
+ if os.path.exists(LOG_FILE):
11
+ os.remove(LOG_FILE)
utils/periodic_archiver.py DELETED
File without changes
utils/process_video.py CHANGED
@@ -1,7 +1,7 @@
1
  # Import necessary modules
2
  from utils.transcriber import transcriber
3
  from utils.subtitler import subtitler
4
- from utils.convert_mp4_to_mp3 import convert_mp4_to_mp3
5
  import logging, os
6
 
7
  # Set up logging
@@ -28,7 +28,7 @@ def process_video(invideo_filename:str,
28
  logging.info("Converting Video to Audio")
29
  INAUDIO_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.m4a")
30
  if not os.path.exists(INAUDIO_PATH):
31
- convert_mp4_to_mp3(invideo_filename, INAUDIO_PATH)
32
  SRT_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.srt")
33
  logging.info("Transcribing...")
34
  if not os.path.exists(SRT_PATH):
 
1
  # Import necessary modules
2
  from utils.transcriber import transcriber
3
  from utils.subtitler import subtitler
4
+ from utils.convert_video_to_audio import convert_video_to_audio
5
  import logging, os
6
 
7
  # Set up logging
 
28
  logging.info("Converting Video to Audio")
29
  INAUDIO_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.m4a")
30
  if not os.path.exists(INAUDIO_PATH):
31
+ convert_video_to_audio(invideo_filename, INAUDIO_PATH)
32
  SRT_PATH = os.path.abspath(f"{invideo_filename.split('.')[0]}.srt")
33
  logging.info("Transcribing...")
34
  if not os.path.exists(SRT_PATH):