Initial commit
This commit is contained in:
commit
73521d3cd5
BIN
base_includes/heart.png
Normal file
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
BIN
base_includes/next_bro.ttf
Normal file
Binary file not shown.
29512
base_includes/nuklear.h
Normal file
29512
base_includes/nuklear.h
Normal file
File diff suppressed because it is too large
Load Diff
506
base_includes/nuklear_glfw_gl3.h
Normal file
506
base_includes/nuklear_glfw_gl3.h
Normal 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
|
1
base_includes/settings.cfg
Normal file
1
base_includes/settings.cfg
Normal file
@ -0,0 +1 @@
|
||||
theme = CNUK
|
6509
base_includes/stb_image.h
Normal file
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
163
base_includes/style.c
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
46
bookmarks/1 Jack Doherty is Horrible penguinz0
Normal file
46
bookmarks/1 Jack Doherty is Horrible penguinz0
Normal 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
|
44
bookmarks/2 This is Peak Happiness Daily Dose Of Internet
Normal file
44
bookmarks/2 This is Peak Happiness Daily Dose Of Internet
Normal 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
|
46
bookmarks/3 Callum's Moving to the US! GeneralsGentlemen
Normal file
46
bookmarks/3 Callum's Moving to the US! GeneralsGentlemen
Normal 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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
46
history/18 21.12.2023 10:33 He Loves to #Forgive Mufti Menk
Normal file
46
history/18 21.12.2023 10:33 He Loves to #Forgive Mufti Menk
Normal 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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
47
history/6 19.12.2023 12:14 She is Awful penguinz0
Normal file
47
history/6 19.12.2023 12:14 She is Awful penguinz0
Normal 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
|
@ -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
|
@ -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
|
@ -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
3
install.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
./shells/comp ./c.c
|
1
misc/bookmarks_index.txt
Normal file
1
misc/bookmarks_index.txt
Normal file
@ -0,0 +1 @@
|
||||
3
|
1
misc/history_index.txt
Normal file
1
misc/history_index.txt
Normal file
@ -0,0 +1 @@
|
||||
26
|
28
rss/channels.txt
Normal file
28
rss/channels.txt
Normal 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
58
rss/cnuk_rss_update
Executable 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/"//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
|
15
rss/feeds/Bards College Graduate
Normal file
15
rss/feeds/Bards College Graduate
Normal 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 & 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
16
rss/feeds/BugsWriter
Normal 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 & 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% "REAL WORLD" 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 & 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
15
rss/feeds/Chad Chad
Normal 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
|
19
rss/feeds/Daily Dose Of Internet
Normal file
19
rss/feeds/Daily Dose Of Internet
Normal 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
15
rss/feeds/Daniel Stenberg
Normal 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
17
rss/feeds/DistroTube
Normal 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
15
rss/feeds/Eskil Steenberg
Normal 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
|
13
rss/feeds/GeneralsGentlemen
Normal file
13
rss/feeds/GeneralsGentlemen
Normal 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&C: Zero Hour - YurNero(Nuke) vs WbGMp3(Tank) https://www.youtube.com/v/YIdAfAcmIFs?version=3
|
15
rss/feeds/Gregg Ink
Normal file
15
rss/feeds/Gregg Ink
Normal 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 & 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
23
rss/feeds/Grubby
Normal 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 - "That's it, I'm a BARD MAIN now!"- 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 "pretend to be AFK" 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
21
rss/feeds/Jabroni Mike
Normal 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 "Bowel Movement" 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
|
24
rss/feeds/Jabroni Mike Full Streams
Normal file
24
rss/feeds/Jabroni Mike Full Streams
Normal 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 & 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
|
21
rss/feeds/Krishnamurti Foundation Trust
Normal file
21
rss/feeds/Krishnamurti Foundation Trust
Normal 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
16
rss/feeds/Lime Archives
Normal 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
15
rss/feeds/Lindybeige
Normal 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
15
rss/feeds/Martin Thissen
Normal 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 & 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 & 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 & 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 & 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
18
rss/feeds/Mental Outlaw
Normal 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
15
rss/feeds/Mern
Normal 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
20
rss/feeds/Mufti Menk
Normal 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
15
rss/feeds/My Two Pence
Normal 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
28
rss/feeds/Northernlion
Normal 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
15
rss/feeds/PewDiePie
Normal 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
15
rss/feeds/Shoe0nHead
Normal 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 "Egirl" Vs "Alpha Male" 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
15
rss/feeds/SsethTzeentach
Normal 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"11 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
15
rss/feeds/Tsoding Daily
Normal 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
16
rss/feeds/Wilburgur
Normal 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
24
rss/feeds/penguinz0
Normal 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
|
15
rss/feeds/theassassinrapper
Normal file
15
rss/feeds/theassassinrapper
Normal 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
6
rss/rename_all_NEW_to_OLD
Executable 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
BIN
shells/add_to_channels_rss
Executable file
Binary file not shown.
128
shells/add_to_channels_rss.c
Normal file
128
shells/add_to_channels_rss.c
Normal 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
9
shells/change_theme
Executable 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
3
shells/comp
Executable 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
7
shells/download_from_bookmarks
Executable 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
7
shells/download_from_history
Executable 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
|
15
shells/download_from_subscriptions
Executable file
15
shells/download_from_subscriptions
Executable 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
|
29
shells/get_comments_from_bookmarks
Executable file
29
shells/get_comments_from_bookmarks
Executable 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"
|
33
shells/get_comments_from_history
Executable file
33
shells/get_comments_from_history
Executable 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"
|
34
shells/get_comments_from_subscriptions
Executable file
34
shells/get_comments_from_subscriptions
Executable 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
32
shells/get_info_from_bookmarks
Executable 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
33
shells/get_info_from_history
Executable 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"
|
34
shells/get_info_from_subscriptions
Executable file
34
shells/get_info_from_subscriptions
Executable 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
17
shells/mark_as_old
Executable 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/"//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
7
shells/play_from_bookmarks
Executable 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
7
shells/play_from_history
Executable 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
6
shells/play_from_search
Executable 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
16
shells/play_from_subscriptions
Executable 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
31
shells/remove_from_bookmarks
Executable 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
|
||||
|
||||
|
||||
|
36
shells/yt_dlp_data/add_to_bookmarks_from_subscriptions
Executable file
36
shells/yt_dlp_data/add_to_bookmarks_from_subscriptions
Executable 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
|
34
shells/yt_dlp_data/add_to_history
Executable file
34
shells/yt_dlp_data/add_to_history
Executable 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
|
BIN
shells/yt_dlp_data/curl_get_fulltitle
Executable file
BIN
shells/yt_dlp_data/curl_get_fulltitle
Executable file
Binary file not shown.
103
shells/yt_dlp_data/curl_get_fulltitle.c
Normal file
103
shells/yt_dlp_data/curl_get_fulltitle.c
Normal 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;
|
||||
}
|
5
shells/yt_dlp_data/get_description.sh
Executable file
5
shells/yt_dlp_data/get_description.sh
Executable 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
5
shells/yt_dlp_data/get_json.sh
Executable 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
|
3
shells/yt_dlp_data/get_thumbnail.sh
Executable file
3
shells/yt_dlp_data/get_thumbnail.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/sh
|
||||
|
||||
yt-dlp --skip-download --write-thumbnail $1
|
Loading…
x
Reference in New Issue
Block a user