aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 83565ce7b09f4bb70b94baaf0e347d0683b146c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# vaporwave generator 旺育栄

A vaporwave music + image + video (+art soon, I promise) generator bodged together using code from various sources. Runs on Python 3. VHSVideo option is really really slow (Seconds per frame is 7.)

```
vaporwave generator 旺育栄 2.5
usage: main.py [-h] [-M] [-P] [-V] [-v] [-i INPUT] [-o OUTPUT] [-d DATE]
               [-t TIME]

| V A P O R W A V E || G E N E R A T O R |

optional arguments:
  -h, --help            show this help message and exit
  -M, --music           generate v a p o r w a v e music
  -P, --picture         generate VHS Style image
  -V, --video           VHS Style Video
  -v, --version         show program version
  -i INPUT, --input INPUT
  -o OUTPUT, --output OUTPUT
                        Output for specifying output video
  -d DATE, --date DATE  Custom Date in yyyy/mm/dd format. e.g 2020/5/14
  -t TIME, --time TIME  Custom Time in HH:MM format. e.g 11:23                   
```

If the program gives an error for sox, try running `ulimit -n 999'`. You may also need to run `chmod +x get-beats`

## Demo

### M U S I C

Sample Album:

https://www.bandlab.com/programming_psychic/albums/844f21a0-fa65-ea11-a94c-0003ffd19c0f

### V H S  I M A G E

#### Input

![](assets/in-vhs.jpg?raw=true "Input VHS")

#### Output

![](assets/out-vhs.jpg?raw=true "Output VHS")

### V H S  V I D E O

See `in.mp4` and `out.mp4` in the `assets` folder

#### Input

![](assets/in.gif?raw=true "Input Video")

#### Output

![](assets/out.gif?raw=true "Output Video")


## Installation

This was tested on macOS Catalina ( so should work on almost all macOS versions).
Windows is unsupported at this time ( I need to find a way to use aubio's python module)

### Dependencies

#### Linux

```
sudo apt install ffmpeg ffprobe libavl1 sox
pip install -r requirements.txt
```

#### macOS

Make sure you have brew installed

```
brew install noah # I would have had to re-compile the executeable :(
brew install sox
pip install -r requirements.txt
```

## Usage

### M U S I C

#### YouTube URL
```
python3 main.py -M -i <YOUTUBE_URL>
```
#### Song Title
```
python3 main.py -M -i Song Title
```

### V H S  I M A G E S

`python3 main.py -P -i "image.jpg"`

### V H S  V I D E O

`python3 main.py -V -i "video.mp4" -o "output.mp4"`

## Bugs

This project is a result of bodging and therefore has tons of bugs which need to be ironed out. I need to swat some bugs in the VHSVideo file.

There might be a problem with the generated video not having audio, for that run the following 

`ffmpeg -i video.mp4 -vn -acodec copy output-audio.aac`
`ffmpeg -i output.mp4 -i output-audio.aac -c copy output-with-audio.mp4`


## To-Do

- [ ] Move away from using os.system calls, and use Python modules instead ( Looking at you, Sox and aubio)
- [x] Clean the Code
- [ ] Add Artwork Generator
- [x] VHS Picture Styler ( Added in v1.5 )
- [x] Add Video Generator
- [x] Add Custom Date to VHS Styler

## Credits

@WJLiddy His repo `Macintech` forms the base code for the music generator

@felipecustodio Using his repo `virtualdreamsbot` YouTube DL code ( Hopefully I will be able to integrate this project as a Telegram Bot)

@Ragex04 His repo `VHS_BingImages` forms the base code for the VHS Image Styler