Initial commit

This commit is contained in:
pance lalkov 2023-12-22 19:05:56 +01:00
commit 73521d3cd5
97 changed files with 40614 additions and 0 deletions

BIN
base_includes/heart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
base_includes/next_bro.ttf Normal file

Binary file not shown.

29512
base_includes/nuklear.h Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,506 @@
/*
* Nuklear - 1.32.0 - public domain
* no warrenty implied; use at your own risk.
* authored from 2015-2016 by Micha Mettke
*/
/*
* ==============================================================
*
* API
*
* ===============================================================
*/
#ifndef NK_GLFW_GL3_H
#define NK_GLFW_GL3_H
#include <GLFW/glfw3.h>
enum nk_glfw_init_state{
NK_GLFW3_DEFAULT=0,
NK_GLFW3_INSTALL_CALLBACKS
};
#ifndef NK_GLFW_TEXT_MAX
#define NK_GLFW_TEXT_MAX 256
#endif
struct nk_glfw_device {
struct nk_buffer cmds;
struct nk_draw_null_texture null;
GLuint vbo, vao, ebo;
GLuint prog;
GLuint vert_shdr;
GLuint frag_shdr;
GLint attrib_pos;
GLint attrib_uv;
GLint attrib_col;
GLint uniform_tex;
GLint uniform_proj;
GLuint font_tex;
};
struct nk_glfw {
GLFWwindow *win;
int width, height;
int display_width, display_height;
struct nk_glfw_device ogl;
struct nk_context ctx;
struct nk_font_atlas atlas;
struct nk_vec2 fb_scale;
unsigned int text[NK_GLFW_TEXT_MAX];
int text_len;
struct nk_vec2 scroll;
double last_button_click;
int is_double_click_down;
struct nk_vec2 double_click_pos;
};
NK_API struct nk_context* nk_glfw3_init(struct nk_glfw* glfw, GLFWwindow *win, enum nk_glfw_init_state);
NK_API void nk_glfw3_shutdown(struct nk_glfw* glfw);
NK_API void nk_glfw3_font_stash_begin(struct nk_glfw* glfw, struct nk_font_atlas **atlas);
NK_API void nk_glfw3_font_stash_end(struct nk_glfw* glfw);
NK_API void nk_glfw3_new_frame(struct nk_glfw* glfw);
NK_API void nk_glfw3_render(struct nk_glfw* glfw, enum nk_anti_aliasing, int max_vertex_buffer, int max_element_buffer);
NK_API void nk_glfw3_device_destroy(struct nk_glfw* glfw);
NK_API void nk_glfw3_device_create(struct nk_glfw* glfw);
NK_API void nk_glfw3_char_callback(GLFWwindow *win, unsigned int codepoint);
NK_API void nk_gflw3_scroll_callback(GLFWwindow *win, double xoff, double yoff);
NK_API void nk_glfw3_mouse_button_callback(GLFWwindow *win, int button, int action, int mods);
#endif
/*
* ==============================================================
*
* IMPLEMENTATION
*
* ===============================================================
*/
#ifdef NK_GLFW_GL3_IMPLEMENTATION
#ifndef NK_GLFW_DOUBLE_CLICK_LO
#define NK_GLFW_DOUBLE_CLICK_LO 0.02
#endif
#ifndef NK_GLFW_DOUBLE_CLICK_HI
#define NK_GLFW_DOUBLE_CLICK_HI 0.2
#endif
struct nk_glfw_vertex {
float position[2];
float uv[2];
nk_byte col[4];
};
#ifdef __APPLE__
#define NK_SHADER_VERSION "#version 150\n"
#else
#define NK_SHADER_VERSION "#version 300 es\n"
#endif
NK_API void
nk_glfw3_device_create(struct nk_glfw* glfw)
{
GLint status;
static const GLchar *vertex_shader =
NK_SHADER_VERSION
"uniform mat4 ProjMtx;\n"
"in vec2 Position;\n"
"in vec2 TexCoord;\n"
"in vec4 Color;\n"
"out vec2 Frag_UV;\n"
"out vec4 Frag_Color;\n"
"void main() {\n"
" Frag_UV = TexCoord;\n"
" Frag_Color = Color;\n"
" gl_Position = ProjMtx * vec4(Position.xy, 0, 1);\n"
"}\n";
static const GLchar *fragment_shader =
NK_SHADER_VERSION
"precision mediump float;\n"
"uniform sampler2D Texture;\n"
"in vec2 Frag_UV;\n"
"in vec4 Frag_Color;\n"
"out vec4 Out_Color;\n"
"void main(){\n"
" Out_Color = Frag_Color * texture(Texture, Frag_UV.st);\n"
"}\n";
struct nk_glfw_device *dev = &glfw->ogl;
nk_buffer_init_default(&dev->cmds);
dev->prog = glCreateProgram();
dev->vert_shdr = glCreateShader(GL_VERTEX_SHADER);
dev->frag_shdr = glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(dev->vert_shdr, 1, &vertex_shader, 0);
glShaderSource(dev->frag_shdr, 1, &fragment_shader, 0);
glCompileShader(dev->vert_shdr);
glCompileShader(dev->frag_shdr);
glGetShaderiv(dev->vert_shdr, GL_COMPILE_STATUS, &status);
assert(status == GL_TRUE);
glGetShaderiv(dev->frag_shdr, GL_COMPILE_STATUS, &status);
assert(status == GL_TRUE);
glAttachShader(dev->prog, dev->vert_shdr);
glAttachShader(dev->prog, dev->frag_shdr);
glLinkProgram(dev->prog);
glGetProgramiv(dev->prog, GL_LINK_STATUS, &status);
assert(status == GL_TRUE);
dev->uniform_tex = glGetUniformLocation(dev->prog, "Texture");
dev->uniform_proj = glGetUniformLocation(dev->prog, "ProjMtx");
dev->attrib_pos = glGetAttribLocation(dev->prog, "Position");
dev->attrib_uv = glGetAttribLocation(dev->prog, "TexCoord");
dev->attrib_col = glGetAttribLocation(dev->prog, "Color");
{
/* buffer setup */
GLsizei vs = sizeof(struct nk_glfw_vertex);
size_t vp = offsetof(struct nk_glfw_vertex, position);
size_t vt = offsetof(struct nk_glfw_vertex, uv);
size_t vc = offsetof(struct nk_glfw_vertex, col);
glGenBuffers(1, &dev->vbo);
glGenBuffers(1, &dev->ebo);
glGenVertexArrays(1, &dev->vao);
glBindVertexArray(dev->vao);
glBindBuffer(GL_ARRAY_BUFFER, dev->vbo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, dev->ebo);
glEnableVertexAttribArray((GLuint)dev->attrib_pos);
glEnableVertexAttribArray((GLuint)dev->attrib_uv);
glEnableVertexAttribArray((GLuint)dev->attrib_col);
glVertexAttribPointer((GLuint)dev->attrib_pos, 2, GL_FLOAT, GL_FALSE, vs, (void*)vp);
glVertexAttribPointer((GLuint)dev->attrib_uv, 2, GL_FLOAT, GL_FALSE, vs, (void*)vt);
glVertexAttribPointer((GLuint)dev->attrib_col, 4, GL_UNSIGNED_BYTE, GL_TRUE, vs, (void*)vc);
}
glBindTexture(GL_TEXTURE_2D, 0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glBindVertexArray(0);
}
NK_INTERN void
nk_glfw3_device_upload_atlas(struct nk_glfw* glfw, const void *image, int width, int height)
{
struct nk_glfw_device *dev = &glfw->ogl;
glGenTextures(1, &dev->font_tex);
glBindTexture(GL_TEXTURE_2D, dev->font_tex);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (GLsizei)width, (GLsizei)height, 0,
GL_RGBA, GL_UNSIGNED_BYTE, image);
}
NK_API void
nk_glfw3_device_destroy(struct nk_glfw* glfw)
{
struct nk_glfw_device *dev = &glfw->ogl;
glDetachShader(dev->prog, dev->vert_shdr);
glDetachShader(dev->prog, dev->frag_shdr);
glDeleteShader(dev->vert_shdr);
glDeleteShader(dev->frag_shdr);
glDeleteProgram(dev->prog);
glDeleteTextures(1, &dev->font_tex);
glDeleteBuffers(1, &dev->vbo);
glDeleteBuffers(1, &dev->ebo);
nk_buffer_free(&dev->cmds);
}
NK_API void
nk_glfw3_render(struct nk_glfw* glfw, enum nk_anti_aliasing AA, int max_vertex_buffer, int max_element_buffer)
{
struct nk_glfw_device *dev = &glfw->ogl;
struct nk_buffer vbuf, ebuf;
GLfloat ortho[4][4] = {
{2.0f, 0.0f, 0.0f, 0.0f},
{0.0f,-2.0f, 0.0f, 0.0f},
{0.0f, 0.0f,-1.0f, 0.0f},
{-1.0f,1.0f, 0.0f, 1.0f},
};
ortho[0][0] /= (GLfloat)glfw->width;
ortho[1][1] /= (GLfloat)glfw->height;
/* setup global state */
glEnable(GL_BLEND);
glBlendEquation(GL_FUNC_ADD);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glEnable(GL_SCISSOR_TEST);
glActiveTexture(GL_TEXTURE0);
/* setup program */
glUseProgram(dev->prog);
glUniform1i(dev->uniform_tex, 0);
glUniformMatrix4fv(dev->uniform_proj, 1, GL_FALSE, &ortho[0][0]);
glViewport(0,0,(GLsizei)glfw->display_width,(GLsizei)glfw->display_height);
{
/* convert from command queue into draw list and draw to screen */
const struct nk_draw_command *cmd;
void *vertices, *elements;
const nk_draw_index *offset = NULL;
/* allocate vertex and element buffer */
glBindVertexArray(dev->vao);
glBindBuffer(GL_ARRAY_BUFFER, dev->vbo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, dev->ebo);
glBufferData(GL_ARRAY_BUFFER, max_vertex_buffer, NULL, GL_STREAM_DRAW);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, max_element_buffer, NULL, GL_STREAM_DRAW);
/* load draw vertices & elements directly into vertex + element buffer */
vertices = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
elements = glMapBuffer(GL_ELEMENT_ARRAY_BUFFER, GL_WRITE_ONLY);
{
/* fill convert configuration */
struct nk_convert_config config;
static const struct nk_draw_vertex_layout_element vertex_layout[] = {
{NK_VERTEX_POSITION, NK_FORMAT_FLOAT, NK_OFFSETOF(struct nk_glfw_vertex, position)},
{NK_VERTEX_TEXCOORD, NK_FORMAT_FLOAT, NK_OFFSETOF(struct nk_glfw_vertex, uv)},
{NK_VERTEX_COLOR, NK_FORMAT_R8G8B8A8, NK_OFFSETOF(struct nk_glfw_vertex, col)},
{NK_VERTEX_LAYOUT_END}
};
NK_MEMSET(&config, 0, sizeof(config));
config.vertex_layout = vertex_layout;
config.vertex_size = sizeof(struct nk_glfw_vertex);
config.vertex_alignment = NK_ALIGNOF(struct nk_glfw_vertex);
config.null = dev->null;
config.circle_segment_count = 22;
config.curve_segment_count = 22;
config.arc_segment_count = 22;
config.global_alpha = 1.0f;
config.shape_AA = AA;
config.line_AA = AA;
/* setup buffers to load vertices and elements */
nk_buffer_init_fixed(&vbuf, vertices, (size_t)max_vertex_buffer);
nk_buffer_init_fixed(&ebuf, elements, (size_t)max_element_buffer);
nk_convert(&glfw->ctx, &dev->cmds, &vbuf, &ebuf, &config);
}
glUnmapBuffer(GL_ARRAY_BUFFER);
glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER);
/* iterate over and execute each draw command */
nk_draw_foreach(cmd, &glfw->ctx, &dev->cmds)
{
if (!cmd->elem_count) continue;
glBindTexture(GL_TEXTURE_2D, (GLuint)cmd->texture.id);
glScissor(
(GLint)(cmd->clip_rect.x * glfw->fb_scale.x),
(GLint)((glfw->height - (GLint)(cmd->clip_rect.y + cmd->clip_rect.h)) * glfw->fb_scale.y),
(GLint)(cmd->clip_rect.w * glfw->fb_scale.x),
(GLint)(cmd->clip_rect.h * glfw->fb_scale.y));
glDrawElements(GL_TRIANGLES, (GLsizei)cmd->elem_count, GL_UNSIGNED_SHORT, offset);
offset += cmd->elem_count;
}
nk_clear(&glfw->ctx);
nk_buffer_clear(&dev->cmds);
}
/* default OpenGL state */
glUseProgram(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glBindVertexArray(0);
glDisable(GL_BLEND);
glDisable(GL_SCISSOR_TEST);
}
NK_API void
nk_glfw3_char_callback(GLFWwindow *win, unsigned int codepoint)
{
struct nk_glfw* glfw = glfwGetWindowUserPointer(win);
if (glfw->text_len < NK_GLFW_TEXT_MAX)
glfw->text[glfw->text_len++] = codepoint;
}
NK_API void
nk_gflw3_scroll_callback(GLFWwindow *win, double xoff, double yoff)
{
struct nk_glfw* glfw = glfwGetWindowUserPointer(win);
(void)xoff;
glfw->scroll.x += (float)xoff;
glfw->scroll.y += (float)yoff;
}
NK_API void
nk_glfw3_mouse_button_callback(GLFWwindow* win, int button, int action, int mods)
{
double x, y;
if (button != GLFW_MOUSE_BUTTON_LEFT) return;
struct nk_glfw* glfw = glfwGetWindowUserPointer(win);
glfwGetCursorPos(win, &x, &y);
if (action == GLFW_PRESS) {
double dt = glfwGetTime() - glfw->last_button_click;
if (dt > NK_GLFW_DOUBLE_CLICK_LO && dt < NK_GLFW_DOUBLE_CLICK_HI) {
glfw->is_double_click_down = nk_true;
glfw->double_click_pos = nk_vec2((float)x, (float)y);
}
glfw->last_button_click = glfwGetTime();
} else glfw->is_double_click_down = nk_false;
}
NK_INTERN void
nk_glfw3_clipboard_paste(nk_handle usr, struct nk_text_edit *edit)
{
struct nk_glfw* glfw = usr.ptr;
const char *text = glfwGetClipboardString(glfw->win);
if (text) nk_textedit_paste(edit, text, nk_strlen(text));
(void)usr;
}
NK_INTERN void
nk_glfw3_clipboard_copy(nk_handle usr, const char *text, int len)
{
char *str = 0;
if (!len) return;
str = (char*)malloc((size_t)len+1);
if (!str) return;
memcpy(str, text, (size_t)len);
str[len] = '\0';
struct nk_glfw* glfw = usr.ptr;
glfwSetClipboardString(glfw->win, str);
free(str);
}
NK_API struct nk_context*
nk_glfw3_init(struct nk_glfw* glfw, GLFWwindow *win, enum nk_glfw_init_state init_state)
{
glfwSetWindowUserPointer(win, glfw);
glfw->win = win;
if (init_state == NK_GLFW3_INSTALL_CALLBACKS) {
glfwSetScrollCallback(win, nk_gflw3_scroll_callback);
glfwSetCharCallback(win, nk_glfw3_char_callback);
glfwSetMouseButtonCallback(win, nk_glfw3_mouse_button_callback);
}
nk_init_default(&glfw->ctx, 0);
glfw->ctx.clip.copy = nk_glfw3_clipboard_copy;
glfw->ctx.clip.paste = nk_glfw3_clipboard_paste;
glfw->ctx.clip.userdata = nk_handle_ptr(0);
glfw->last_button_click = 0;
nk_glfw3_device_create(glfw);
glfw->is_double_click_down = nk_false;
glfw->double_click_pos = nk_vec2(0, 0);
return &glfw->ctx;
}
NK_API void
nk_glfw3_font_stash_begin(struct nk_glfw* glfw, struct nk_font_atlas **atlas)
{
nk_font_atlas_init_default(&glfw->atlas);
nk_font_atlas_begin(&glfw->atlas);
*atlas = &glfw->atlas;
}
NK_API void
nk_glfw3_font_stash_end(struct nk_glfw* glfw)
{
const void *image; int w, h;
image = nk_font_atlas_bake(&glfw->atlas, &w, &h, NK_FONT_ATLAS_RGBA32);
nk_glfw3_device_upload_atlas(glfw, image, w, h);
nk_font_atlas_end(&glfw->atlas, nk_handle_id((int)glfw->ogl.font_tex), &glfw->ogl.null);
if (glfw->atlas.default_font)
nk_style_set_font(&glfw->ctx, &glfw->atlas.default_font->handle);
}
NK_API void
nk_glfw3_new_frame(struct nk_glfw* glfw)
{
int i;
double x, y;
struct nk_context *ctx = &glfw->ctx;
struct GLFWwindow *win = glfw->win;
glfwGetWindowSize(win, &glfw->width, &glfw->height);
glfwGetFramebufferSize(win, &glfw->display_width, &glfw->display_height);
glfw->fb_scale.x = (float)glfw->display_width/(float)glfw->width;
glfw->fb_scale.y = (float)glfw->display_height/(float)glfw->height;
nk_input_begin(ctx);
for (i = 0; i < glfw->text_len; ++i)
nk_input_unicode(ctx, glfw->text[i]);
#ifdef NK_GLFW_GL3_MOUSE_GRABBING
/* optional grabbing behavior */
if (ctx->input.mouse.grab)
glfwSetInputMode(glfw.win, GLFW_CURSOR, GLFW_CURSOR_HIDDEN);
else if (ctx->input.mouse.ungrab)
glfwSetInputMode(glfw->win, GLFW_CURSOR, GLFW_CURSOR_NORMAL);
#endif
nk_input_key(ctx, NK_KEY_U, glfwGetKey(win, GLFW_KEY_U) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_A, glfwGetKey(win, GLFW_KEY_A) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_I, glfwGetKey(win, GLFW_KEY_I) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_R, glfwGetKey(win, GLFW_KEY_R) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_B, glfwGetKey(win, GLFW_KEY_B) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_O, glfwGetKey(win, GLFW_KEY_O) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_Q, glfwGetKey(win, GLFW_KEY_Q) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_D, glfwGetKey(win, GLFW_KEY_D) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_DEL, glfwGetKey(win, GLFW_KEY_DELETE) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_ENTER, glfwGetKey(win, GLFW_KEY_ENTER) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TAB, glfwGetKey(win, GLFW_KEY_TAB) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_BACKSPACE, glfwGetKey(win, GLFW_KEY_BACKSPACE) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_UP, glfwGetKey(win, GLFW_KEY_UP) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_DOWN, glfwGetKey(win, GLFW_KEY_DOWN) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_START, glfwGetKey(win, GLFW_KEY_HOME) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_END, glfwGetKey(win, GLFW_KEY_END) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_SCROLL_START, glfwGetKey(win, GLFW_KEY_HOME) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_SCROLL_END, glfwGetKey(win, GLFW_KEY_END) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_SCROLL_DOWN, glfwGetKey(win, GLFW_KEY_PAGE_DOWN) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_SCROLL_UP, glfwGetKey(win, GLFW_KEY_PAGE_UP) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_SHIFT, glfwGetKey(win, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS||
glfwGetKey(win, GLFW_KEY_RIGHT_SHIFT) == GLFW_PRESS);
if (glfwGetKey(win, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS ||
glfwGetKey(win, GLFW_KEY_RIGHT_CONTROL) == GLFW_PRESS) {
nk_input_key(ctx, NK_KEY_COPY, glfwGetKey(win, GLFW_KEY_C) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_PASTE, glfwGetKey(win, GLFW_KEY_V) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_CUT, glfwGetKey(win, GLFW_KEY_X) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_UNDO, glfwGetKey(win, GLFW_KEY_Z) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_REDO, glfwGetKey(win, GLFW_KEY_R) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_WORD_LEFT, glfwGetKey(win, GLFW_KEY_LEFT) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_WORD_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_LINE_START, glfwGetKey(win, GLFW_KEY_B) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_TEXT_LINE_END, glfwGetKey(win, GLFW_KEY_E) == GLFW_PRESS);
} else {
nk_input_key(ctx, NK_KEY_LEFT, glfwGetKey(win, GLFW_KEY_LEFT) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_RIGHT, glfwGetKey(win, GLFW_KEY_RIGHT) == GLFW_PRESS);
nk_input_key(ctx, NK_KEY_COPY, 0);
nk_input_key(ctx, NK_KEY_PASTE, 0);
nk_input_key(ctx, NK_KEY_CUT, 0);
nk_input_key(ctx, NK_KEY_SHIFT, 0);
}
glfwGetCursorPos(win, &x, &y);
nk_input_motion(ctx, (int)x, (int)y);
#ifdef NK_GLFW_GL3_MOUSE_GRABBING
if (ctx->input.mouse.grabbed) {
glfwSetCursorPos(glfw->win, ctx->input.mouse.prev.x, ctx->input.mouse.prev.y);
ctx->input.mouse.pos.x = ctx->input.mouse.prev.x;
ctx->input.mouse.pos.y = ctx->input.mouse.prev.y;
}
#endif
nk_input_button(ctx, NK_BUTTON_LEFT, (int)x, (int)y, glfwGetMouseButton(win, GLFW_MOUSE_BUTTON_LEFT) == GLFW_PRESS);
nk_input_button(ctx, NK_BUTTON_MIDDLE, (int)x, (int)y, glfwGetMouseButton(win, GLFW_MOUSE_BUTTON_MIDDLE) == GLFW_PRESS);
nk_input_button(ctx, NK_BUTTON_RIGHT, (int)x, (int)y, glfwGetMouseButton(win, GLFW_MOUSE_BUTTON_RIGHT) == GLFW_PRESS);
nk_input_button(ctx, NK_BUTTON_DOUBLE, (int)glfw->double_click_pos.x, (int)glfw->double_click_pos.y, glfw->is_double_click_down);
nk_input_scroll(ctx, glfw->scroll);
nk_input_end(&glfw->ctx);
glfw->text_len = 0;
glfw->scroll = nk_vec2(0,0);
}
NK_API
void nk_glfw3_shutdown(struct nk_glfw* glfw)
{
nk_font_atlas_clear(&glfw->atlas);
nk_free(&glfw->ctx);
nk_glfw3_device_destroy(glfw);
memset(glfw, 0, sizeof(*glfw));
}
#endif

View File

@ -0,0 +1 @@
theme = CNUK

6509
base_includes/stb_image.h Normal file

File diff suppressed because it is too large Load Diff

163
base_includes/style.c Normal file
View File

@ -0,0 +1,163 @@
enum theme {THEME_BLACK, THEME_WHITE, THEME_RED, THEME_MOON, THEME_DARK, THEME_PERSONAL_ORANGE};
static void
set_style(struct nk_context *ctx, enum theme theme)
{
struct nk_color table[NK_COLOR_COUNT];
if (theme == THEME_WHITE) {
table[NK_COLOR_TEXT] = nk_rgba(70, 70, 70, 255);
table[NK_COLOR_WINDOW] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_HEADER] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_BORDER] = nk_rgba(0, 0, 0, 255);
table[NK_COLOR_BUTTON] = nk_rgba(185, 185, 185, 255);
table[NK_COLOR_BUTTON_HOVER] = nk_rgba(170, 170, 170, 255);
table[NK_COLOR_BUTTON_ACTIVE] = nk_rgba(160, 160, 160, 255);
table[NK_COLOR_TOGGLE] = nk_rgba(150, 150, 150, 255);
table[NK_COLOR_TOGGLE_HOVER] = nk_rgba(120, 120, 120, 255);
table[NK_COLOR_TOGGLE_CURSOR] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_SELECT] = nk_rgba(190, 190, 190, 255);
table[NK_COLOR_SELECT_ACTIVE] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_SLIDER] = nk_rgba(190, 190, 190, 255);
table[NK_COLOR_SLIDER_CURSOR] = nk_rgba(80, 80, 80, 255);
table[NK_COLOR_SLIDER_CURSOR_HOVER] = nk_rgba(70, 70, 70, 255);
table[NK_COLOR_SLIDER_CURSOR_ACTIVE] = nk_rgba(60, 60, 60, 255);
table[NK_COLOR_PROPERTY] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_EDIT] = nk_rgba(150, 150, 150, 255);
table[NK_COLOR_EDIT_CURSOR] = nk_rgba(0, 0, 0, 255);
table[NK_COLOR_COMBO] = nk_rgba(175, 175, 175, 255);
table[NK_COLOR_CHART] = nk_rgba(160, 160, 160, 255);
table[NK_COLOR_CHART_COLOR] = nk_rgba(45, 45, 45, 255);
table[NK_COLOR_CHART_COLOR_HIGHLIGHT] = nk_rgba( 255, 0, 0, 255);
table[NK_COLOR_SCROLLBAR] = nk_rgba(180, 180, 180, 255);
table[NK_COLOR_SCROLLBAR_CURSOR] = nk_rgba(140, 140, 140, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_HOVER] = nk_rgba(150, 150, 150, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_ACTIVE] = nk_rgba(160, 160, 160, 255);
table[NK_COLOR_TAB_HEADER] = nk_rgba(180, 180, 180, 255);
nk_style_from_table(ctx, table);
} else if (theme == THEME_RED) {
table[NK_COLOR_TEXT] = nk_rgba(190, 190, 190, 255);
table[NK_COLOR_WINDOW] = nk_rgba(30, 33, 40, 215);
table[NK_COLOR_HEADER] = nk_rgba(181, 45, 69, 220);
table[NK_COLOR_BORDER] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_BUTTON] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_BUTTON_HOVER] = nk_rgba(190, 50, 70, 255);
table[NK_COLOR_BUTTON_ACTIVE] = nk_rgba(195, 55, 75, 255);
table[NK_COLOR_TOGGLE] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_TOGGLE_HOVER] = nk_rgba(45, 60, 60, 255);
table[NK_COLOR_TOGGLE_CURSOR] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SELECT] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_SELECT_ACTIVE] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SLIDER] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_SLIDER_CURSOR] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SLIDER_CURSOR_HOVER] = nk_rgba(186, 50, 74, 255);
table[NK_COLOR_SLIDER_CURSOR_ACTIVE] = nk_rgba(191, 55, 79, 255);
table[NK_COLOR_PROPERTY] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_EDIT] = nk_rgba(51, 55, 67, 225);
table[NK_COLOR_EDIT_CURSOR] = nk_rgba(190, 190, 190, 255);
table[NK_COLOR_COMBO] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_CHART] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_CHART_COLOR] = nk_rgba(170, 40, 60, 255);
table[NK_COLOR_CHART_COLOR_HIGHLIGHT] = nk_rgba( 255, 0, 0, 255);
table[NK_COLOR_SCROLLBAR] = nk_rgba(30, 33, 40, 255);
table[NK_COLOR_SCROLLBAR_CURSOR] = nk_rgba(64, 84, 95, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_HOVER] = nk_rgba(70, 90, 100, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_ACTIVE] = nk_rgba(75, 95, 105, 255);
table[NK_COLOR_TAB_HEADER] = nk_rgba(181, 45, 69, 220);
nk_style_from_table(ctx, table);
} else if (theme == THEME_MOON) {
table[NK_COLOR_TEXT] = nk_rgba(255, 255, 255, 255);
table[NK_COLOR_WINDOW] = nk_rgba(1, 10, 30, 255);
table[NK_COLOR_HEADER] = nk_rgba(137, 182, 224, 220);
table[NK_COLOR_BORDER] = nk_rgba(255, 255, 255, 255);
//table[NK_COLOR_BUTTON] = nk_rgba(1, 30, 100, 255);
table[NK_COLOR_BUTTON] = nk_rgba(1, 18, 70, 255);
table[NK_COLOR_BUTTON_HOVER] = nk_rgba(1, 30, 100, 255);
table[NK_COLOR_BUTTON_ACTIVE] = nk_rgba(1, 30, 100, 255);
table[NK_COLOR_TOGGLE] = nk_rgba(1, 100, 255, 255);
table[NK_COLOR_TOGGLE_HOVER] = nk_rgba(1, 100, 255, 255);
table[NK_COLOR_TOGGLE_CURSOR] = nk_rgba(1, 100, 255, 255);
table[NK_COLOR_SELECT] = nk_rgba(1, 100, 255, 255);
table[NK_COLOR_SELECT_ACTIVE] = nk_rgba(1, 100, 255, 255);
table[NK_COLOR_SLIDER] = nk_rgba(177, 210, 210, 255);
table[NK_COLOR_SLIDER_CURSOR] = nk_rgba(137, 182, 224, 245);
table[NK_COLOR_SLIDER_CURSOR_HOVER] = nk_rgba(142, 188, 229, 255);
table[NK_COLOR_SLIDER_CURSOR_ACTIVE] = nk_rgba(147, 193, 234, 255);
table[NK_COLOR_PROPERTY] = nk_rgba(210, 210, 210, 255);
table[NK_COLOR_EDIT] = nk_rgba(210, 210, 210, 225);
table[NK_COLOR_EDIT_CURSOR] = nk_rgba(20, 20, 20, 255);
table[NK_COLOR_COMBO] = nk_rgba(210, 210, 210, 255);
table[NK_COLOR_CHART] = nk_rgba(210, 210, 210, 255);
table[NK_COLOR_CHART_COLOR] = nk_rgba(137, 182, 224, 255);
table[NK_COLOR_CHART_COLOR_HIGHLIGHT] = nk_rgba( 255, 0, 0, 255);
table[NK_COLOR_SCROLLBAR] = nk_rgba(190, 200, 200, 255);
table[NK_COLOR_SCROLLBAR_CURSOR] = nk_rgba(64, 84, 95, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_HOVER] = nk_rgba(70, 90, 100, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_ACTIVE] = nk_rgba(75, 95, 105, 255);
table[NK_COLOR_TAB_HEADER] = nk_rgba(156, 193, 220, 255);
nk_style_from_table(ctx, table);
} else if (theme == THEME_DARK) {
table[NK_COLOR_TEXT] = nk_rgba(210, 210, 210, 255);
table[NK_COLOR_WINDOW] = nk_rgba(57, 67, 71, 215);
table[NK_COLOR_HEADER] = nk_rgba(51, 51, 56, 220);
table[NK_COLOR_BORDER] = nk_rgba(46, 46, 46, 255);
table[NK_COLOR_BUTTON] = nk_rgba(48, 83, 111, 255);
table[NK_COLOR_BUTTON_HOVER] = nk_rgba(58, 93, 121, 255);
table[NK_COLOR_BUTTON_ACTIVE] = nk_rgba(63, 98, 126, 255);
table[NK_COLOR_TOGGLE] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_TOGGLE_HOVER] = nk_rgba(45, 53, 56, 255);
table[NK_COLOR_TOGGLE_CURSOR] = nk_rgba(48, 83, 111, 255);
table[NK_COLOR_SELECT] = nk_rgba(57, 67, 61, 255);
table[NK_COLOR_SELECT_ACTIVE] = nk_rgba(48, 83, 111, 255);
table[NK_COLOR_SLIDER] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_SLIDER_CURSOR] = nk_rgba(48, 83, 111, 245);
table[NK_COLOR_SLIDER_CURSOR_HOVER] = nk_rgba(53, 88, 116, 255);
table[NK_COLOR_SLIDER_CURSOR_ACTIVE] = nk_rgba(58, 93, 121, 255);
table[NK_COLOR_PROPERTY] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_EDIT] = nk_rgba(50, 58, 61, 225);
table[NK_COLOR_EDIT_CURSOR] = nk_rgba(210, 210, 210, 255);
table[NK_COLOR_COMBO] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_CHART] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_CHART_COLOR] = nk_rgba(48, 83, 111, 255);
table[NK_COLOR_CHART_COLOR_HIGHLIGHT] = nk_rgba(255, 0, 0, 255);
table[NK_COLOR_SCROLLBAR] = nk_rgba(50, 58, 61, 255);
table[NK_COLOR_SCROLLBAR_CURSOR] = nk_rgba(48, 83, 111, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_HOVER] = nk_rgba(53, 88, 116, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_ACTIVE] = nk_rgba(58, 93, 121, 255);
table[NK_COLOR_TAB_HEADER] = nk_rgba(48, 83, 111, 255);
nk_style_from_table(ctx, table);
} else if (theme == THEME_PERSONAL_ORANGE) {
table[NK_COLOR_TEXT] = nk_rgba(255, 255, 255, 255);
table[NK_COLOR_WINDOW] = nk_rgba(225, 130, 130, 255);
table[NK_COLOR_HEADER] = nk_rgba(181, 45, 69, 220);
table[NK_COLOR_BORDER] = nk_rgba(255, 255, 255, 255);
table[NK_COLOR_BUTTON] = nk_rgba(255, 150, 100, 255);
table[NK_COLOR_BUTTON_HOVER] = nk_rgba(190, 50, 70, 255);
table[NK_COLOR_BUTTON_ACTIVE] = nk_rgba(195, 55, 75, 255);
table[NK_COLOR_TOGGLE] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_TOGGLE_HOVER] = nk_rgba(45, 60, 60, 255);
table[NK_COLOR_TOGGLE_CURSOR] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SELECT] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_SELECT_ACTIVE] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SLIDER] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_SLIDER_CURSOR] = nk_rgba(181, 45, 69, 255);
table[NK_COLOR_SLIDER_CURSOR_HOVER] = nk_rgba(186, 50, 74, 255);
table[NK_COLOR_SLIDER_CURSOR_ACTIVE] = nk_rgba(191, 55, 79, 255);
table[NK_COLOR_PROPERTY] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_EDIT] = nk_rgba(51, 55, 67, 225);
table[NK_COLOR_EDIT_CURSOR] = nk_rgba(190, 190, 190, 255);
table[NK_COLOR_COMBO] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_CHART] = nk_rgba(51, 55, 67, 255);
table[NK_COLOR_CHART_COLOR] = nk_rgba(170, 40, 60, 255);
table[NK_COLOR_CHART_COLOR_HIGHLIGHT] = nk_rgba( 255, 0, 0, 255);
table[NK_COLOR_SCROLLBAR] = nk_rgba(30, 33, 40, 255);
table[NK_COLOR_SCROLLBAR_CURSOR] = nk_rgba(64, 84, 95, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_HOVER] = nk_rgba(70, 90, 100, 255);
table[NK_COLOR_SCROLLBAR_CURSOR_ACTIVE] = nk_rgba(75, 95, 105, 255);
table[NK_COLOR_TAB_HEADER] = nk_rgba(181, 45, 69, 220);
nk_style_from_table(ctx, table);
} else {
nk_style_default(ctx);
}
}

View File

@ -0,0 +1,46 @@
me: Zulu}]}
subtitles: {}
comment_count: 3000
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231222
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: DUu3FtInV4k
fulltitle: Jack Doherty is Horrible
duration_string: 8:26
is_live: false
was_live: false
epoch: 1703242283
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 126342922
tbr: 1996.9840000000002
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1877.103
aspect_ratio: 1.78
acodec: opus
abr: 119.881
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/DUu3FtInV4k?version=3

View File

@ -0,0 +1,44 @@
comment_count: 83
channel: Daily Dose Of Internet
channel_follower_count: 17200000
channel_is_verified: true
uploader: Daily Dose Of Internet
uploader_id: @DailyDoseOfInternet
uploader_url: https://www.youtube.com/@DailyDoseOfInternet
upload_date: 20231221
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: z3bPP8Lze5o
fulltitle: This is Peak Happiness
duration_string: 10
is_live: false
was_live: false
epoch: 1703242980
format: 248 - 1080x1920 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 4133575
tbr: 3348.0119999999997
width: 1080
height: 1920
resolution: 1080x1920
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 3202.937
aspect_ratio: 0.56
acodec: opus
abr: 145.075
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/z3bPP8Lze5o?version=3

View File

@ -0,0 +1,46 @@
name: Zulu}]}
subtitles: {}
comment_count: 67
channel: GeneralsGentlemen
channel_follower_count: 26500
uploader: GeneralsGentlemen
uploader_id: @GeneralsGentlemen
uploader_url: https://www.youtube.com/@GeneralsGentlemen
upload_date: 20231112
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: Obf4l2Q-gWU
fulltitle: Callum's Moving to the US!
duration_string: 3:52
is_live: false
was_live: false
epoch: 1703263817
format: 248 - 1920x1080 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 33064349
tbr: 1139.4859999999999
width: 1920
height: 1080
resolution: 1920x1080
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 1024.733
aspect_ratio: 1.78
acodec: opus
abr: 114.753
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/Obf4l2Q-gWU?version=3

1399
c.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,44 @@
e
channel_follower_count: 236000
license: Creative Commons Attribution license (reuse allowed)
channel_is_verified: true
uploader: DistroTube
uploader_id: @DistroTube
uploader_url: https://www.youtube.com/@DistroTube
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: kCCkQ6s-N00
fulltitle: Adding Fancy \Zoom To Mouse\ Effects In OBS
duration_string: 9:16
is_live: false
was_live: false
epoch: 1702927344
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 77775464
tbr: 1119.17
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 983.228
aspect_ratio: 1.78
acodec: opus
abr: 135.942
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/kCCkQ6s-N00?version=3

View File

@ -0,0 +1,47 @@
name: Zulu}]}
subtitles: {}
comment_count: 2200
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: 5wxDVEtOHYU
fulltitle: I'm Finally Talking About Her
duration_string: 8:19
is_live: false
was_live: false
epoch: 1703104550
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 75637600
tbr: 1212.462
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1095.293
aspect_ratio: 1.78
acodec: opus
abr: 117.169
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/5wxDVEtOHYU?version=3

View File

@ -0,0 +1,45 @@
me: Zulu}]}
subtitles: {}
comment_count: 4
channel: Jabroni Mike
channel_follower_count: 23900
uploader: Jabroni Mike
uploader_id: @Jabroni_Mike
uploader_url: https://www.youtube.com/@Jabroni_Mike
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: A8zxG8_JIyo
fulltitle: Freddy Fazbear When no Bite #funny #jabronimike #gamestreamer
duration_string: 14
is_live: false
was_live: false
epoch: 1703105263
format: 303 - 1080x1920 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 3502010
tbr: 2030.103
width: 1080
height: 1920
resolution: 1080x1920
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1908.18
aspect_ratio: 0.56
acodec: opus
abr: 121.923
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/A8zxG8_JIyo?version=3

View File

@ -0,0 +1,46 @@
name: Zulu}]}
subtitles: {}
comment_count: 70
channel: Jabroni Mike
channel_follower_count: 23900
uploader: Jabroni Mike
uploader_id: @Jabroni_Mike
uploader_url: https://www.youtube.com/@Jabroni_Mike
upload_date: 20231219
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: zarNs2mWvJI
fulltitle: Twitch Policy Changes were Kinda Good...
duration_string: 8:25
is_live: false
was_live: false
epoch: 1703105313
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 115511552
tbr: 1828.3719999999998
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1683.184
aspect_ratio: 1.78
acodec: opus
abr: 145.188
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/zarNs2mWvJI?version=3

View File

@ -0,0 +1,45 @@
me: Zulu}]}
subtitles: {}
comment_count: 4
channel: Jabroni Mike
channel_follower_count: 23900
uploader: Jabroni Mike
uploader_id: @Jabroni_Mike
uploader_url: https://www.youtube.com/@Jabroni_Mike
upload_date: 20231219
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: x7a4jWWJxM4
fulltitle: He was one letter off #funny #jabronimike #gamestreamer
duration_string: 28
is_live: false
was_live: false
epoch: 1703105355
format: 248 - 1080x1920 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 4080178
tbr: 1179.7720000000002
width: 1080
height: 1920
resolution: 1080x1920
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 1058.834
aspect_ratio: 0.56
acodec: opus
abr: 120.938
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/x7a4jWWJxM4?version=3

View File

@ -0,0 +1,45 @@
ni Mike Full Streams
channel_follower_count: 23500
uploader: Jabroni Mike Full Streams
uploader_id: @JabroniMikeFullStreams
uploader_url: https://www.youtube.com/@JabroniMikeFullStreams
upload_date: 20231217
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: aXZggxlN4kU
fulltitle: Chaotic Lethal Company w/ OverEzEggs
Tobs
Rev
Limes & More! - Jabroni Mike
duration_string: 6:09:04
is_live: false
was_live: false
epoch: 1703105427
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 6176058647
tbr: 2231.252
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 2100.444
aspect_ratio: 1.78
acodec: opus
abr: 130.808
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/aXZggxlN4kU?version=3

View File

@ -0,0 +1,45 @@
{}
comment_count: 340
channel: Daily Dose Of Internet
channel_follower_count: 17200000
channel_is_verified: true
uploader: Daily Dose Of Internet
uploader_id: @DailyDoseOfInternet
uploader_url: https://www.youtube.com/@DailyDoseOfInternet
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: JdjO7qxCHAo
fulltitle: Nothing is Real
duration_string: 19
is_live: false
was_live: false
epoch: 1703150173
format: 248 - 1080x1920 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 6011238
tbr: 2510.7889999999998
width: 1080
height: 1920
resolution: 1080x1920
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 2398.546
aspect_ratio: 0.56
acodec: opus
abr: 112.243
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/JdjO7qxCHAo?version=3

View File

@ -0,0 +1,44 @@
omment_count: 30
channel: BugsWriter
channel_follower_count: 24300
license: Creative Commons Attribution license (reuse allowed)
uploader: BugsWriter
uploader_id: @bugswriter_
uploader_url: https://www.youtube.com/@bugswriter_
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: 8_zGiNt4QLo
fulltitle: Impressing Her / Girls with LINUX SKILLS
duration_string: 13:38
is_live: false
was_live: false
epoch: 1703150219
format: 137 - 1920x1080 (1080p)+251 - audio only (medium)
format_id: 137+251
ext: mkv
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 70827782
tbr: 692.52
width: 1920
height: 1080
resolution: 1920x1080
fps: 30
dynamic_range: SDR
vcodec: avc1.640028
vbr: 565.538
aspect_ratio: 1.78
acodec: opus
abr: 126.982
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/8_zGiNt4QLo?version=3

View File

@ -0,0 +1,46 @@
automatic_captions: {}
subtitles: {}
comment_count: 44
channel: Mufti Menk
channel_follower_count: 4930000
channel_is_verified: true
uploader: Mufti Menk
uploader_id: @muftimenkofficial
uploader_url: https://www.youtube.com/@muftimenkofficial
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: vMIHnAf7aDY
fulltitle: Mufti Menk Caught on his PHONE at Midnight?!
duration_string: 42
is_live: false
was_live: false
epoch: 1703151140
format: 243 - 350x640 (360p)+251 - audio only (medium)
format_id: 243+251
ext: webm
protocol: https+https
format_note: 360p+medium
filesize_approx: 2004271
tbr: 385.11
width: 350
height: 640
resolution: 350x640
fps: 30
dynamic_range: SDR
vcodec: vp09.00.21.08
vbr: 282.446
aspect_ratio: 0.55
acodec: opus
abr: 102.664
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/vMIHnAf7aDY?version=3

View File

@ -0,0 +1,46 @@
proto]
automatic_captions: {}
subtitles: {}
comment_count: 162
channel: Mufti Menk
channel_follower_count: 4930000
channel_is_verified: true
uploader: Mufti Menk
uploader_id: @muftimenkofficial
uploader_url: https://www.youtube.com/@muftimenkofficial
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: x-M4lUW5-EU
fulltitle: He Loves to #Forgive
duration_string: 1:26
is_live: false
was_live: false
epoch: 1703151186
format: 248 - 1920x1080 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
format_note: 1080p+medium
filesize_approx: 17225676
tbr: 1597.411
width: 1920
height: 1080
resolution: 1920x1080
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 1495.644
aspect_ratio: 1.78
acodec: opus
abr: 101.767
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/x-M4lUW5-EU?version=3

View File

@ -0,0 +1,45 @@
ns: {}
subtitles: {}
comment_count: 111
channel: Mufti Menk
channel_follower_count: 4930000
channel_is_verified: true
uploader: Mufti Menk
uploader_id: @muftimenkofficial
uploader_url: https://www.youtube.com/@muftimenkofficial
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: 5A5fZ70Yf74
fulltitle: The Weight of your Deeds - Mufti Menk
duration_string: 3:28
is_live: false
was_live: false
epoch: 1703151300
format: 616 - 1920x1080 (Premium)+251 - audio only (medium)
format_id: 616+251
ext: webm
protocol: m3u8_native+https
format_note: Premium+medium
filesize_approx: 2638946
tbr: 5541.548
width: 1920
height: 1080
resolution: 1920x1080
fps: 30.0
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 5440.129
aspect_ratio: 1.78
acodec: opus
abr: 101.419
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/5A5fZ70Yf74?version=3

View File

@ -0,0 +1,44 @@
e
channel_follower_count: 236000
license: Creative Commons Attribution license (reuse allowed)
channel_is_verified: true
uploader: DistroTube
uploader_id: @DistroTube
uploader_url: https://www.youtube.com/@DistroTube
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: kCCkQ6s-N00
fulltitle: Adding Fancy \Zoom To Mouse\ Effects In OBS
duration_string: 9:16
is_live: false
was_live: false
epoch: 1702928005
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 77775464
tbr: 1119.17
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 983.228
aspect_ratio: 1.78
acodec: opus
abr: 135.942
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/kCCkQ6s-N00?version=3

View File

@ -0,0 +1,45 @@
s: {}
subtitles: {}
comment_count: 6
channel: Krishnamurti Foundation Trust
channel_follower_count: 227000
channel_is_verified: true
uploader: Krishnamurti Foundation Trust
uploader_id: @kft
uploader_url: https://www.youtube.com/@kft
upload_date: 20231219
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: Ov38KfoDFw4
fulltitle: Thought has created the future | Krishnamurti #shorts
duration_string: 52
is_live: false
was_live: false
epoch: 1703151815
format: 247 - 606x1080 (480p)+251 - audio only (medium)
format_id: 247+251
ext: webm
protocol: https+https
format_note: 480p+medium
filesize_approx: 1679849
tbr: 260.308
width: 606
height: 1080
resolution: 606x1080
fps: 30
dynamic_range: SDR
vcodec: vp09.00.31.08
vbr: 166.695
aspect_ratio: 0.56
acodec: opus
abr: 93.613
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/Ov38KfoDFw4?version=3

View File

@ -0,0 +1,45 @@
&tlang=zu&fmt=vtt
name: Zulu}]}
subtitles: {}
channel: Jabroni Mike
channel_follower_count: 23900
uploader: Jabroni Mike
uploader_id: @Jabroni_Mike
uploader_url: https://www.youtube.com/@Jabroni_Mike
upload_date: 20231220
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: a6MJDFych9I
fulltitle: Never Trust Influencer Snacks #funny #jabronimike #gamestreamer
duration_string: 17
is_live: false
was_live: false
epoch: 1703152032
format: 248 - 1080x1920 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 4197848
tbr: 1975.282
width: 1080
height: 1920
resolution: 1080x1920
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 1833.552
aspect_ratio: 0.56
acodec: opus
abr: 141.73
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/a6MJDFych9I?version=3

View File

@ -0,0 +1,45 @@
ni Mike Full Streams
channel_follower_count: 23500
uploader: Jabroni Mike Full Streams
uploader_id: @JabroniMikeFullStreams
uploader_url: https://www.youtube.com/@JabroniMikeFullStreams
upload_date: 20231217
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: aXZggxlN4kU
fulltitle: Chaotic Lethal Company w/ OverEzEggs
Tobs
Rev
Limes & More! - Jabroni Mike
duration_string: 6:09:04
is_live: false
was_live: false
epoch: 1703153928
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 6176058647
tbr: 2231.252
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 2100.444
aspect_ratio: 1.78
acodec: opus
abr: 130.808
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/aXZggxlN4kU?version=3

View File

@ -0,0 +1,47 @@
mt=vtt
name: Zulu}]}
subtitles: {}
comment_count: 2800
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231221
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: 0R5OhXlsaYI
fulltitle: Worst Police Driver Ever
duration_string: 9:13
is_live: false
was_live: false
epoch: 1703246783
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 97266865
tbr: 1407.702
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1291.452
aspect_ratio: 1.78
acodec: opus
abr: 116.25
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/0R5OhXlsaYI?version=3

View File

@ -0,0 +1,46 @@
me: Zulu}]}
subtitles: {}
comment_count: 3100
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231222
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: DUu3FtInV4k
fulltitle: Jack Doherty is Horrible
duration_string: 8:26
is_live: false
was_live: false
epoch: 1703247634
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 126342922
tbr: 1996.9840000000002
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1877.103
aspect_ratio: 1.78
acodec: opus
abr: 119.881
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/DUu3FtInV4k?version=3

View File

@ -0,0 +1,43 @@
wer_count: 565000
license: Creative Commons Attribution license (reuse allowed)
channel_is_verified: true
uploader: Mental Outlaw
uploader_id: @MentalOutlaw
uploader_url: https://www.youtube.com/@MentalOutlaw
upload_date: 20231221
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: TaB_Zmyh4DE
fulltitle: Encrypted Client Hello - Online Privacy's Missing Piece
duration_string: 14:30
is_live: false
was_live: false
epoch: 1703249703
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 98903144
tbr: 909.173
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 796.629
aspect_ratio: 1.78
acodec: opus
abr: 112.544
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/TaB_Zmyh4DE?version=3

View File

@ -0,0 +1,42 @@
ams
channel_follower_count: 23500
uploader: Jabroni Mike Full Streams
uploader_id: @JabroniMikeFullStreams
uploader_url: https://www.youtube.com/@JabroniMikeFullStreams
upload_date: 20231212
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: QLGYYoaOX7U
fulltitle: Analog Horror Dinos - Jurassic Park Tapes + Local 58 + Vita Carnis + Gemini Home Entertainment
duration_string: 7:42:36
is_live: false
was_live: false
epoch: 1703251438
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 4665863686
tbr: 1344.848
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1228.206
aspect_ratio: 1.78
acodec: opus
abr: 116.642
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/QLGYYoaOX7U?version=3

View File

@ -0,0 +1,45 @@
to]
automatic_captions: {}
subtitles: {}
channel: Krishnamurti Foundation Trust
channel_follower_count: 227000
channel_is_verified: true
uploader: Krishnamurti Foundation Trust
uploader_id: @kft
uploader_url: https://www.youtube.com/@kft
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: PLd7ess8D9s
fulltitle: Observation without motive | Krishnamurti #shorts
duration_string: 58
is_live: false
was_live: false
epoch: 1702928068
format: 247 - 606x1080 (480p)+251 - audio only (medium)
format_id: 247+251
ext: webm
protocol: https+https
format_note: 480p+medium
filesize_approx: 1949379
tbr: 267.028
width: 606
height: 1080
resolution: 606x1080
fps: 30
dynamic_range: SDR
vcodec: vp09.00.31.08
vbr: 175.611
aspect_ratio: 0.56
acodec: opus
abr: 91.417
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/PLd7ess8D9s?version=3

View File

@ -0,0 +1,45 @@
btitles: {}
comment_count: 47
channel: Daily Dose Of Internet
channel_follower_count: 17200000
channel_is_verified: true
uploader: Daily Dose Of Internet
uploader_id: @DailyDoseOfInternet
uploader_url: https://www.youtube.com/@DailyDoseOfInternet
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: Eb3or-tAv80
fulltitle: The Most Awkward Dog
duration_string: 9
is_live: false
was_live: false
epoch: 1702931404
format: 248 - 1080x1920 (1080p)+251 - audio only (medium)
format_id: 248+251
ext: webm
protocol: https+https
language: en
format_note: 1080p+medium
filesize_approx: 1030156
tbr: 875.526
width: 1080
height: 1920
resolution: 1080x1920
fps: 30
dynamic_range: SDR
vcodec: vp09.00.40.08
vbr: 768.545
aspect_ratio: 0.56
acodec: opus
abr: 106.981
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/Eb3or-tAv80?version=3

View File

@ -0,0 +1,44 @@
treams
channel_follower_count: 23400
uploader: Jabroni Mike Full Streams
uploader_id: @JabroniMikeFullStreams
uploader_url: https://www.youtube.com/@JabroniMikeFullStreams
upload_date: 20231203
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: mBAphTPc2P4
fulltitle: Modded Lethal Company w/Fredrik Knudsen
PorcelainMaid
SimpleFlips and more! - Jabroni Mike
duration_string: 6:40:33
is_live: false
was_live: false
epoch: 1702931436
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 8368143232
tbr: 2785.713
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 2654.94
aspect_ratio: 1.78
acodec: opus
abr: 130.773
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/mBAphTPc2P4?version=3

View File

@ -0,0 +1,47 @@
lang=zu&fmt=vtt
name: Zulu}]}
subtitles: {}
comment_count: 4200
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231219
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: SWn5Zq7aJ-4
fulltitle: She is Awful
duration_string: 11:06
is_live: false
was_live: false
epoch: 1702984440
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 187317329
tbr: 2251.748
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 2140.283
aspect_ratio: 1.78
acodec: opus
abr: 111.465
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/SWn5Zq7aJ-4?version=3

View File

@ -0,0 +1,46 @@
u}]}
subtitles: {}
comment_count: 2300
channel: penguinz0
channel_follower_count: 14200000
channel_is_verified: true
uploader: penguinz0
uploader_id: @penguinz0
uploader_url: https://www.youtube.com/@penguinz0
upload_date: 20231218
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: kYT3Ggp-wn0
fulltitle: Most Cringe Coffee Salesman Ever
duration_string: 10:05
is_live: false
was_live: false
epoch: 1702993493
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 145294723
tbr: 1921.8310000000001
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 1804.372
aspect_ratio: 1.78
acodec: opus
abr: 117.459
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/kYT3Ggp-wn0?version=3

View File

@ -0,0 +1,45 @@
1462.0
value: 0.022525880192902525}]
channel: PewDiePie
channel_follower_count: 111000000
channel_is_verified: true
uploader: PewDiePie
uploader_id: @PewDiePie
uploader_url: https://www.youtube.com/@PewDiePie
upload_date: 20231207
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: Vw0xrE3ZQ74
fulltitle: Apology Videos have reached a new low
duration_string: 24:21
is_live: false
was_live: false
epoch: 1703023865
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 416407232
tbr: 2279.8190000000004
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 2151.925
aspect_ratio: 1.78
acodec: opus
abr: 127.894
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/Vw0xrE3ZQ74?version=3

View File

@ -0,0 +1,44 @@
l: Jabroni Mike Full Streams
channel_follower_count: 23500
uploader: Jabroni Mike Full Streams
uploader_id: @JabroniMikeFullStreams
uploader_url: https://www.youtube.com/@JabroniMikeFullStreams
upload_date: 20231209
availability: public
webpage_url_basename: watch
webpage_url_domain: youtube.com
extractor: youtube
extractor_key: Youtube
display_id: 7yDe6yGLFCM
fulltitle: Live
Laugh
Look at P*rn - Live Action Finger Family - Jabroni Mike
duration_string: 7:59:44
is_live: false
was_live: false
epoch: 1703067150
format: 303 - 1920x1080 (1080p60)+251 - audio only (medium)
format_id: 303+251
ext: webm
protocol: https+https
language: en
format_note: 1080p60+medium
filesize_approx: 3638945437
tbr: 1011.396
width: 1920
height: 1080
resolution: 1920x1080
fps: 60
dynamic_range: SDR
vcodec: vp09.00.41.08
vbr: 892.433
aspect_ratio: 1.78
acodec: opus
abr: 118.963
asr: 48000
audio_channels: 2
_type: video
_version: {version: 2023.11.16
release_git_head: 24f827875c6ba513f12ed09a3aef2bbed223760d
repository: yt-dlp/yt-dlp}
https://www.youtube.com/v/7yDe6yGLFCM?version=3

3
install.sh Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
./shells/comp ./c.c

1
misc/bookmarks_index.txt Normal file
View File

@ -0,0 +1 @@
3

1
misc/history_index.txt Normal file
View File

@ -0,0 +1 @@
26

28
rss/channels.txt Normal file
View File

@ -0,0 +1,28 @@
https://www.youtube.com/feeds/videos.xml?channel_id=UCngn7SVujlvskHRvRKc1cTw
https://www.youtube.com/feeds/videos.xml?channel_id=UCq6VFHwMzcMXbuKyG7SQYIg
https://www.youtube.com/feeds/videos.xml?channel_id=UC3tNpTOHsTnkmbwztCs30sA
https://www.youtube.com/feeds/videos.xml?channel_id=UCI91SuBWu1wO7_fgQKUtjcw
https://www.youtube.com/feeds/videos.xml?channel_id=UC6-IK0UdWT1a2d3D9Pvm4Gg
https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA
https://www.youtube.com/feeds/videos.xml?channel_id=UCD5eL38hFtSLiVFP9cCUJEA
https://www.youtube.com/feeds/videos.xml?channel_id=UCD6VugMZKRhSyzWEWA9W2fg
https://www.youtube.com/feeds/videos.xml?channel_id=UC0aanx5rpr7D1M7KCFYzrLQ
https://www.youtube.com/feeds/videos.xml?channel_id=UCpmvp5czsIrQHsbqya4-6Jw
https://www.youtube.com/feeds/videos.xml?channel_id=UCT2TIET5hixQiVMP-rqFIcA
https://www.youtube.com/feeds/videos.xml?channel_id=UCX8wFEiD_FaLPgHM6wPD0Wg
https://www.youtube.com/feeds/videos.xml?channel_id=UC9pgQfOXRsp4UKrI8q0zjXQ
https://www.youtube.com/feeds/videos.xml?channel_id=UCdC0An4ZPNr_YiFiYoVbwaw
https://www.youtube.com/feeds/videos.xml?channel_id=UCybEy181Dr5SB98xTXprThA
https://www.youtube.com/feeds/videos.xml?channel_id=UCCF6pCTGMKdo9r_kFQS-H3Q
https://www.youtube.com/feeds/videos.xml?channel_id=UCoe75B7dJtLCkaTjpZ91BbQ
https://www.youtube.com/feeds/videos.xml?channel_id=UCXx0JWOKERPZdzczPfY-huA
https://www.youtube.com/feeds/videos.xml?channel_id=UC7BL19P9OXPOJgu2DRzozDA
https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg
https://www.youtube.com/feeds/videos.xml?channel_id=UCXFS8a2fJnUdm4Un0grvMNg
https://www.youtube.com/feeds/videos.xml?channel_id=UCloZMwFSELqMQa0ofoQGfow
https://www.youtube.com/feeds/videos.xml?channel_id=UCNB_OaI4524fASt8h0IL8dw
https://www.youtube.com/feeds/videos.xml?channel_id=UCQ0KFtUTiUVKL9TDb8m65NQ
https://www.youtube.com/feeds/videos.xml?channel_id=UC2Hy92d-OZihM90BT7Z4ABg
https://www.youtube.com/feeds/videos.xml?channel_id=UC-lHJZR3Gqxm24_Vd_AJ5Yw
https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg
https://www.youtube.com/feeds/videos.xml?channel_id=UC6s4GxcKJvmUOn8thoTAjPQ

58
rss/cnuk_rss_update Executable file
View File

@ -0,0 +1,58 @@
#!/bin/sh
duplicate_processes=$(pgrep -x "cnuk_rss_update" | grep -v $$ | grep -v $(($$+1)))
kill $duplicate_processes
while true; do
if pgrep -x "CNUKTUBE" > /dev/null
then
while IFS= read -r line; do
curl -s $line > ./rss/1.temp
channel_name=$(grep -m 1 "<name>" ./rss/1.temp | sed 's/<name>//' | sed 's/<\/name>//' | sed 's/ //g' | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
grep 'published\|media:title\|media:content' ./rss/1.temp > ./rss/2.temp
sed -i 1d ./rss/2.temp
sed -i 's/ <published>//g' ./rss/2.temp
sed -i 's/<\/published>//g' ./rss/2.temp
sed -i 's/ <media:title>/ /g' ./rss/2.temp
sed -i 's/<\/media:title>//g' ./rss/2.temp
sed -i 's/ <media:content url="/ /g' ./rss/2.temp
tr -d '\n' < ./rss/2.temp > ./rss/3.temp
sed -i "s/\" type=\"application\/x-shockwave-flash\" width=\"640\" height=\"390\"\/>/\n/g" ./rss/3.temp
sed -i 's/T..:..:..+00:00//g' ./rss/3.temp
if [ ! -f ./rss/feeds/"$channel_name" ]; then
touch ./rss/feeds/"$channel_name"
fi
while IFS= read -r line; do
escaped_line_1=$(tr -dc '[:print:]\n' <<< "$line")
escaped_line_2=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g; s/&quot//g' <<< "$escaped_line_1")
if grep -q -F "$escaped_line_2" ./rss/feeds/"$channel_name"
then
break
else
echo "new video: "$escaped_line_2
echo "NEW $escaped_line_2" >> ./rss/4.temp
fi
done < ./rss/3.temp
if [ -f ./rss/4.temp ]; then
cat ./rss/feeds/"$channel_name" >> ./rss/4.temp
mv ./rss/4.temp ./rss/feeds/"$channel_name"
fi
rm ./rss/1.temp
rm ./rss/2.temp
rm ./rss/3.temp
done < ./rss/channels.txt
sleep 360
else
break
fi
done

View File

@ -0,0 +1,15 @@
OLD 2023-12-09 The Best Skyrim Mods of the Year (2023 Hall of Fame) https://www.youtube.com/v/48o6_wBTx7Q?version=3
OLD 2023-11-26 Skyrim Graphics Modding Guide (ENB vs. Community Shaders) https://www.youtube.com/v/C6X5sJ5zUqA?version=3
OLD 2023-11-11 Dont Miss These 15 NEW Skyrim Mods! (November 2023) https://www.youtube.com/v/HIkOr7Yln50?version=3
OLD 2023-11-05 What if the Dragonborn Didnt Survive Helgen? (Shattered Skyrim Mod) https://www.youtube.com/v/mzLpDe2DqdE?version=3
OLD 2023-10-28 17 Hidden Gem Skyrim IMMERSION Mods! https://www.youtube.com/v/SK1Rbiv_XMM?version=3
OLD 2023-10-20 15 More NEW Skyrim Mods That You Should Install! https://www.youtube.com/v/NafFZovUsjs?version=3
OLD 2023-10-14 I Made Skyrim SPOOKY With 12 Mods! (Halloween Special) https://www.youtube.com/v/LFJhV5qMOI8?version=3
OLD 2023-10-06 11 Amazing NEW Skyrim Mods! (October 2023) https://www.youtube.com/v/bAt7eVYOpfk?version=3
OLD 2023-09-29 How Skyrim Inns &amp Taverns SHOULD'VE Always Been! (16 Mods) https://www.youtube.com/v/keriZPs4Px4?version=3
OLD 2023-09-24 10 Cozy Skyrim Immersion Mods for Autumn https://www.youtube.com/v/eU-WDBQaG2A?version=3
OLD 2023-09-15 11 Must Have NEW Skyrim Mods! (September 2023) https://www.youtube.com/v/RbMP6H5lTOU?version=3
OLD 2023-09-08 Hidden GEMS of Skyrim Mods! (11 Environmental Mods) https://www.youtube.com/v/5in2Vl8AYng?version=3
OLD 2023-08-26 Skyrim Graphics Mods I CAN'T Play Without! (2023 Modlist) https://www.youtube.com/v/wDf-BziSkfk?version=3
OLD 2023-08-18 9 Skyrim Mods To Make The Game More Magical https://www.youtube.com/v/pPGSQphMzpE?version=3
OLD 2023-08-14 Luxury Markarth Apartment - Skyrim Real Estate Mod https://www.youtube.com/v/rrSnxYZg22Q?version=3

16
rss/feeds/BugsWriter Normal file
View File

@ -0,0 +1,16 @@
OLD 2023-12-20 Impressing Her / Girls with LINUX SKILLS https://www.youtube.com/v/8_zGiNt4QLo?version=3
OLD 2023-11-03 disturbing arch linux visuals https://www.youtube.com/v/KUG9434QuYI?version=3
OLD 2023-10-28 Hackers guide for Encryption &amp Password Management, 100% privacy https://www.youtube.com/v/QE9Qj_qI6Q4?version=3
OLD 2023-10-22 Soy Linux apps are illegal, but I made it https://www.youtube.com/v/v35rMTYBAoM?version=3
OLD 2023-10-19 Coding Google Contacts Alternative For Myself https://www.youtube.com/v/Az8GSfkGInw?version=3
OLD 2023-10-18 Learn 90% &quotREAL WORLD&quot Software Engineering in ONE video https://www.youtube.com/v/0pk6nOE2JC8?version=3
OLD 2023-10-07 How I Self Hosted TV Channel? Childhood Nostalgia https://www.youtube.com/v/efV0dLZr7k0?version=3
OLD 2023-09-19 I'm proud &amp happy of using Kdenlive (peak foss) https://www.youtube.com/v/EHnAV6fObGI?version=3
OLD 2023-09-17 Linux PROS File Sharing ( secretly edition ) https://www.youtube.com/v/7uEL0m6u9f8?version=3
OLD 2023-09-09 lets learn pure zsh https://www.youtube.com/v/UHN9Sx1x6kE?version=3
OLD 2023-08-10 speed cube solve after 2 years https://www.youtube.com/v/0M0s33B4H_w?version=3
OLD 2023-07-24 casual learning tips for tech noobs https://www.youtube.com/v/_BFeEJo3GvM?version=3
OLD 2023-07-23 When ChatGPT meet Lazy Linux user https://www.youtube.com/v/x82Lwr2StjY?version=3
OLD 2023-07-22 How to not be a Slave ? https://www.youtube.com/v/L0-ngKJsdQA?version=3
OLD 2023-07-14 my cool new emacs https://www.youtube.com/v/KZAhxdXOCP4?version=3
OLD 2023-07-05 Siri, Cortana vs Linux hacker Voice Controlled System https://www.youtube.com/v/hXKF47jzq7A?version=3

15
rss/feeds/Chad Chad Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-08 coming soon to a tree near you (the shirts, not me) chadchad.shop https://www.youtube.com/v/KNpt4fa1h00?version=3
OLD 2023-12-01 TikTok's Problemattic Comedian https://www.youtube.com/v/Q0PnG54dMys?version=3
OLD 2023-11-02 Instagram Reels are KILLING Me https://www.youtube.com/v/zwzroHSbEPQ?version=3
OLD 2023-10-17 TikTok's Evil Dentist https://www.youtube.com/v/irLLGraH-PU?version=3
OLD 2023-09-21 This is...Sales Training? https://www.youtube.com/v/T-VcrOFrpfI?version=3
OLD 2023-08-28 TikToks Sexiest Wattpad Show https://www.youtube.com/v/RGqy_gcuCgM?version=3
OLD 2023-07-20 The Bootcamp for ALPHAS https://www.youtube.com/v/LtckN-VaZ-g?version=3
OLD 2023-06-14 TikTok's Newest Pick-Me https://www.youtube.com/v/oduNAABcV8I?version=3
OLD 2023-06-14 New video tonight https://www.youtube.com/v/8qzAhW9pOuo?version=3
OLD 2023-05-31 Psychology FACTS on TikTok https://www.youtube.com/v/TUK83-ksMUI?version=3
OLD 2023-04-20 How to be Ladylike (according to TikTok) https://www.youtube.com/v/rI4CPalzwCI?version=3
OLD 2023-03-30 How to Make Men OBSESSED with You https://www.youtube.com/v/_p4jvcgbji4?version=3
OLD 2023-03-10 TikTok Conspiracy Theories https://www.youtube.com/v/RaYN6OXdxnE?version=3
OLD 2023-02-12 Homemade TikTok Foods are a Hazard https://www.youtube.com/v/zkjdNeGQEAY?version=3
OLD 2023-01-12 I Made Myself a Girlfriend Using AI https://www.youtube.com/v/axZ4YDS4f_A?version=3

View File

@ -0,0 +1,19 @@
OLD 2023-12-21 This is Peak Happiness https://www.youtube.com/v/z3bPP8Lze5o?version=3
OLD 2023-12-20 Nothing is Real https://www.youtube.com/v/JdjO7qxCHAo?version=3
OLD 2023-12-19 A Fish That Loves Air https://www.youtube.com/v/gimPpwZ_nz4?version=3
OLD 2023-12-18 The Most Awkward Dog https://www.youtube.com/v/Eb3or-tAv80?version=3
OLD 2023-12-17 The Best Of The Internet (2023) https://www.youtube.com/v/PZt1vnxonJk?version=3
OLD 2023-12-16 Cat With The Ugliest Meow https://www.youtube.com/v/zF9C3S23Dy4?version=3
OLD 2023-12-16 Insects are Fighting Back https://www.youtube.com/v/3bImuXVNPtw?version=3
OLD 2023-12-15 Cat Does Leap of Faith https://www.youtube.com/v/-3-Mg2uuK0E?version=3
OLD 2023-12-14 Parents Devastated He Got A Tattoo https://www.youtube.com/v/DdTy2GIAlH8?version=3
OLD 2023-12-13 Horse that Hates Men https://www.youtube.com/v/TF857O94r4s?version=3
OLD 2023-12-13 Cat Doesn't Care About Being on Fire https://www.youtube.com/v/AdfjWztR0iM?version=3
OLD 2023-12-12 The Best Hotel View in the World https://www.youtube.com/v/pTvirbQIZzg?version=3
OLD 2023-12-11 Delivery Guy Gave Zero Warning https://www.youtube.com/v/IZNj9_IYeMQ?version=3
OLD 2023-12-10 Gorilla Flips People Off https://www.youtube.com/v/QDdPD_mAekc?version=3
OLD 2023-12-10 There's Always a Bigger Fish... https://www.youtube.com/v/1ihnMTyN5eo?version=3
OLD 2023-12-09 Chickens Found Frozen in Time https://www.youtube.com/v/ODhCObyNOvU?version=3
OLD 2023-12-09 These Cats are Glued Together https://www.youtube.com/v/Tvhw40BjofI?version=3
OLD 2023-12-08 Sales Guy Does a Big Brain Move https://www.youtube.com/v/5xv2y9zaw4I?version=3
OLD 2023-12-07 This Fish is Broken https://www.youtube.com/v/QJcgxzIo7fo?version=3

15
rss/feeds/Daniel Stenberg Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-06 curl 8.5.0 with Daniel Stenberg https://www.youtube.com/v/fWiYbDpFeS4?version=3
OLD 2023-11-20 Mastering libcurl (2/2) with Daniel Stenberg https://www.youtube.com/v/9KqnXsSxqGA?version=3
OLD 2023-11-16 mastering libcurl (1/2) with Daniel Stenberg https://www.youtube.com/v/ZQXv5v9xocU?version=3
OLD 2023-10-11 curl 8.4.0 with Daniel Stenberg https://www.youtube.com/v/-j-_nKmq2aE?version=3
OLD 2023-09-13 curl 8.3.0 with Daniel Stenberg https://www.youtube.com/v/DmyuEV8cUaU?version=3
OLD 2023-09-01 Mastering the curl command line with Daniel Stenberg https://www.youtube.com/v/V5vZWHP-RqU?version=3
OLD 2023-08-02 curl command line variables with Daniel Stenberg https://www.youtube.com/v/KzzrhLgCjik?version=3
OLD 2023-07-26 curl 8.2.1 with Daniel Stenberg https://www.youtube.com/v/gxuisBdfXmI?version=3
OLD 2023-07-19 curl 8.2.0 with Daniel Stenberg https://www.youtube.com/v/eMSD1GOCABc?version=3
OLD 2023-06-20 curl user survey 2023 analysis with Daniel Stenberg https://www.youtube.com/v/eTPDNUri590?version=3
OLD 2023-06-16 Doing WebSocket with libcurl with Daniel Stenberg https://www.youtube.com/v/NLIhd0wYO24?version=3
OLD 2023-05-30 curl 8.1.2 with Daniel Stenberg https://www.youtube.com/v/n9JzOdjOvHg?version=3
OLD 2023-05-23 curl 8.1.1 with Daniel Stenberg https://www.youtube.com/v/Jzg847TgLvw?version=3
OLD 2023-05-17 curl 8.1.0 with Daniel Stenberg https://www.youtube.com/v/fLP141KZ7l4?version=3
OLD 2023-04-11 curl development with Daniel, April 11 2023 https://www.youtube.com/v/fEgP6fsb-lY?version=3

17
rss/feeds/DistroTube Normal file
View File

@ -0,0 +1,17 @@
OLD 2023-12-21 Adm42, Is It The Ultimate Keyboard? https://www.youtube.com/v/jf8K_vBsbW0?version=3
OLD 2023-12-18 Adding Fancy Zoom To Mouse Effects In OBS https://www.youtube.com/v/kCCkQ6s-N00?version=3
OLD 2023-12-17 Linux Content Creators Christmas Special - LIVE! https://www.youtube.com/v/3lyvQgd9FWU?version=3
OLD 2023-12-13 Emacs Does Everything, Including Viewing PDFs and Diffs https://www.youtube.com/v/v2-m7_X3uy8?version=3
OLD 2023-12-10 A Look At SparkyLinux With KDE Plasma https://www.youtube.com/v/DD1LVtwCUXQ?version=3
OLD 2023-12-07 Is It WRONG To Use Snaps If You Love Open Source? https://www.youtube.com/v/9AaiualGHPY?version=3
OLD 2023-12-04 4M Linux Is A Strange Beast...But I Kinda Like It https://www.youtube.com/v/L7GWKOnw-4A?version=3
OLD 2023-12-01 Hey, DT! What About YouTube's War With Ad-Blockers? https://www.youtube.com/v/WWHF5DpBoC0?version=3
OLD 2023-11-28 Why New Linux Users Quit And Go Back To Windows https://www.youtube.com/v/Gt0WBoYAG1s?version=3
OLD 2023-11-27 Chat With Patrons (Nov 26, 2023) https://www.youtube.com/v/xT_xeA2S32Y?version=3
OLD 2023-11-23 The Apps That I Use (Most Available on Windows, Mac and Linux!) https://www.youtube.com/v/HD5ENKbxgao?version=3
OLD 2023-11-20 Creating Charts Is Simple With LibreOffice https://www.youtube.com/v/4co7k-IyG6Y?version=3
OLD 2023-11-17 Leaving Windows For Linux...But What About Software Availability? https://www.youtube.com/v/cEvQyQe7GPA?version=3
OLD 2023-11-14 Brave Browser Introduces The Leo A.I. Assistant https://www.youtube.com/v/Cx1lmDCSWjI?version=3
OLD 2023-11-11 Create Impressive Slide Shows With This Powerful Tool https://www.youtube.com/v/SJCo7dF4LYI?version=3
OLD 2023-11-09 Installation and First Look of Fedora 39 https://www.youtube.com/v/EWPNFVvyHL8?version=3
OLD 2023-11-07 Emacs Makes Moving Words and Lines Super Easy https://www.youtube.com/v/bXC-pjlXkrA?version=3

15
rss/feeds/Eskil Steenberg Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-08-26 Modern C development with Visual studio in 2023. https://www.youtube.com/v/CxKujAuz2Vw?version=3
OLD 2021-12-06 Advanced C: The UB and optimizations that trick good programmers. https://www.youtube.com/v/w3_e9vZj7D8?version=3
OLD 2021-09-05 Seduce UI Toolkit Tutorial. https://www.youtube.com/v/GGLwJNc-EeQ?version=3
OLD 2021-08-25 HxA: A simple implementable graphics convention https://www.youtube.com/v/jlNSbSutPZE?version=3
OLD 2020-11-30 Where do I get all my ideas? https://www.youtube.com/v/MJmqaWq7PJY?version=3
OLD 2020-11-01 Demo of Ministry Of Flats fully automated UV unwrapper v3.4.2 https://www.youtube.com/v/FVIa-5XaOus?version=3
OLD 2019-03-11 Ministry of flat v2.6.13 Demo https://www.youtube.com/v/0aGXmyt1mRE?version=3
OLD 2018-08-21 Fully Automated Mesh UV UnWrapping https://www.youtube.com/v/x5CXPL7-RwM?version=3
OLD 2018-06-06 EXO state of development summer 2018 https://www.youtube.com/v/BWOn0uwrF-U?version=3
OLD 2017-09-27 Stellar Light control system demo. https://www.youtube.com/v/zTfZ6jClO3w?version=3
OLD 2016-12-01 Demo of my Prototype of a Data visualization platform. https://www.youtube.com/v/91ZYuhA4ylM?version=3
OLD 2016-11-21 How I program C https://www.youtube.com/v/443UNeGrFoM?version=3
OLD 2016-10-27 OPA, A live memory debugger for C programs https://www.youtube.com/v/pvkn9Xz-xks?version=3
OLD 2015-02-16 EXO Release 44 unit and mechanics overview https://www.youtube.com/v/JrJQO5d4tJ8?version=3
OLD 2015-01-01 EXO AI vs AI match https://www.youtube.com/v/m5ELkDCrJlQ?version=3

View File

@ -0,0 +1,13 @@
OLD 2023-11-12 Callum's Moving to the US! https://www.youtube.com/v/Obf4l2Q-gWU?version=3
OLD 2023-11-11 Zero Hour World Series Semi Finals - Fargo vs Vivid (part 2) https://www.youtube.com/v/o2_oWhwdIs4?version=3
OLD 2023-11-05 Dune Imperium Commentary - Davidnor, Waata, Gonzo_0140 vs Fillmore https://www.youtube.com/v/61GEDpb5dA0?version=3
OLD 2023-11-03 Zero Hour World Series Semi Finals - Fargo vs Vivid (part 1) https://www.youtube.com/v/k8ec0Zci3YI?version=3
OLD 2023-07-30 Dawn of War Soulstorm - Wirbel(Imperial Guard) vs Honey(Eldar) https://www.youtube.com/v/QO8BBttB2Yw?version=3
OLD 2023-07-14 Why Dune Imperium is the Best Board Game In-Depth Review https://www.youtube.com/v/SZ2YoSmLal0?version=3
OLD 2023-06-10 Wacky Zero Hour Game - GeGe(Stealth) vs StaZzz(China) https://www.youtube.com/v/hYmQev_Reqg?version=3
OLD 2023-02-22 Excal vs Size - Zero Hour 2022 World Series Part 3 https://www.youtube.com/v/0LATVIhEYxs?version=3
OLD 2023-02-08 Excal vs Size - Zero Hour 2022 World Series Part 2 https://www.youtube.com/v/fafvrPVlf-A?version=3
OLD 2023-01-30 Excal vs Size - Zero Hour 2022 World Series Part 1 https://www.youtube.com/v/uqiKxWtQLw8?version=3
OLD 2022-12-21 Zero Hour 1.06 - Frantic(China) vs Krew(GLA) - #2 https://www.youtube.com/v/Op0Aqk0fbRg?version=3
OLD 2022-12-13 Zero Hour 1.06 - Frantic(China) vs Krew(GLA) - #1 https://www.youtube.com/v/CuGczDX_nKk?version=3
OLD 2022-11-02 C&ampC: Zero Hour - YurNero(Nuke) vs WbGMp3(Tank) https://www.youtube.com/v/YIdAfAcmIFs?version=3

15
rss/feeds/Gregg Ink Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-04-21 I wrote my own JSON parser. Also, JSON is a terrible standard. https://www.youtube.com/v/HVl1GWhyx3E?version=3
OLD 2023-02-19 Email is older than the internet https://www.youtube.com/v/GbFwYEXxydk?version=3
OLD 2022-03-18 How to compute Sandwich Numbers? ( a.k.a. Langford pairings ) https://www.youtube.com/v/yE7WIJQByg0?version=3
OLD 2022-02-25 AI-generated images cannot be copyrighted (for now). https://www.youtube.com/v/zWEHR5sysaA?version=3
OLD 2022-01-24 How to register a domain name (registering, set up DNS, get a certificate, set up HTTPS) https://www.youtube.com/v/vg2WX30oA4s?version=3
OLD 2021-12-06 Why I dislike youtube removing the dislike count. https://www.youtube.com/v/3NFem-HijsQ?version=3
OLD 2021-12-03 512 Subscriber special and creating a Turing complete duCx interpreter. https://www.youtube.com/v/94i69mwnGp8?version=3
OLD 2021-11-14 Webprogramming (CGI) in C: creating a file upload page https://www.youtube.com/v/_j5spdsJdV8?version=3
OLD 2021-09-28 Understanding Pointers, Arrays and Strings. My own version of strtok() https://www.youtube.com/v/1yrqGG2KnNY?version=3
OLD 2021-07-25 What is hashing? How to encrypt all your secrets using C? https://www.youtube.com/v/yGjUDh_XxrY?version=3
OLD 2021-06-15 256 Subscriber special and the birth of the duCx programming language https://www.youtube.com/v/lpJX3e-LTRc?version=3
OLD 2021-05-29 Process special keys ( function keys and other ) in Linux terminal applications. https://www.youtube.com/v/31p6xsjqehM?version=3
OLD 2021-04-30 How to use Pipes in C and Linux https://www.youtube.com/v/EYI7wsAdWWo?version=3
OLD 2021-04-13 How to run a program from within a program in C &amp Linux https://www.youtube.com/v/ldHSMIRV9Uw?version=3
OLD 2021-04-02 Understanding text for C Programmers (UTF-8, Unicode, ASCII) https://www.youtube.com/v/70b9ineDgLU?version=3

23
rss/feeds/Grubby Normal file
View File

@ -0,0 +1,23 @@
NEW 2023-12-22 Full Focus vs a Known Cheater + Cheeser - WC3 - Grubby https://www.youtube.com/v/g5Oczx5c9Q4?version=3
OLD 2023-12-21 Grubby loved BARD so much he needs ANOTHER GAME ON HIM - League of Legends - Grubby https://www.youtube.com/v/d6cfEDDwsWY?version=3
OLD 2023-12-21 MASS TAURENS vs Mountain Giants! - WC3 - Grubby https://www.youtube.com/v/wuTfcfqGRWc?version=3
OLD 2023-12-20 The YASUO INCIDENT - League of Legends - Grubby https://www.youtube.com/v/Gf_Kv5QaTnY?version=3
OLD 2023-12-20 Grubby has a VERY LORE ACCURATE First Yone Game! - League of Legends https://www.youtube.com/v/Xu7AXdVU39I?version=3
OLD 2023-12-19 Happy vs Lyn - the series everyone is talking about - WC3 - Grubby https://www.youtube.com/v/Y_DcHvylAaQ?version=3
OLD 2023-12-19 Grubby casts the BEST SERIES IN THE YEAR! - Happy vs Lyn - WC3 https://www.youtube.com/v/zVnXCTkdbbY?version=3
OLD 2023-12-18 Grubby gets Champion INDIGESTION on FIRST URGOT GAME - League of Legends https://www.youtube.com/v/aBmWTvlQ364?version=3
OLD 2023-12-18 Grubby tries to keep his TEAM UNITED in 4on4 game! - WC3 https://www.youtube.com/v/Mt5Fx-yXz4o?version=3
OLD 2023-12-17 Grubby straight up IRELIAING in first IRELIA game! - League of Legends https://www.youtube.com/v/lulTy1qL8Jk?version=3
OLD 2023-12-17 Grubby HOLDS FOR DEAR LIFE on his fast expansion! - 2 in 1 WC3 https://www.youtube.com/v/4Q3DJNOyQ1I?version=3
OLD 2023-12-16 Grubby gets HIGHEST DAMAGE as Zyra Support in FIRST EVER GAME - League Of Legends https://www.youtube.com/v/ae3OoEqE_RE?version=3
OLD 2023-12-16 The birth of a NEW META: FIRELORD STRATS! - WC3 - Grubby https://www.youtube.com/v/-0Y7oWH8vGw?version=3
OLD 2023-12-15 Grubby is AMAZED by Bard's Kit - &quotThat's it, I'm a BARD MAIN now!&quot- Grubby https://www.youtube.com/v/rmyz-Ow1iuo?version=3
OLD 2023-12-15 Grubby screws up Rift Herald AGAIN in First Sejuani Game! - League Of Legends https://www.youtube.com/v/bTvrbLaWDQ4?version=3
OLD 2023-12-14 Grubby OUTPLAYS opponents in 2v1 FIRST MORDEKAISER GAME - League Of Legends https://www.youtube.com/v/60H4yGHg3eQ?version=3
OLD 2023-12-14 After my failed ELF MAIN experiment, we're back to FACING ELVES - with EMPATHY - WC3 - Grubby https://www.youtube.com/v/ymjXzlYwXK4?version=3
OLD 2023-12-13 Grubby channels his inner FAKER in FIRST AZIR GAME - League of Legends https://www.youtube.com/v/5U-1EMhoVnE?version=3
OLD 2023-12-13 Let's go OFF-META Undead with Fiends and GIGACHAD PITLORD! - WC3 - Grubby https://www.youtube.com/v/BK7qRZKfp3Q?version=3
OLD 2023-12-12 Grubby pulls out the most FRUSTRATING strats to play against! - WC3 - Grubby https://www.youtube.com/v/8v-0nlkl5jg?version=3
OLD 2023-12-12 The &quotpretend to be AFK&quot CHALLENGE - WC3 - Grubby https://www.youtube.com/v/PyVoNex6m_0?version=3
OLD 2023-12-11 Let's TRYHARD Human! - WC3 - Grubby https://www.youtube.com/v/-HB3P23TYx8?version=3
OLD 2023-12-11 The Infamous Bloodcastle - Biggest Flex Ever - WC3 - Grubby https://www.youtube.com/v/DK1Znk3UscM?version=3

21
rss/feeds/Jabroni Mike Normal file
View File

@ -0,0 +1,21 @@
OLD 2023-12-21 This Skibidi Toilet thing is getting out of hand #funny #jabronimike #gamestreamer https://www.youtube.com/v/Q6LMELVC_So?version=3
OLD 2023-12-20 Never Trust Influencer Snacks #funny #jabronimike #gamestreamer https://www.youtube.com/v/a6MJDFych9I?version=3
OLD 2023-12-19 He was one letter off #funny #jabronimike #gamestreamer https://www.youtube.com/v/x7a4jWWJxM4?version=3
OLD 2023-12-19 Twitch Policy Changes were Kinda Good... https://www.youtube.com/v/zarNs2mWvJI?version=3
OLD 2023-12-18 Freddy Fazbear When no Bite #funny #jabronimike #gamestreamer https://www.youtube.com/v/A8zxG8_JIyo?version=3
OLD 2023-12-18 SUBATHON ANNOUNCEMENT 12/20 - 12/23 https://www.youtube.com/v/ouxN7Z-xjn4?version=3
OLD 2023-12-17 Roblox kittens #streamer #funny #jabronimike #tiktok https://www.youtube.com/v/xsHe-Lp4X3k?version=3
OLD 2023-12-16 This ape was Imprisoned for tongue crimes #twitchclips #streamer #funny #jabronimike #tiktok https://www.youtube.com/v/M9pyuU3WnwM?version=3
OLD 2023-12-15 The Dino Rap prod. Nxsada #twitchclips #streamer #funny #jabronimike #musicvideo https://www.youtube.com/v/9BNGFnHsDYw?version=3
OLD 2023-12-14 Watching your Terrible TikToks https://www.youtube.com/v/NK2cI8arfbg?version=3
OLD 2023-12-14 Jabroni Mike - The Dino Rap prod. Nxsada https://www.youtube.com/v/L08NyolcU4Q?version=3
OLD 2023-12-08 Mike Jumpscares Tobs in Lethal Company #twitchclips #streamer #funny #jabronimike #lethalcompany https://www.youtube.com/v/gw7ijwcdnno?version=3
OLD 2023-12-06 Join the Bowel Movement #twitchclips #streamer #funny #jabronimike #justchatting https://www.youtube.com/v/OBHWqbpZRfs?version=3
OLD 2023-12-05 Peter Griffin is getting around lately #twitchclips #streamer #funny #jabronimike #lethalcompany https://www.youtube.com/v/k_eRrDj0XGI?version=3
OLD 2023-11-30 We Started a &quotBowel Movement&quot on Twitch https://www.youtube.com/v/VPSBt-o8w_A?version=3
OLD 2023-11-23 Lethal Company is F*cking Hilarious w/ Fredrik Knudsen and Rev https://www.youtube.com/v/wNMAQmAVPGQ?version=3
OLD 2023-11-17 10 Minutes of Jabroni Mike Clips to Watch on the Toilet https://www.youtube.com/v/N8FObb9-zIY?version=3
OLD 2023-11-15 You Won't Last 5 Seconds Playing Suika Game https://www.youtube.com/v/gc18qlzias4?version=3
OLD 2023-11-12 Falco's sad story #twitchclips #streamer #funny #jabronimike #rhythmheaven https://www.youtube.com/v/hVHGpvmMQt8?version=3
OLD 2023-11-11 Kidnapping plot twist #twitchclips #streamer #funny #jabronimike #fingerfamily https://www.youtube.com/v/D8IfmLmmnD4?version=3
OLD 2023-11-11 Scary Content Farm Stories to Watch in the Dark https://www.youtube.com/v/sl8yl_SjBeg?version=3

View File

@ -0,0 +1,24 @@
OLD 2023-12-22 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/0_MN6JYmkaI?version=3
OLD 2023-12-21 Subathon Speedrun Any% - Birthday Subathon DAY 1 - Jabroni Mike https://www.youtube.com/v/_QEQAq99Vlw?version=3
OLD 2023-12-21 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/LmFRbmD42Jg?version=3
OLD 2023-12-21 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/_NfGKe4a4L0?version=3
OLD 2023-12-21 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/qxkdKUljVAM?version=3
OLD 2023-12-20 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/LmFRbmD42Jg?version=3
OLD 2023-12-20 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/wIQpctyTouE?version=3
OLD 2023-12-19 THIS IS LIVE! COME SAY HI ON TWITCH: https://www.twitch.tv/jabroni_mike https://www.youtube.com/v/1FYyti28QWE?version=3
OLD 2023-12-18 SUBATHON ANNOUNCEMENT 12/20 - 12/23 https://www.youtube.com/v/10CmMCcwbpo?version=3
OLD 2023-12-17 Chaotic Lethal Company w/ OverEzEggs, Tobs, Rev, Limes &amp More! - Jabroni Mike https://www.youtube.com/v/aXZggxlN4kU?version=3
OLD 2023-12-16 You Laugh, You Look at Furry Zorn - Jabroni Mike YLYL https://www.youtube.com/v/0t3J6dukVUY?version=3
OLD 2023-12-14 Jabroni Mike's Dino Rap Career Debut - Jurassic World Evolution 2 https://www.youtube.com/v/dTF85_-e_I8?version=3
OLD 2023-12-12 Analog Horror Dinos - Jurassic Park Tapes + Local 58 + Vita Carnis + Gemini Home Entertainment https://www.youtube.com/v/QLGYYoaOX7U?version=3
OLD 2023-12-10 6 VTubers, 1 Fleshy - Lethal Company w/Snuffy, Hackerling, Limes, Fredrik Knudsen and More! https://www.youtube.com/v/ZEJiG92SlXk?version=3
OLD 2023-12-09 Live, Laugh, Look at P*rn - Live Action Finger Family - Jabroni Mike https://www.youtube.com/v/7yDe6yGLFCM?version=3
OLD 2023-12-07 Driving Down Bussey Road - Quizzes + GeoGuessr - Jabroni Mike https://www.youtube.com/v/7sGN338mJ5k?version=3
OLD 2023-12-05 DINO DMONDAY 2: Gextinction - Jurassic World Evolution 2 - Jabroni Mike https://www.youtube.com/v/ZPxE0-nPawM?version=3
OLD 2023-12-03 Modded Lethal Company w/Fredrik Knudsen, PorcelainMaid, SimpleFlips and more! - Jabroni Mike https://www.youtube.com/v/mBAphTPc2P4?version=3
OLD 2023-12-02 The Amazing Digital Content Farm - Jabroni Mike Finger Family https://www.youtube.com/v/7pXbGflb-FI?version=3
OLD 2023-11-30 Say Gex 3: Catalinaville w/ GEEGA - Jabroni Mike https://www.youtube.com/v/ucD_DmQAfCE?version=3
OLD 2023-11-29 Fecal Company - Lethal Company w/ Vargskelethor, SimpleFlips and Alfhilde - Jabroni Mike https://www.youtube.com/v/DSpAvokcdxU?version=3
OLD 2023-11-28 Looking at User Submitted TikTok Cringe! - Jabroni Mike https://www.youtube.com/v/dNs3lQOttU8?version=3
OLD 2023-11-26 Chat, we need to talk... - Guilty Gear Strive + Lethal Company - Jabroni Mike and Friends! https://www.youtube.com/v/1L82WXVFi0w?version=3
OLD 2023-11-25 Me after the lobotomy - YLYL + Genshin Impact - Jabroni Mike https://www.youtube.com/v/GHKhOBvccpQ?version=3

View File

@ -0,0 +1,21 @@
NEW 2023-12-21 What is the ego? Krishnamurti #shorts https://www.youtube.com/v/YzpmUItjZB4?version=3
NEW 2023-12-21 Desire is not love Krishnamurti https://www.youtube.com/v/3o679fVEiiM?version=3
NEW 2023-12-20 The instrument of thought is useless Krishnamurti #shorts https://www.youtube.com/v/i8NoUi8S9WE?version=3
NEW 2023-12-20 The Krishnamurti Podcast - Ep. 215 - Krishnamurti on Rationality https://www.youtube.com/v/e61WG4eqIaw?version=3
OLD 2023-12-19 Thought has created the future Krishnamurti #shorts https://www.youtube.com/v/Ov38KfoDFw4?version=3
OLD 2023-12-18 Observation without motive Krishnamurti #shorts https://www.youtube.com/v/PLd7ess8D9s?version=3
OLD 2023-12-18 Can you live without self-interest? Krishnamurti https://www.youtube.com/v/ASajp_AaE48?version=3
OLD 2023-12-17 Is it possible to live without a single image? Krishnamurti #shorts https://www.youtube.com/v/FTvninkRuLg?version=3
OLD 2023-12-17 The turning point is in our consciousness Krishnamurti https://www.youtube.com/v/cOcV8uMbpP4?version=3
OLD 2023-12-16 Can consciousness be aware of itself? Krishnamurti #shorts https://www.youtube.com/v/CNhUpgKkbI0?version=3
OLD 2023-12-16 Art means to put everything in its right place Krishnamurti https://www.youtube.com/v/GyCVI6Ypdl8?version=3
OLD 2023-12-15 What are you afraid of? Krishnamurti #shorts https://www.youtube.com/v/cbrLhlvgU7I?version=3
OLD 2023-12-14 There is nothing to learn about yourself Krishnamurti #shorts https://www.youtube.com/v/gu2VWxFW0Js?version=3
OLD 2023-12-14 Do we love our children? Krishnamurti https://www.youtube.com/v/EHwRXlIjhA4?version=3
OLD 2023-12-13 Be a light to all humanity Krishnamurti #shorts https://www.youtube.com/v/rrTnUDN8tjk?version=3
OLD 2023-12-13 The Krishnamurti Podcast - Ep. 214 - Krishnamurti on The Unconscious https://www.youtube.com/v/-rvg4ru7Hg4?version=3
OLD 2023-12-12 Insight into thought Krishnamurti #shorts https://www.youtube.com/v/uXEbG6Z54s0?version=3
OLD 2023-12-11 Is it possible to live without any form of control? Krishnamurti #shorts https://www.youtube.com/v/CmUA41o_O0k?version=3
OLD 2023-12-11 When does desire begin? Krishnamurti https://www.youtube.com/v/BHOTBdmIoJs?version=3
OLD 2023-12-10 Are you aware of your prejudices? Krishnamurti #shorts https://www.youtube.com/v/woypyPkezcA?version=3
OLD 2023-12-10 What cripples the mind? Krishnamurti https://www.youtube.com/v/9wCcnUe74Vs?version=3

16
rss/feeds/Lime Archives Normal file
View File

@ -0,0 +1,16 @@
NEW 2023-12-22 Oh h-hi... ~ Laimu plays Cyberpunk 2077 Part 22 https://www.youtube.com/v/gFJ06nDw3uQ?version=3
OLD 2023-12-21 Pokmon in Minecraft! ~ Laimu plays Pixelmon https://www.youtube.com/v/Q4Vc4r7JT20?version=3
OLD 2023-12-19 Laimu plays Modded Left 4 Dead 2 with @hackerling @Snuffyowo and @TobosoCH https://www.youtube.com/v/6sfaQj6hgYc?version=3
OLD 2023-12-18 Me And My Friends Have Our Own Suits! ~ Laimu plays Lethal Company https://www.youtube.com/v/anfEv6NxelE?version=3
OLD 2023-12-15 Eywa has heard me ~ Laimu plays Avatar: Frontiers of Pandora Part 3 https://www.youtube.com/v/tiBtIwXDieI?version=3
OLD 2023-12-14 Here's My Counteroffer ~ Laimu plays Cyberpunk 2077 Part 21 https://www.youtube.com/v/X4V7jdWtJTM?version=3
OLD 2023-12-12 Nimun my Ikran! ~ Laimu plays Avatar: Frontiers of Pandora Part 2 https://www.youtube.com/v/g5KG7aFowI0?version=3
OLD 2023-12-11 New Lethal Company Update with My Friends ~ Laimu plays Lethal Company https://www.youtube.com/v/PSDd-P5KEaA?version=3
OLD 2023-12-10 I'm a Na'vi! ~ Laimu plays Avatar: Frontiers of Pandora Part 1 https://www.youtube.com/v/ZcohoHahJDo?version=3
OLD 2023-12-08 Laimu and Snuffy watch The Game Awards 2023 https://www.youtube.com/v/D8zDJQkVpYM?version=3
OLD 2023-12-07 Date at home with Judy (and Rivers)~ Laimu plays Cyberpunk 2077 Part 20 https://www.youtube.com/v/vcWHkiiBFr0?version=3
OLD 2023-12-06 Our Base is Really Coming Along! ~ Laimu plays Rimworld but Everyone has Chat Names Part 3 https://www.youtube.com/v/waOe8W97KIM?version=3
OLD 2023-12-05 We're being Great Great Assets! ~ Laimu plays Lethal Company https://www.youtube.com/v/_16hAV6-yZ8?version=3
OLD 2023-12-03 All My Friends Are Monsters! ~ Laimu plays Dragon Quest Monsters: The Dark Prince https://www.youtube.com/v/iygGgmwwKV8?version=3
OLD 2023-12-03 We go to Rend! ~ Lethal Company with @hackerling @FredrikKnudsen @SimpleFlips https://www.youtube.com/v/KNUFqoYxTE4?version=3
OLD 2023-12-01 Time to Milk Chat! ~ Laimu plays Rimworld but Everyone has Chat Names Part 2 https://www.youtube.com/v/-Moz9brT59s?version=3

15
rss/feeds/Lindybeige Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-11-30 A Brit volunteer in Ukraine: looking back on seven months' service https://www.youtube.com/v/LYBB9tMxDEg?version=3
OLD 2023-10-20 A Canadian volunteer in Ukraine part four: rescuing civilians and hitting a mine https://www.youtube.com/v/ZPvWK8kiaVk?version=3
OLD 2023-10-06 A Canadian volunteer in Ukraine: mobilising the nerd army https://www.youtube.com/v/s97HCEyx5XE?version=3
OLD 2023-09-22 A Canadian volunteer in Ukraine: being a medic with little training https://www.youtube.com/v/11C7eAhWy6g?version=3
OLD 2023-09-01 My next suit of armour https://www.youtube.com/v/zi05PX9pwBI?version=3
OLD 2023-08-29 Butterfly Swords https://www.youtube.com/v/naRNFYIq7T0?version=3
OLD 2023-08-02 World War Two's most common tank https://www.youtube.com/v/8BxXApcfCNU?version=3
OLD 2023-07-16 A Canadian volunteer in Ukraine: part one - why I went, and the shock of arrival https://www.youtube.com/v/4LcUj47_7S4?version=3
OLD 2023-07-13 How rough were medieval weapons? https://www.youtube.com/v/QdZybEq1PyE?version=3
OLD 2023-07-12 The past's most common weapon https://www.youtube.com/v/ggjlBtjZJUU?version=3
OLD 2023-07-11 What did Excalibur look like? https://www.youtube.com/v/h9Vq0gQ6PPg?version=3
OLD 2023-07-10 The English billhook - a popular tool https://www.youtube.com/v/PdmohHKBAh4?version=3
OLD 2023-07-09 Spadone - the mysterious sword https://www.youtube.com/v/kH_DEEpvrrY?version=3
OLD 2023-07-08 Gladius - the legionary's sword https://www.youtube.com/v/hZqS8Zkc8wI?version=3
OLD 2023-07-07 The Falcata - the great Iberian chopper https://www.youtube.com/v/zKiTBe0sUZo?version=3

15
rss/feeds/Martin Thissen Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-15 Mixtral On Your Computer Mixture-of-Experts LLM Free GPT-4 Alternative Tutorial https://www.youtube.com/v/ucov1AWvGEc?version=3
OLD 2023-12-05 How I Built My $10,000 Deep Learning Workstation https://www.youtube.com/v/rCmvXCtY7eA?version=3
OLD 2023-07-22 Llama2-Chat on Your Local Computer Free ChatGPT Alternative https://www.youtube.com/v/WzCS8z9GqHw?version=3
OLD 2023-06-24 Drag Your GAN Explained: Image Editing via Drag &amp Drop Using AI Paper Reimplementation Tutorial https://www.youtube.com/v/34nbEAL-Kfs?version=3
OLD 2023-04-22 Can AI Already Do Your Job? GPT-4 Auto-GPT https://www.youtube.com/v/WCxYHGc4kd0?version=3
OLD 2023-04-20 5x Faster Voice Cloning Tortoise-TTS-Fast Tutorial https://www.youtube.com/v/8i4T5v1Fl_M?version=3
OLD 2023-04-05 Run Vicuna-13B On Your Local Computer Tutorial(GPU) https://www.youtube.com/v/F_pFH-AngoE?version=3
OLD 2023-04-04 Run Vicuna on Your CPU &amp GPU Best Free Chatbot According to GPT-4 https://www.youtube.com/v/jb4r1CL2tcc?version=3
OLD 2023-03-27 How To Fine-Tune the Alpaca Model For Any Language ChatGPT Alternative https://www.youtube.com/v/yTROqe8T_eA?version=3
OLD 2023-03-21 LLaMA &amp Alpaca: Fine-Tuning, Code Generation, RAM Requirements and More Answers to Your Questions https://www.youtube.com/v/_PO5NyOve6M?version=3
OLD 2023-03-18 LLaMA &amp Alpaca: ChatGPT On Your Local Computer Tutorial https://www.youtube.com/v/kT_-qUxrlOU?version=3
OLD 2023-03-16 Run Tortoise-TTS On Your Local Computer Tutorial Voice Cloning https://www.youtube.com/v/mq9lBd8XMY4?version=3
OLD 2023-03-03 ControlNet: A Beginner's Guide to Getting Started https://www.youtube.com/v/hxLypJ-sAy4?version=3
OLD 2023-03-02 How To Remove People From Pictures Using AI Stable Diffusion Lama Cleaner https://www.youtube.com/v/vIvWwrvcTkc?version=3
OLD 2023-02-01 Multi-Language Speech Generation Coqui-TTS Tutorial https://www.youtube.com/v/-tE0UqE1R8E?version=3

18
rss/feeds/Mental Outlaw Normal file
View File

@ -0,0 +1,18 @@
OLD 2023-12-21 Encrypted Client Hello - Online Privacy's Missing Piece https://www.youtube.com/v/TaB_Zmyh4DE?version=3
OLD 2023-12-19 Tesla's Cybertruck - TLP Clips https://www.youtube.com/v/SLTd3cW-4f0?version=3
OLD 2023-12-18 Kenny and Mike React To IRL GTA Characters - TLP Clips https://www.youtube.com/v/yltrTi9GA2E?version=3
OLD 2023-12-16 Stop it, Get Some Hard Drives - TLP Clips https://www.youtube.com/v/dSmrjXftJYI?version=3
OLD 2023-12-16 Congratulations To Our FOSS Developer Of The Day https://www.youtube.com/v/mG6TRmvUM4s?version=3
OLD 2023-12-15 The Libre Podcast 5. High Speed Rails, Meta's CSAM Network, Elon VS The ADL, Funny PSAs https://www.youtube.com/v/N7MbXUMYFec?version=3
OLD 2023-12-13 OpenWrt - FOSS Firmware For Your Router https://www.youtube.com/v/B7d8U2_AQYw?version=3
OLD 2023-12-11 Apple And Google Are Sending Your Push Notifications to The Government https://www.youtube.com/v/znZKqM7wEUk?version=3
OLD 2023-12-06 Microsoft Is Forcing More Bloat Onto Your PC https://www.youtube.com/v/L9i8was6oNQ?version=3
OLD 2023-12-03 The Cybertruck Is A Disappointment https://www.youtube.com/v/g-3i6CY33pQ?version=3
OLD 2023-11-30 Google Drive Lost Your Data https://www.youtube.com/v/HJ4oLqzYxic?version=3
OLD 2023-11-29 Meta Knowingly Exploits Kids for Profit https://www.youtube.com/v/J0150ypkT28?version=3
OLD 2023-11-26 Google IP Protection is a Wolf in Sheep's Clothing https://www.youtube.com/v/8cfMZGZRAMI?version=3
OLD 2023-11-21 YouTube Has Gone Too Far This Time https://www.youtube.com/v/v4gXhmzQztE?version=3
OLD 2023-11-19 The EU Is Fixing Microsoft Windows https://www.youtube.com/v/vRv4J2Vcyio?version=3
OLD 2023-11-16 Syncthing - The Based Way to Sync Your Files https://www.youtube.com/v/Uag8PJaO0N4?version=3
OLD 2023-11-14 When Your AI Assistant is Also an Attack Vector https://www.youtube.com/v/IJ8xUzVVRgU?version=3
OLD 2023-11-12 Apple May Soon Allow Sideloading Apps on iOS https://www.youtube.com/v/00ymi9v7jKE?version=3

15
rss/feeds/Mern Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-11-19 Modernize Skyrims Graphics With These Mods! Best Graphics Mods Going Into 2024 https://www.youtube.com/v/11STI1LN6NA?version=3
OLD 2023-10-15 Skyrim Modders Compete for $100 MG Mod Jam 2023 https://www.youtube.com/v/_IA7GadHOb4?version=3
OLD 2023-09-24 12 Insane Skyrim Mods You Need To Try https://www.youtube.com/v/ocwU7mlTVZw?version=3
OLD 2023-09-11 26 Must Have Mods Going Into Starfield https://www.youtube.com/v/fgk6s6H0QfY?version=3
OLD 2023-09-04 Starfield and Chill - Playing with a 4090 https://www.youtube.com/v/Mzld-9e0ANM?version=3
OLD 2023-08-31 Skyrim News Before Were All Consumed By Starfield https://www.youtube.com/v/MhKDRBO_f94?version=3
OLD 2023-08-29 Exposing Skyrims Worst Scammer https://www.youtube.com/v/DvLLBpkBIjg?version=3
OLD 2023-08-07 Skyrim Modding Has Never Been This Active! https://www.youtube.com/v/e91Wc2VQKAE?version=3
OLD 2023-06-22 A Man Drank 1 Liter of Skooma. This Is What Happened To His Brain. https://www.youtube.com/v/puS1JgeKnpI?version=3
OLD 2023-06-15 16 Mods To Breathe New Life Into Your Skryim https://www.youtube.com/v/gGAWoS2AnXQ?version=3
OLD 2023-05-11 How to Create Handsome Skyrim Characters https://www.youtube.com/v/nl6CN4k9h1E?version=3
OLD 2023-04-28 16 New Skyrim Mods to Get You Excited to Play Again https://www.youtube.com/v/K8rz9mwSabY?version=3
OLD 2023-04-19 Must Have Quality of Life Skyrim Mods https://www.youtube.com/v/6AJRnagd1qY?version=3
OLD 2023-03-31 Must Have Player Enhancement Mods To Bring Your Skyrim Characters To Life https://www.youtube.com/v/DFw1pC8tfgs?version=3
OLD 2023-03-20 Top 10 Skyrim Mods of The Month (Epic Boss Battles, Combat Breakthroughs and More) https://www.youtube.com/v/OZlmmvY5URU?version=3

20
rss/feeds/Mufti Menk Normal file
View File

@ -0,0 +1,20 @@
NEW 2023-12-22 NEW Navigating Through the Struggles of Life - Mufti Menk at East London Mosque https://www.youtube.com/v/RxDJFEA7Y6g?version=3
NEW 2023-12-22 Asking Allah for Forgiveness#MuftiMenk #Islam #Eman #muslim https://www.youtube.com/v/pqvEwthrsJ4?version=3
OLD 2023-12-20 Mufti Menk Caught on his PHONE at Midnight?! https://www.youtube.com/v/vMIHnAf7aDY?version=3
OLD 2023-12-20 He Loves to #Forgive https://www.youtube.com/v/x-M4lUW5-EU?version=3
OLD 2023-12-20 You want to build community - Invest in your children - Mufti Menk https://www.youtube.com/v/weQzNBsMD-4?version=3
OLD 2023-12-18 The Weight of your Deeds - Mufti Menk https://www.youtube.com/v/5A5fZ70Yf74?version=3
OLD 2023-12-17 A sin you keep going back to - Mufti Menk https://www.youtube.com/v/UVnw_jE92XI?version=3
OLD 2023-12-16 Little Mariam has something to say #MuftiMenk #Nigeria https://www.youtube.com/v/SFAm_m9Gcxs?version=3
OLD 2023-12-16 The Best Creation - Mufti Menk https://www.youtube.com/v/AAH9psm4iRc?version=3
OLD 2023-12-13 The way you walk - Mufti Menk https://www.youtube.com/v/J6wIxcBkASM?version=3
OLD 2023-12-11 Are you Abusive? Mufti Menk https://www.youtube.com/v/U3RzJGvfUdc?version=3
OLD 2023-12-10 OLD Straight Talk - What You Didn't Know Mufti Menk and Shuraim https://www.youtube.com/v/T116_qAm_I8?version=3
OLD 2023-12-07 It does not benefit Allah - Mufti Menk https://www.youtube.com/v/DVpBR-Oq31c?version=3
OLD 2023-12-05 Developing the correct relationship with your Creator - Mufti Menk https://www.youtube.com/v/gI7B0nV4v_g?version=3
OLD 2023-12-04 Did you do this to someone? Mufti Menk https://www.youtube.com/v/QiXABl5iaJc?version=3
OLD 2023-12-03 Beg Allah till he gives you what your heart wants - Mufti Menk https://www.youtube.com/v/RU-o1i4ggGk?version=3
OLD 2023-12-03 WHO ELSE GOT THIS INVITATION? EXCLUSIVE - MUFTI MENK https://www.youtube.com/v/LfIWFlBZWgU?version=3
OLD 2023-12-01 OLD THIS IS WHY YOUR CHARITY IS CANCELLED! - MUFTI MENK https://www.youtube.com/v/SGG5PKwf5Zg?version=3
OLD 2023-12-01 Why should we be scared of Allah? Mufti Menk https://www.youtube.com/v/ER7U0F27oVQ?version=3
OLD 2023-11-30 He Just Exposed His Secret Project... - Mufti Menk and Sh Ammar Alshukry #Unplugged https://www.youtube.com/v/T1NERho3mrg?version=3

15
rss/feeds/My Two Pence Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-17 Trying to enter a Dwemer Ruins in Morrowind https://www.youtube.com/v/PVjdX9jY6J8?version=3
OLD 2023-12-13 Jiub watching me leave the ship https://www.youtube.com/v/diYo8ftGlS8?version=3
OLD 2023-12-12 When you've completed every Elderscolls game for the 100th time https://www.youtube.com/v/_6Dt7pu8pLY?version=3
OLD 2023-11-30 When you convince your friend to play other Elderscolls games https://www.youtube.com/v/EfIXavNlMDU?version=3
OLD 2023-11-28 Mysterious Stranger in Fallout New Vagas https://www.youtube.com/v/Qr_O4uzpXog?version=3
OLD 2023-11-23 Fallout and Elderscroll fans after playing Starfield https://www.youtube.com/v/9rsU6607RDU?version=3
OLD 2023-11-01 Retail workers on the 1st of November https://www.youtube.com/v/4n6An9dCbg8?version=3
OLD 2023-10-28 When Dagoth ur meets an N'wah https://www.youtube.com/v/Yvn2DoPAyL0?version=3
OLD 2023-10-24 When you get robbed in Skyrim at Level 1 https://www.youtube.com/v/u8BD7XDoK0E?version=3
OLD 2023-10-22 Boomer playing Morrowind vs Zoomers playing Morrowind https://www.youtube.com/v/IlWiPFVbDpo?version=3
OLD 2023-10-16 Joe Biden in Starfield https://www.youtube.com/v/7plUyqTq3qM?version=3
OLD 2023-10-11 Combat in Morrowind VS Combat is Skyrim https://www.youtube.com/v/u5obzLSA_y0?version=3
OLD 2023-09-27 Asking a Oblivion NPC for directions https://www.youtube.com/v/MurXQMvuqQI?version=3
OLD 2023-09-21 Todd lying about Starfield https://www.youtube.com/v/HCew6WX2JRk?version=3
OLD 2023-09-18 Flirting with your companions in Starfield be like https://www.youtube.com/v/HTDpxD866tk?version=3

28
rss/feeds/Northernlion Normal file
View File

@ -0,0 +1,28 @@
NEW 2023-12-21 Bro is named Ratzenberger (Cine2Nerdle Battles) https://www.youtube.com/v/F3txUC2cLb4?version=3
NEW 2023-12-21 Throw me a frickin bone here (The Binding of Isaac: Repentance) https://www.youtube.com/v/o9Dkj8txLVs?version=3
NEW 2023-12-21 They beat me before even attacking once (Super Auto Pets) https://www.youtube.com/v/nPjLGTkDKgU?version=3
NEW 2023-12-21 That's why he's the goat (and chicken) (Super Auto Pets) https://www.youtube.com/v/7dYS3NliU0I?version=3
NEW 2023-12-20 The thumper...what else can you say (Lethal Company) https://www.youtube.com/v/TEOJ9N0eHQU?version=3
NEW 2023-12-20 Our long wait is over (Cine2Nerdle Battles) https://www.youtube.com/v/2w-bQIO1pAw?version=3
NEW 2023-12-20 I don't know anything about Nurse Jackie bro (The Binding of Isaac: Repentance) https://www.youtube.com/v/TOt5_9irLrA?version=3
NEW 2023-12-19 The most cursed seed ever (Lethal Company) https://www.youtube.com/v/eDBgqeBM3W0?version=3
NEW 2023-12-19 A sartorial mishap (The Binding of Isaac: Repentance) https://www.youtube.com/v/1tzAaetojAQ?version=3
NEW 2023-12-19 Does he know what he was cooking? (Super Auto Pets) https://www.youtube.com/v/-It_mraGpm8?version=3
NEW 2023-12-18 I will not be scared of a mere children's toy (Lethal Company) https://www.youtube.com/v/uKbKx1TCGzU?version=3
OLD 2023-12-18 They even added a tasteful synergy (Against the Storm) https://www.youtube.com/v/TTCgQDGotPI?version=3
OLD 2023-12-18 We found the one time this item isn't good (The Binding of Isaac: Repentance) https://www.youtube.com/v/fS5eOhJ4moE?version=3
OLD 2023-12-17 Nobody makes the first jump (Lethal Company) https://www.youtube.com/v/V3kcfBEFa7E?version=3
OLD 2023-12-17 A rare Josh Jackbox (Jackbox) https://www.youtube.com/v/EGfiXi6pG1Y?version=3
OLD 2023-12-17 His mind looks like this on the inside (House Flipper 2) https://www.youtube.com/v/KTLFWFfCjIU?version=3
OLD 2023-12-17 I swear I beat the tutorial in this one (Against the Storm) https://www.youtube.com/v/58xZ-P0NZoA?version=3
OLD 2023-12-17 He's playing the game in his head now (The Binding of Isaac: Repentance) https://www.youtube.com/v/XmH43Zkr2g0?version=3
OLD 2023-12-17 The prophecy must be fulfilled (Super Auto Pets) https://www.youtube.com/v/FavXNiht3eI?version=3
OLD 2023-12-16 Turns out I'm mostly just picking up garbage (House Flipper 2) https://www.youtube.com/v/jnRMubg7aBA?version=3
OLD 2023-12-16 They made a roguelite citybuilder (Against the Storm) https://www.youtube.com/v/C7tSNejlKLU?version=3
OLD 2023-12-16 It's over for me (The Binding of Isaac: Repentance) https://www.youtube.com/v/n8KdzfOPByY?version=3
OLD 2023-12-15 Bro hit me with the Bionicle (Cine2Nerdle Battles) https://www.youtube.com/v/Ort5vuE9C7M?version=3
OLD 2023-12-15 He's on fire (The Binding of Isaac: Repentance) https://www.youtube.com/v/NW8jSZeN39c?version=3
OLD 2023-12-15 Royal flush got nothing on 5 stego (Super Auto Pets) https://www.youtube.com/v/PHu_pBvxMdA?version=3
OLD 2023-12-14 I'm gonna make them work for it (Cine2Nerdle Battles) https://www.youtube.com/v/nY59gJfv6xo?version=3
OLD 2023-12-14 Napoleon got sent to the minus realm (The Binding of Isaac: Repentance) https://www.youtube.com/v/0aNAp9wenL0?version=3
OLD 2023-12-14 Stop trying to make the panther happen (Super Auto Pets) https://www.youtube.com/v/6huAfUwL8pI?version=3

15
rss/feeds/PewDiePie Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-07 Apology Videos have reached a new low https://www.youtube.com/v/Vw0xrE3ZQ74?version=3
OLD 2023-11-28 my favorite trip so far! https://www.youtube.com/v/IIuRc8IiSuE?version=3
OLD 2023-11-23 Teaching myself to draw for no reason https://www.youtube.com/v/CMLEudGbxQk?version=3
OLD 2023-11-16 The real reason I left Sweden. https://www.youtube.com/v/A6Z9gkJnfgw?version=3
OLD 2023-11-07 Happy days https://www.youtube.com/v/5puX_BVuVAA?version=3
OLD 2023-10-27 Reacting https://www.youtube.com/v/n62M2pd0-p8?version=3
OLD 2023-10-12 I Learned 7 things in 7 days (to impress my son) https://www.youtube.com/v/L0zminwWyxI?version=3
OLD 2023-10-04 This is the best https://www.youtube.com/v/CZy5pwKdMuo?version=3
OLD 2023-09-30 The worst Hoarder on the Planet. https://www.youtube.com/v/ZFAuSU_XaZI?version=3
OLD 2023-09-22 i am now supreme leader https://www.youtube.com/v/sK37SolFV8I?version=3
OLD 2023-09-15 dad life https://www.youtube.com/v/_sPXXL9YXok?version=3
OLD 2023-09-10 Reacting to my Wife's baby memes https://www.youtube.com/v/bsrKZCf_tMU?version=3
OLD 2023-08-30 I'm the best dad (proof) https://www.youtube.com/v/XBjfAEM4CPA?version=3
OLD 2023-08-11 I'm a dad now https://www.youtube.com/v/tKOlGCqDowQ?version=3
OLD 2023-06-30 I Made A Street Lamp... And No One Noticed https://www.youtube.com/v/tLgmrUyfcd4?version=3

15
rss/feeds/Shoe0nHead Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-12-11 Male vs Female Flirting - Reacting To Jubilee https://www.youtube.com/v/bppNzhONL8A?version=3
OLD 2023-11-23 The Struggle of Modern Men https://www.youtube.com/v/9k06JqEUGYw?version=3
OLD 2023-11-20 Are Women Ok? https://www.youtube.com/v/X7Y1dkNVNBc?version=3
OLD 2023-09-11 Men Deserve To Be Lonely! Responding To Backlash Over The Male Loneliness Epidemic https://www.youtube.com/v/qVKvEaokV6I?version=3
OLD 2023-08-07 The Male Loneliness Epidemic https://www.youtube.com/v/rQv8VuLpKN4?version=3
OLD 2023-07-30 Barbie: An Accidental Anti-Woke Masterpiece https://www.youtube.com/v/2CsTzVyZP4M?version=3
OLD 2023-07-23 I Watched Sound Of Freedom Because The Media Told Me Not To https://www.youtube.com/v/dVsWPEbUgi0?version=3
OLD 2023-06-26 Reading Your Insane SIMP Comments https://www.youtube.com/v/IZQxOcLhi_s?version=3
OLD 2023-04-26 &quotEgirl&quot Vs &quotAlpha Male&quot My Response To SNEAKO https://www.youtube.com/v/jgRBPUvY5Qg?version=3
OLD 2023-04-24 Tucker Carlson Fired From Fox News. Its over. https://www.youtube.com/v/hagUbkwM3_I?version=3
OLD 2023-04-08 The Male Dating Strategy https://www.youtube.com/v/M4uWfB5cjto?version=3
OLD 2023-03-31 The Good Ol Days https://www.youtube.com/v/adN2zkXQSNE?version=3
OLD 2023-03-31 PICK ME PICK ME PICK ME #tiktok #tradwives https://www.youtube.com/v/ZVqeWp-tgRA?version=3
OLD 2023-03-24 TikTok TradWives What Happened To Women? https://www.youtube.com/v/vOgIOTenmrs?version=3
OLD 2023-02-04 Roasting Men's Living Spaces https://www.youtube.com/v/llgCMv4bKuw?version=3

15
rss/feeds/SsethTzeentach Normal file
View File

@ -0,0 +1,15 @@
OLD 2023-11-30 Quasimorph Review Schizo Edition https://www.youtube.com/v/6p2CWUvueNQ?version=3
OLD 2023-10-27 Starslop Review Todd Edition https://www.youtube.com/v/J0nPx9R59C0?version=3
OLD 2023-09-29 Breeders of the Nephelym Any% Speedrun https://www.youtube.com/v/71QrPbamNZc?version=3
OLD 2023-07-11 Rise of Legends Review Edition https://www.youtube.com/v/PCSWwL-f1WQ?version=3
OLD 2023-04-18 Hardspace Shipbreaker Review We Own You Edition https://www.youtube.com/v/wX5RgxG-uFQ?version=3
OLD 2023-03-19 World of Tanks Review Reuploaded Edition https://www.youtube.com/v/AxXqRjI1AlA?version=3
OLD 2023-03-10 Earth Defense Force 5 Review https://www.youtube.com/v/xTAyK8Cw5LY?version=3
OLD 2023-02-18 Deep Rock Galactic Review 5&quot11 Edition https://www.youtube.com/v/Y_QNXVPVAY0?version=3
OLD 2022-12-23 Illegitimate Offspring Bonds Review Testosterone Edition https://www.youtube.com/v/CFzjBka-jB4?version=3
OLD 2022-11-25 Age of Wonders 1 Review 800x600 Edition https://www.youtube.com/v/1UiJQ3PNEaM?version=3
OLD 2022-10-21 Warthunder Review https://www.youtube.com/v/MlKtGVVfdc4?version=3
OLD 2022-08-24 Tribal Hunter Review Hyperinflation Edition https://www.youtube.com/v/VqasJcCUAA8?version=3
OLD 2022-07-29 Space Warlord Organ Trading Simulator Review Universal Donor Edition https://www.youtube.com/v/4Ppw5yTa3uk?version=3
OLD 2022-06-30 Songs of Conquest Review Working As Intended Edition https://www.youtube.com/v/QHbK9C5mA94?version=3
OLD 2022-05-06 Company of Heroes 2 Review Historically Accurate Edition https://www.youtube.com/v/K3KPPSU3xxQ?version=3

15
rss/feeds/Tsoding Daily Normal file
View File

@ -0,0 +1,15 @@
NEW 2023-12-21 This Release is Insane! https://www.youtube.com/v/CfeHFIP_xEI?version=3
NEW 2023-12-19 I made a New Programming Language https://www.youtube.com/v/6k_sR6yCvps?version=3
NEW 2023-12-16 This is Better than C for Binary Files https://www.youtube.com/v/F4NM1N2D5-Q?version=3
NEW 2023-12-09 Web is in The Past - Native UI in C is Back https://www.youtube.com/v/oyyV59dCyrA?version=3
NEW 2023-12-01 You don't need Generics in C https://www.youtube.com/v/o94JcrQThaM?version=3
NEW 2023-11-28 Forbidden Rust https://www.youtube.com/v/LQ2rX5B0DUA?version=3
NEW 2023-11-26 Hash Table in C https://www.youtube.com/v/n-S9DBwPGTo?version=3
NEW 2023-11-19 Unreasonably Easy Console Apps in Rust https://www.youtube.com/v/vc5UPu76XOw?version=3
NEW 2023-11-18 All WebDev Sucks and you know it https://www.youtube.com/v/3-KqO8g7qmk?version=3
NEW 2023-11-14 I tried React and it Ruined My Life https://www.youtube.com/v/XAGCULPO_DE?version=3
NEW 2023-11-09 My Viewers DDoSed my Rust App https://www.youtube.com/v/Sw12N7-zqkk?version=3
NEW 2023-11-07 I regret doing this... https://www.youtube.com/v/pmQMTfSABhw?version=3
NEW 2023-11-04 I rewrote My Go App in Rust https://www.youtube.com/v/BbIEuNscn_E?version=3
NEW 2023-10-30 My Viewers DDoSed my Go App https://www.youtube.com/v/qmmQAAJzM54?version=3
NEW 2023-10-22 Doing UI in C to Piss Off the React devs https://www.youtube.com/v/SRgLA8X5N_4?version=3

16
rss/feeds/Wilburgur Normal file
View File

@ -0,0 +1,16 @@
OLD 2023-12-21 A VERY WOWEE CHRISTMAS https://www.youtube.com/v/3idQ1MMQ8Fc?version=3
OLD 2023-10-31 The Sims Movie https://www.youtube.com/v/9ar8YT2_wpk?version=3
OLD 2023-09-17 The Starfield Experience https://www.youtube.com/v/efNS0-6xr1Q?version=3
OLD 2023-07-05 So THIS is what AI was meant for... https://www.youtube.com/v/mK1KRo0JWjk?version=3
OLD 2023-06-12 Sending the Adoring Fan to Space https://www.youtube.com/v/7PtLVRa9_S8?version=3
OLD 2023-06-11 So THIS is why the game has sold 10 million copies... https://www.youtube.com/v/ZciD2UJAGT0?version=3
OLD 2023-05-11 Khajiit's Bizarre Adventure - The Movie https://www.youtube.com/v/3LXKjVM5IXw?version=3
OLD 2023-03-12 DEEK THINKS YOU SHOULD BE ASHAMED https://www.youtube.com/v/W2L31G0Wr1s?version=3
OLD 2023-03-01 I have broken this game beyond human comprehension https://www.youtube.com/v/1GED0Jlv_4o?version=3
OLD 2022-12-24 Oblivion but Sean Bean becomes a Daedric God https://www.youtube.com/v/W6pNfSqPKTY?version=3
OLD 2022-11-25 OH NO I'M DEAD https://www.youtube.com/v/vbIUYEgrp2Y?version=3
OLD 2022-11-20 MY HORSE HAS MALFUNCTIONED https://www.youtube.com/v/DAgnxCkNu1g?version=3
OLD 2022-11-01 Elden Swing https://www.youtube.com/v/jIftr1tWFAk?version=3
OLD 2022-08-27 Why, Gordon? https://www.youtube.com/v/uzmUfkUO46g?version=3
OLD 2022-07-17 THINK IT'LL RAIN? https://www.youtube.com/v/hcr1eTbeNHU?version=3
OLD 2022-06-21 Oh yes I love adventuring with you https://www.youtube.com/v/l3fb16VPHeY?version=3

24
rss/feeds/penguinz0 Normal file
View File

@ -0,0 +1,24 @@
OLD 2023-12-22 Jack Doherty is Horrible https://www.youtube.com/v/DUu3FtInV4k?version=3
OLD 2023-12-21 Worst Police Driver Ever https://www.youtube.com/v/0R5OhXlsaYI?version=3
OLD 2023-12-21 Bad games https://www.youtube.com/v/sMoMVOIwyXE?version=3
OLD 2023-12-21 Bad games https://www.youtube.com/v/Uo-hBK3cDCE?version=3
OLD 2023-12-20 I'm Finally Talking About Her https://www.youtube.com/v/5wxDVEtOHYU?version=3
OLD 2023-12-20 Going over silly things https://www.youtube.com/v/tq4PzpVe4fg?version=3
OLD 2023-12-19 Huge Hacking Situation https://www.youtube.com/v/OjdE0OOLJnE?version=3
OLD 2023-12-19 She is Awful https://www.youtube.com/v/SWn5Zq7aJ-4?version=3
OLD 2023-12-18 Most Cringe Coffee Salesman Ever https://www.youtube.com/v/kYT3Ggp-wn0?version=3
OLD 2023-12-18 Something to Make You Happy https://www.youtube.com/v/uMofqvPzpMs?version=3
OLD 2023-12-17 Gordon Ramsay Food Tier List https://www.youtube.com/v/q6v1fcoVbOg?version=3
OLD 2023-12-17 Warframe night #ad https://www.youtube.com/v/tq4PzpVe4fg?version=3
OLD 2023-12-17 Most Unhinged Creep So Far https://www.youtube.com/v/jnWAFM_sByI?version=3
OLD 2023-12-16 Fighting Over McDonald's Pokemon Cards https://www.youtube.com/v/1WDT4ePtVE8?version=3
OLD 2023-12-16 Warframe night #ad https://www.youtube.com/v/BK1DJgaTeds?version=3
OLD 2023-12-16 Youtuber Charity Situation Got Worse https://www.youtube.com/v/LUrawkJf_MI?version=3
OLD 2023-12-15 They Already Gave Up https://www.youtube.com/v/FW8xifudKSw?version=3
OLD 2023-12-15 Actually So Embarrassing https://www.youtube.com/v/FqNbrXB2JO0?version=3
OLD 2023-12-14 New Twitch Policy is Crazy https://www.youtube.com/v/x6doK7_-OMU?version=3
OLD 2023-12-13 It Was All Fake https://www.youtube.com/v/LBZTpwKEbc4?version=3
OLD 2023-12-13 Worst Thing I've Ever Read https://www.youtube.com/v/q5RAXqZOyF0?version=3
OLD 2023-12-12 Fortnite is Actually Amazing Now https://www.youtube.com/v/ixfnVUrjA_8?version=3
OLD 2023-12-12 Fortnite night https://www.youtube.com/v/rswF2miyDAA?version=3
OLD 2023-12-12 Scam Game Situation is Crazy https://www.youtube.com/v/fml8vcLLblk?version=3

View File

@ -0,0 +1,15 @@
OLD 2023-12-17 Brian Stynes Interview ( Director Of Cork Mystery Film Coast Road :) https://www.youtube.com/v/iJUc66VCsE8?version=3
OLD 2023-12-10 The Assassin - Back In The Day https://www.youtube.com/v/gjIKnjVcWDg?version=3
OLD 2023-12-10 Horror Graphic Novel Recommendations https://www.youtube.com/v/npcywEFwLJk?version=3
OLD 2023-11-30 6 Christmas Horror Stories Animated https://www.youtube.com/v/XKb3Noo_WgU?version=3
OLD 2023-11-17 I Walked In On My Husband Killed Horror Short Animated https://www.youtube.com/v/kPuQ9yDxH8g?version=3
OLD 2023-11-16 The Date Horror Story Animated https://www.youtube.com/v/G-NNFTNU37s?version=3
OLD 2023-11-16 Marie Cassidy Former State Pathologist In Conversation With Catherine Kirwan Solicitor And Writer https://www.youtube.com/v/vust_wboMlE?version=3
OLD 2023-11-13 The Creepy Uber Driver Horror Short Animated https://www.youtube.com/v/7i8RHHS2mYo?version=3
OLD 2023-11-12 Hard To Sleep Horror Short Animated https://www.youtube.com/v/xrO12laB9W8?version=3
OLD 2023-11-12 Relaxing In The Garden Horror Short Animated https://www.youtube.com/v/TrnuuTZ4ax0?version=3
OLD 2023-11-12 6 Horror Stories Animated https://www.youtube.com/v/GS4KmNLMkJg?version=3
OLD 2023-11-09 4 Horror Shorts Animated https://www.youtube.com/v/fdGCIEpdfFI?version=3
OLD 2023-11-09 The Closet Horror Short Animated https://www.youtube.com/v/u0x_MGuLOiU?version=3
OLD 2023-11-08 The Photo Horror Short Animated https://www.youtube.com/v/9M7hEDNb42E?version=3
OLD 2023-11-08 The Commune Horror Story Animated https://www.youtube.com/v/yWX3bIiO6i0?version=3

6
rss/rename_all_NEW_to_OLD Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
for file in ./feeds/*
do
sed -i 's/NEW /OLD /g' "$file"
done

BIN
shells/add_to_channels_rss Executable file

Binary file not shown.

View File

@ -0,0 +1,128 @@
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char *string;
size_t size;
} Response;
size_t write_chunk(void *data, size_t size, size_t nmemb, void *userdata){
size_t real_size = size * nmemb;
Response *response = (Response *) userdata;
char *ptr = realloc(response->string, response->size + real_size + 1);
if (ptr == NULL){
return CURL_WRITEFUNC_ERROR;
}
response->string = ptr;
memcpy(&(response->string[response->size]), data, real_size);
response->size += real_size;
response->string[response->size] = 0; // '\0';
return real_size;
}
int main(int argc, char** argv){
if(argc != 2){fprintf(stderr, "how to use: (this program) (link to the youtube channel)\n");exit(1);}
CURL *curl;
CURLcode result;
curl = curl_easy_init();
if(curl == NULL){fprintf(stderr, "HTTP request failed\n");return -1;}
Response response;
response.string = malloc(1);
response.size = 0;
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_chunk);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &response);
result = curl_easy_perform(curl);
if(result != CURLE_OK){fprintf(stderr, "Error: %s\n", curl_easy_strerror(result));return -1;}
if(strlen(response.string) < 5000){fprintf(stderr, "That YouTube Channel does not exist\n");exit(1);}
char channel_name[40];
int start_of_rss_link = 0;
int end_of_rss_link = 0;
for(int i = strlen(response.string); i != 0; i--){
if(response.string[i] == 34){
if(response.string[i-1] == 61){
if(response.string[i-2] == 116){
if(response.string[i-3] == 110){
if(response.string[i-4] == 101){
if(response.string[i-5] == 116){
if(response.string[i-6] == 110){
if(response.string[i-7] == 111){
if(response.string[i-8] == 99){
if(response.string[i-9] == 32){
if(response.string[i-10] == 34){
if(response.string[i-11] == 101){
if(response.string[i-12] == 109){
if(response.string[i-13] == 97){
if(response.string[i-14] == 110){
if(response.string[i-15] == 34){
int j = 1;
while(response.string[i+j] != 34){
//TODO ??? todo what? everything is done right?
channel_name[j-1] = response.string[i+j];
j++;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
for(int i = strlen(response.string); i != 0; i--){
if(response.string[i] == 102){
if(response.string[i+1] == 101){
if(response.string[i+2] == 101){
if(response.string[i+3] == 100){
if(response.string[i+4] == 115){
if(response.string[i+5] == 47){
start_of_rss_link = i-24;
end_of_rss_link = i+51;
char link[80];
int k = 0;
for(int j = start_of_rss_link; j <= end_of_rss_link; j++){
link[k] = response.string[j];
k++;
if(j == end_of_rss_link){
link[k] = '\0';
}
}
FILE *f = fopen ("./rss/channels.txt", "a");
fprintf(f, "%s\n", link);
fclose(f);
return 0;
}
}
}
}
}
}
}
curl_easy_cleanup(curl);
free(response.string);
return 0;
}

9
shells/change_theme Executable file
View File

@ -0,0 +1,9 @@
#!/bin/sh
if [[ "$1" == *"MOON"* ]]
then
echo "theme = MOON" > ./base_includes/settings.cfg
elif [[ "$1" == *"CNUK"* ]]
then
echo "theme = CNUK" > ./base_includes/settings.cfg
fi

3
shells/comp Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
gcc -std=c99 -D_DEFAULT_SOURCE -Wall -Wextra -Wpedantic -pedantic -g -o CNUKTUBE $1 -lcurl -lglfw -lGL -lm -lGLU -lGLEW -I /usr/include -L /usr/lib

7
shells/download_from_bookmarks Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./bookmarks/"$escaped_1")
yt-dlp -P ./downloads $url

7
shells/download_from_history Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./history/"$escaped_1")
yt-dlp -P ./downloads $url

View File

@ -0,0 +1,15 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
location="./rss/feeds/$escaped_1"
url=$(awk -F ' ' 'NR=='$2'{print $NF}' "$location")
original=$(awk NR==$2 "$location" | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
if [[ $original == *"NEW "* ]]; then
updated=$(sed 's/NEW/OLD/g' <<< "$original")
sed -i "s;$original;$updated;g" "$location"
fi
yt-dlp -P ./downloads $url

View File

@ -0,0 +1,29 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./bookmarks/"$escaped_1")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --skip-download --write-comments -o ./temp_info/"$title".comments $url
file_name=$(ls ./temp_info/*"$title"*json)
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./temp_info/$title.info"
grep "fulltitle:" "$file_name" | sed 's/fulltitle: //g' > "$file_name_new"
grep "uploader:" "$file_name" | sed 's/uploader: //g' >> "$file_name_new"
grep "channel_follower_count:" "$file_name" | sed 's/channel_follower_count: //g' >> "$file_name_new"
grep "uploader_url:" "$file_name" | sed 's/uploader_url: //g' >> "$file_name_new"
grep "upload_date:" "$file_name" | sed 's/upload_date: //g' >> "$file_name_new"
grep "duration_string:" "$file_name" | sed 's/duration_string: //g' >> "$file_name_new"
grep "is_live:" "$file_name" | sed 's/_/ /g' >> "$file_name_new"
grep "resolution:" "$file_name" | sed 's/resolution: //g' >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

View File

@ -0,0 +1,33 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
#??? this aparently doesnt need to escape '/'
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./history/"$escaped_1")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --skip-download --write-info-json -o ./temp_info/"$title" $url
yt-dlp --skip-download --write-thumbnail -o ./temp_info/"$title" $url
yt-dlp --skip-download --write-description -o ./temp_info/"$title" $url
file_name=$(ls ./temp_info/*"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name")
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./temp_info/$title.info"
grep "fulltitle:" "$file_name" | sed 's/fulltitle: //g' > "$file_name_new"
grep "uploader:" "$file_name" | sed 's/uploader: //g' >> "$file_name_new"
grep "channel_follower_count:" "$file_name" | sed 's/channel_follower_count: //g' >> "$file_name_new"
grep "uploader_url:" "$file_name" | sed 's/uploader_url: //g' >> "$file_name_new"
grep "upload_date:" "$file_name" | sed 's/upload_date: //g' >> "$file_name_new"
grep "duration_string:" "$file_name" | sed 's/duration_string: //g' >> "$file_name_new"
grep "is_live:" "$file_name" | sed 's/_/ /g' >> "$file_name_new"
grep "resolution:" "$file_name" | sed 's/resolution: //g' >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

View File

@ -0,0 +1,34 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
location="./rss/feeds/$escaped_1"
url=$(awk -F ' ' 'NR=='$2'{print $NF}' "$location")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --skip-download --write-info-json -o ./temp_info/"$title" $url
yt-dlp --skip-download --write-thumbnail -o ./temp_info/"$title" $url
yt-dlp --skip-download --write-description -o ./temp_info/"$title" $url
file_name=$(ls ./temp_info/*"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name")
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./temp_info/$title.info"
grep "fulltitle:" "$file_name" | sed 's/fulltitle: //g' > "$file_name_new"
grep "uploader:" "$file_name" | sed 's/uploader: //g' >> "$file_name_new"
grep "channel_follower_count:" "$file_name" | sed 's/channel_follower_count: //g' >> "$file_name_new"
grep "uploader_url:" "$file_name" | sed 's/uploader_url: //g' >> "$file_name_new"
grep "upload_date:" "$file_name" | sed 's/upload_date: //g' >> "$file_name_new"
grep "duration_string:" "$file_name" | sed 's/duration_string: //g' >> "$file_name_new"
grep "is_live:" "$file_name" | sed 's/_/ /g' >> "$file_name_new"
grep "resolution:" "$file_name" | sed 's/resolution: //g' >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

32
shells/get_info_from_bookmarks Executable file
View File

@ -0,0 +1,32 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./bookmarks/"$escaped_1")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --quiet --skip-download --write-info-json -o ./info/"$title" $url
yt-dlp --quiet --skip-download --write-thumbnail -o ./info/thumbnail $url
yt-dlp --quiet --skip-download --write-description -o ./info/description $url
file_name=$(ls ./info/*"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name")
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./info/info.info"
grep "fulltitle:" "$file_name" > "$file_name_new"
grep "uploader:" "$file_name" >> "$file_name_new"
grep "channel_follower_count:" "$file_name" >> "$file_name_new"
grep "uploader_url:" "$file_name" >> "$file_name_new"
grep "upload_date:" "$file_name" >> "$file_name_new"
grep "duration_string:" "$file_name" >> "$file_name_new"
grep "is_live:" "$file_name" >> "$file_name_new"
grep "resolution:" "$file_name" >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

33
shells/get_info_from_history Executable file
View File

@ -0,0 +1,33 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
#??? this aparently doesnt need to escape '/'
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./history/"$escaped_1")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --quiet --skip-download --write-info-json -o ./info/"$title" $url
yt-dlp --quiet --skip-download --write-thumbnail -o ./info/thumbnail $url
yt-dlp --quiet --skip-download --write-description -o ./info/description $url
file_name=$(ls ./info/*"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name")
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./info/info.info"
grep "fulltitle:" "$file_name" > "$file_name_new"
grep "uploader:" "$file_name" >> "$file_name_new"
grep "channel_follower_count:" "$file_name" >> "$file_name_new"
grep "uploader_url:" "$file_name" >> "$file_name_new"
grep "upload_date:" "$file_name" >> "$file_name_new"
grep "duration_string:" "$file_name" >> "$file_name_new"
grep "is_live:" "$file_name" >> "$file_name_new"
grep "resolution:" "$file_name" >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

View File

@ -0,0 +1,34 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
location="./rss/feeds/$escaped_1"
url=$(awk -F ' ' 'NR=='$2'{print $NF}' "$location")
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --quiet --skip-download --write-info-json -o ./info/"$title" $url
yt-dlp --quiet --skip-download --write-thumbnail -o ./info/thumbnail $url
yt-dlp --quiet --skip-download --write-description -o ./info/description $url
file_name=$(ls ./info/*"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name")
echo "$new_text" > "$file_name"
sed -i 's/\"//g' "$file_name"
sed -i "s/,/\n/g" "$file_name"
file_name_new="./info/info.info"
grep "fulltitle:" "$file_name" > "$file_name_new"
grep "uploader:" "$file_name" >> "$file_name_new"
grep "channel_follower_count:" "$file_name" >> "$file_name_new"
grep "uploader_url:" "$file_name" >> "$file_name_new"
grep "upload_date:" "$file_name" >> "$file_name_new"
grep "duration_string:" "$file_name" >> "$file_name_new"
grep "is_live:" "$file_name" >> "$file_name_new"
grep "resolution:" "$file_name" >> "$file_name_new"
echo "$url" >> "$file_name_new"
rm "$file_name"

17
shells/mark_as_old Executable file
View File

@ -0,0 +1,17 @@
#!/bin/sh
# usage ./play.sh (feeds_plain_text/(file name)) (number_of_line)
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
location="./rss/feeds/$1"
original=$(awk NR==$2 "$location" | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g;')
updated=$(sed 's/NEW/OLD/g; s/&quot//g' <<< $original)
sed -i "s;$original;$updated;g" "$location"
long_lines=$(awk 'length($0)>220' "$location")
sed -i "s;$long_lines;;g" "$location"
#sed -i '/^[[:space:]]*$/d' "$location"

7
shells/play_from_bookmarks Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./bookmarks/"$escaped_1")
mpv --fullscreen --volume=70 --no-config --script-opts=ytdl_hook-try_ytdl_first=yes $url

7
shells/play_from_history Executable file
View File

@ -0,0 +1,7 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
url=$(tail -n 1 ./history/"$escaped_1")
mpv --fullscreen --volume=70 --no-config --script-opts=ytdl_hook-try_ytdl_first=yes $url

6
shells/play_from_search Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
cleared_1=$(echo "$1" | sed 's/\ .*//')
echo $cleared_1
mpv --fullscreen --volume=70 --no-config --script-opts=ytdl_hook-try_ytdl_first=yes https://www.youtube.com/watch?v="$cleared_1"

16
shells/play_from_subscriptions Executable file
View File

@ -0,0 +1,16 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
location="./rss/feeds/$escaped_1"
url=$(awk -F ' ' 'NR=='$2'{print $NF}' "$location")
original=$(awk NR==$2 "$location" | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
if [[ $original == *"NEW "* ]]; then
updated=$(sed 's/NEW/OLD/g' <<< "$original")
sed -i "s;$original;$updated;" "$location"
fi
./shells/yt_dlp_data/add_to_history $url
mpv --fullscreen --volume=70 --no-config --script-opts=ytdl_hook-try_ytdl_first=yes $url

31
shells/remove_from_bookmarks Executable file
View File

@ -0,0 +1,31 @@
#!/bin/sh
escaped_1_temp=$(tr -dc '[:print:]\n' <<< "$1")
escaped_1=$(sed 's/;//g; s/|//g; s/\[//g; s/\]//g' <<< "$escaped_1_temp")
rm ./bookmarks/"$escaped_1"
file_count=$(cat ./misc/bookmarks_index.txt)
file_count_minus_one=$((file_count-1))
echo $file_count_minus_one > ./misc/bookmarks_index.txt
number_removed=$( echo "$escaped_1" | awk -F ' ' '{print $1}')
higher_number=$(($number_removed+1))
higher_number_lowered=$(($higher_number-1))
while true;
do
if [ ! -f ./bookmarks/"$higher_number"* ];
then
break
fi
higher_title=$( ls ./bookmarks/"$higher_number "*)
#echo $higher_title
higher_title_lowered=$(echo $higher_title | sed "s/[0-9]\ /$higher_number_lowered\ \ \ \ /")
#echo $higher_title_lowered
mv "$higher_title" "$higher_title_lowered"
((higher_number++))
((higher_number_lowered++))
done

View File

@ -0,0 +1,36 @@
#!/bin/sh
escaped_1=$(echo "$1" | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
location="./rss/feeds/$escaped_1"
url=$(awk -F ' ' 'NR=='$2'{print $NF}' "$location")
#TODO why one earth does it not recognise "line"
case "$url" in
*"line"*)
echo "Can not add playlists to bookmarks"
;;
*)
title=$(./shells/yt_dlp_data/curl_get_fulltitle $url | tr -dc '[:print:]\n' | sed 's/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g')
yt-dlp --quiet --skip-download --write-info-json -o "$title" $url
file_name_original=$(ls *"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name_original")
echo $new_text>"$file_name_original"
sed -i 's/\"//g' "$file_name_original"
sed -i "s/,/\n/g" "$file_name_original"
echo "$url" >> "$file_name_original"
file_count=$(cat ./misc/bookmarks_index.txt)
file_count_plus_one=$((file_count+1))
channel_name=$(grep 'uploader:' "$file_name_original" | sed 's/uploader: //' | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
mv "$file_name_original" ./bookmarks/$file_count_plus_one" $title $channel_name"
echo $file_count_plus_one > ./misc/bookmarks_index.txt
;;
esac

View File

@ -0,0 +1,34 @@
#!/bin/sh
# TODO why one earth does it not recognise "line"
case "$1" in
*"line"*)
echo "Can not add playlists to history"
;;
*)
title=$(./shells/yt_dlp_data/curl_get_fulltitle $1 | tr -dc '[:print:]' | sed "s/'//g" | sed 's/\\//g; s/\"//g; s/\///g; s/;//g; s/|//g; s/\[//g; s/\]//g;')
yt-dlp --quiet --skip-download --write-info-json -o "$title" $1
file_name_original=$(ls *"$title"*json)
new_text=$(awk '{print substr($0,length($0)-1200,1200)}' "$file_name_original")
echo $new_text>"$file_name_original"
sed -i 's/\"//g' "$file_name_original"
sed -i "s/,/\n/g" "$file_name_original"
echo "$1" >> "$file_name_original"
file_count=$(cat ./misc/history_index.txt)
file_count_plus_one=$((file_count+1))
current_time=$(date +%d.%m.%Y\ %R)
channel_name=$(grep 'uploader:' "$file_name_original" | sed 's/uploader: //' | tr -dc '[:print:]\n' | sed 's/;//g; s/|//g; s/\[//g; s/\]//g')
mv "$file_name_original" ./history/$file_count_plus_one" $current_time $title $channel_name"
echo $file_count_plus_one > ./misc/history_index.txt
;;
esac

Binary file not shown.

View File

@ -0,0 +1,103 @@
// if its slow its because of internet
#include <stdio.h>
#include <curl/curl.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char *string;
size_t size;
} Response;
size_t write_chunk(void *data, size_t size, size_t nmemb, void *userdata);
int main(int argc, char** argv){
if(argc != 2){fprintf(stderr, "how to use: ./curl_get_youtube_rss_link (the youtube video link(\n");exit(1);}
CURL *curl;
CURLcode result;
curl = curl_easy_init();
if(curl == NULL){fprintf(stderr, "HTTP request failed\n");return -1;}
Response response;
response.string = malloc(1);
response.size = 0;
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_chunk);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &response);
result = curl_easy_perform(curl);
if(result != CURLE_OK){fprintf(stderr, "Error: %s\n", curl_easy_strerror(result));return -1;}
int start_of_title = 0;
int end_of_title = 0;
for(int i = 60000; i < strlen(response.string); i++){ // aparently the first 60000 are a waste
if(response.string[i] == 116){ //t
if(response.string[i+1] == 105){//i
if(response.string[i+2] == 116){//t
if(response.string[i+3] == 108){//l
if(response.string[i+4] == 101){//e
if(response.string[i+5] == 34){//"
if(response.string[i+6] == 58){//:
if(response.string[i+7] == 123){//{
if(response.string[i+8] == 34){//"
if(response.string[i+9] == 115){//s
if(response.string[i+10] == 105){//i
if(response.string[i+11] == 109){//m
if(response.string[i+12] == 112){//p
if(response.string[i+13] == 108){//l
start_of_title = i+22;
end_of_title = i+22+100;
char title[100];
int k = 0;
for(int j = start_of_title; j <= end_of_title; j++){
title[k] = response.string[j];
k++;
if(j == end_of_title){
title[k] = '\0';
}
}
for(int l = strlen(title); l != 0; l--){
if(title[l] == 34 && title[l+1] == 125)
title[l] = '\0';
}
printf("%s\n", title);
curl_easy_cleanup(curl);
free(response.string);
return 0;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return 0;
}
size_t write_chunk(void *data, size_t size, size_t nmemb, void *userdata){
size_t real_size = size * nmemb;
Response *response = (Response *) userdata;
char *ptr = realloc(response->string, response->size + real_size + 1);
if (ptr == NULL){
return CURL_WRITEFUNC_ERROR;
}
response->string = ptr;
memcpy(&(response->string[response->size]), data, real_size);
response->size += real_size;
response->string[response->size] = 0; // '\0';
return real_size;
}

View File

@ -0,0 +1,5 @@
#!/bin/sh
yt-dlp --skip-download --write-description $1
# this will make a new file called (title of the vid) and inside will be the description with new lines

5
shells/yt_dlp_data/get_json.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
yt-dlp --skip-download --write-info-json $1
# this will make a new file called (title of the vid) and inside will be the description with new lines

View File

@ -0,0 +1,3 @@
#!/bin/sh
yt-dlp --skip-download --write-thumbnail $1