"I don't feel dumb when I'm naked! I just don't want to be naked in front of other people; If I'm alone in my own place I will wear as little clothing as I possibly can"Fujikura Uruka

Pippakistan's Psych Ward

Salado

Well-known member
Joined:  May 26, 2023

Kuri Rinji

Marlon Reis
Joined:  Aug 27, 2023
I just realized Godwinson has been live for over 40 minutes lol woops. I'm not watching this shit over Proctor, I'll wait for summaries and you guys to laugh at him.
Rumble or he himself deleted it. Anyone got an archive?
 

thhrang

Punished Autism Extraordinaire
Early Adopter
Ward Security
♥Realticule's Husbando♥
Joined:  Sep 13, 2022

Realticule

Prime Indigenous Pipkin Pippa Appreciator.
Early Adopter
I CAN STILL FIX HER
✡︎ God's Chosen Schizo ✡︎
Joined:  Sep 11, 2022
Godwinson went at her, and now her throat hurts.

@Realticule status?
There is no low a Br*t will not stoop to in order to filate another disgusting crackhead of a Br*t. You are to Godwinson as Elaine is to him, she aims to spite Josh and you aim to spite me, in the process you hurt the best girl Pippa.
 

Hff201

Pippa Fan, Failed Normalfriend
Early Adopter
Joined:  Sep 13, 2022
There is no low a Br*t will not stoop to in order to filate another disgusting crackhead of a Br*t. You are to Godwinson as Elaine is to him, she aims to spite Josh and you aim to spite me, in the process you hurt the best girl Pippa.
You seem to take far more offence to this than Pippa ever would.
 

Realticule

Prime Indigenous Pipkin Pippa Appreciator.
Early Adopter
I CAN STILL FIX HER
✡︎ God's Chosen Schizo ✡︎
Joined:  Sep 11, 2022
You seem to take far more offence to this than Pippa ever would.
I must secure the existence and the future of the meat Pippa.
 

Mumberthrax

War Cleric of TVA
Early Adopter
Joined:  Sep 13, 2022
Does anyone have a summary of Pippa's offkai stream? I don't have the time to listen to it, but any highlights or principle comments would be very useful to have for my stream tonight.
stream wasn't that long, you could probably watch the important bits in under 30 mins. just skip to when you see kirsche and you'll know you found the sweet spot.
I archived the chat log, it may help get a deeper gist of things without putting up with yt's broke ass lagbox. No timestamps but i can pull it again if you want them. I grabbed it because i was going to make a word cloud art for it, just out of curiosity. i'll post it here when i do, you're welcome to use that as well if it's interesting.
Oh yeah, I also filtered out all the emojis, that's why you'll see so many usernames and blank messages.
For future reference in case you feel like handing your credit card info to some random company for a free trial, I was recently told about this site which summarizes videos. https://eightify.app/
example: https://eightify.app/media/how-to-import-vroid-models-into-vrchat-and-fix-leg-issues
i assume it just pulls out the captions and runs them through chatGPT so not sure if it would work for livestreams or not, but might be something to keep in your back pocket for archival uses in other scenarios.
edit: actually looks like there are captions for the pippa stream. neat.
edit2: seems ytdlp can download subtitles. double neat.
Code:
yt-dlp --skip-download --write-auto-subs  --sub-langs en-orig https://www.youtube.com/watch?v=fsVRhd_QxOU

edit3: i told chatgpt to clean up the transcript ytdlp makes. it kinda did. then i messed with the code and now it produces a transcript without timestamps and one with a timestamp for each line.
Code:
--! file: cleanytsubs5.lua

-- Function to clean the VTT content
function clean_vtt_content(content)
    local unique_lines = {}
    local cleaned_lines = {}

    for line in content:gmatch("[^\r\n]+") do
        -- Retain only the first timestamp
        local timestamp = line:match("^(%d%d:%d%d:%d%d%.%d%d%d)")
        if timestamp then
            -- If the line contains a timestamp, add the timestamp to cleaned_lines
            if not unique_lines[timestamp] then
                unique_lines[timestamp] = true
                table.insert(cleaned_lines, timestamp)
            end
        else
            -- Remove word-level timestamps and any trailing HTML-like tags
            line = line:gsub("<%d%d:%d%d:%d%d%.%d%d%d><c>", "")
            line = line:gsub("<[^>]+>", "")
            line = line:match("^%s*(.-)%s*$") -- Trim leading and trailing whitespace

            -- Skip if the cleaned line is empty or a duplicate
            if line ~= "" and not unique_lines[line] then
                unique_lines[line] = true
                table.insert(cleaned_lines, line)
            end
        end
    end

    return cleaned_lines
end

function is_timestamp(line)
  if line == nil then return false end
  local pattern = "^(%d%d):(%d%d):(%d%d).(%d%d%d)$"
  local match = string.match(line, pattern)
  return match ~= nil
end


local function cleantimestamps2 (cleaned_lines)
  local length = #cleaned_lines
  for i=length, 1, -1 do
    if is_timestamp(cleaned_lines[i]) then
      table.remove(cleaned_lines, i)
    end
  end
  return cleaned_lines
end


local function cleantimestamps3 (cleaned_lines)
  local length = #cleaned_lines
  for i=length, 1, -1 do
    if is_timestamp(cleaned_lines[i]) then
      if is_timestamp(cleaned_lines[i+1]) then
        table.remove(cleaned_lines, i)
      end
    end
  end
  return cleaned_lines
end

-- Read the content of the VTT file
local input_file_path = "transcript.vtt"
local output_file_path = "cleaned_transcript_timestamps.txt"
local output_file2_path = "cleaned_transcript.txt"
local file = io.open(input_file_path, "r")
local content = file:read("*all")
file:close()

-- Clean the content
local cleaned_content = clean_vtt_content(content)
cleaned_content = cleantimestamps3(cleaned_content)

-- Write the cleaned content to a new file
file = io.open(output_file_path, "w")
for _, line in ipairs(cleaned_content) do
    file:write(line .. "\n")
end
file:close()


cleaned_content = cleantimestamps2(cleaned_content, 2,1)
file = io.open(output_file2_path, "w")
for _, line in ipairs(cleaned_content) do
    file:write(line .. "\n")
end
file:close()
hello everybody hello hopefully you guys
can hear me all right hopefully
hopefully hopefully
hopefully hopefully hopefully hopefully
hopefully I'm
on uh why does the chat keep
disappearing Chad Chad Chad why are you
dis
disappearing
why
why oh dear I change I change like a
little bit I change a little bit bottle
a little bit I know I had to I had to
dig it out I feel bad I feel bad I've
only used it once and Chino worked so
hard on
all Chino worked so hard on all of these
and I just never use mine I'm a
monster like look the chat
setting know why takes so
long appear here
and like it's like not an a like I think
you guys you guys just type too fast I
00:00:08.040
hello everybody hello hopefully you guys
00:00:11.400
can hear me all right hopefully
00:00:14.879
hopefully hopefully
00:00:16.800
hopefully hopefully hopefully hopefully
00:00:20.960
hopefully I'm
00:00:23.240
on uh why does the chat keep
00:00:25.880
disappearing Chad Chad Chad why are you
00:00:29.759
dis
00:00:30.960
disappearing
00:00:32.520
why
00:00:34.440
why oh dear I change I change like a
00:00:38.680
little bit I change a little bit bottle
00:00:42.079
a little bit I know I had to I had to
00:00:43.800
dig it out I feel bad I feel bad I've
00:00:46.280
only used it once and Chino worked so
00:00:48.000
hard on
00:00:48.840
all Chino worked so hard on all of these
00:00:52.039
and I just never use mine I'm a
00:00:57.840
monster like look the chat
00:01:00.840
setting know why takes so
00:01:06.119
long appear here
00:01:08.680
and like it's like not an a like I think
00:01:12.640
you guys you guys just type too fast I
00:01:16.799
think you guys are just too
00:01:19.479
too accidentally there we go you guys
00:01:23.479
are just too fast and then the and then
00:01:25.560
the uh the emotes are not working
00:01:30.880
you know what it's kind of it's kind of
00:01:33.000
distracting I'm just G to take chat off
00:01:35.079
screen G to take chat off screen little

so i already used up my one free per day document analysis thing with chatgpt, but it looks like you could easily upload a video transcript using this and have the ai summarize it. no telling how accurate it would be considering its already slightly janky transcription on youtube's end, and in pippa's case half the time she's reading superchats so it probably would think she's talking to herself and being schizo - but with more clear speakers it could be a pretty easy way to get textual summaries of livestreams that are too long to watch. it might not capture the details or nuances (and definitely not nonverbal tone), but could probably get the main themes of discussion.
I feel like it would be really useful having these transcripts for searching for funny things that you remember happening, or trying to see if some specific phrase came up in a mountain of past streams, without having to intuit which ones it might have been in and skimming through each one listening.
 
Last edited:

Kuri Rinji

Marlon Reis
Joined:  Aug 27, 2023
This is a pretty exploitable comic.

 

RedRage

Well-known member
Joined:  Oct 8, 2022

azlk

curiosity didnt kill the cat but sure gave it PTSD
Joined:  Nov 23, 2023
Is there any indication as to when Fishman is gonna unleash the new Pippa song?
 

DogBone

Well-known member
Joined:  Sep 3, 2023

RestlessRain

Well-known member
Early Adopter
Joined:  Sep 21, 2022
While we're at it here's a stream idea: Find your correct gender from the list of genders in the San Fransisco GIFT program.
Trick question: you pick the one that's most oppressed to get the job you want, and then turn back into your normal self once you have the job. Good luck with that, HR.
 

JMForte

Well-known member
Joined:  Oct 1, 2022

RedRage

Well-known member
Joined:  Oct 8, 2022
She's dumb for doing that but I honestly would do something like that if I was sick as well.
Pretty much, I can't actually be annoyed given she's sick, and actually talking to the girls instead of sulking by herself. Fuck offkai though, I can mean that, this week has fucking sucked. :pippasadl:
 

RestlessRain

Well-known member
Early Adopter
Joined:  Sep 21, 2022
She's dumb for doing that but I honestly would do something like that if I was sick as well.
Chatting with your friends is good for your mental health, I can't fault Pippa for talking for once when it's usually one of her bigger faults.
 

JMForte

Well-known member
Joined:  Oct 1, 2022
Fuck offkai though
I have disliked con season since Phase started doing con stuff in 2022. I remember Pippa doing the 3AM meeting stuff and being exhausted during streams. Really does suck how much cons fuck streams up.
 

RestlessRain

Well-known member
Early Adopter
Joined:  Sep 21, 2022
I have disliked con season since Phase started doing con stuff in 2022. I remember Pippa doing the 3AM meeting stuff and being exhausted during streams. Really does suck how much cons fuck streams up.
I think it's a bit of a mixed bag. It helps foster the community and personal investment many fans have in Phase Connect. The girls seem to enjoy meeting their fans in real-life, seeing the fan merch, meeting other vtubers, performing at the events like live karaoke (when they work), and many of the girls have career goals based on doing live performances and 3D concerts. I don't want to be a completely selfish prick and say, "well, I don't care about any of that, can you get back to streaming, thanks?" But you are right that it fucks up the streaming schedule and sometimes it's really hard to appreciate the convention stuff when you don't get to see most of it.
 

RedRage

Well-known member
Joined:  Oct 8, 2022
I have disliked con season since Phase started doing con stuff in 2022. I remember Pippa doing the 3AM meeting stuff and being exhausted during streams. Really does suck how much cons fuck streams up.
This year was worse than usual cause depending on who you watch, there has been nothing going on the last week now. Some of the girls prepped things like Tenma's clip compilation, so I feel like for the girls going on the trip at least, those that didn't should have made some videos or something to fill the gap that was even worse than usual cause of the lack of streams from things going on at the con.
 

Saturnus

haha it's unou
Joined:  Sep 10, 2022
Pippa reposted

I found the chart we know deep down Pippa wanted to retweet but couldn't from the replies.

tbh though Central and Mountain time are the kings
 

21st Century Pipkin Man

rabbit's foot, vomit drawer
Joined:  Jan 18, 2023
For future reference in case you feel like handing your credit card info to some random company for a free trial, I was recently told about this site which summarizes videos. https://eightify.app/
example: https://eightify.app/media/how-to-import-vroid-models-into-vrchat-and-fix-leg-issues
i assume it just pulls out the captions and runs them through chatGPT so not sure if it would work for livestreams or not, but might be something to keep in your back pocket for archival uses in other scenarios.
edit: actually looks like there are captions for the pippa stream. neat.
edit2: seems ytdlp can download subtitles. double neat.
Code:
yt-dlp --skip-download --write-auto-subs  --sub-langs en-orig https://www.youtube.com/watch?v=fsVRhd_QxOU

edit3: i told chatgpt to clean up the transcript ytdlp makes. it kinda did. then i messed with the code and now it produces a transcript without timestamps and one with a timestamp for each line.
Code:
--! file: cleanytsubs5.lua

-- Function to clean the VTT content
function clean_vtt_content(content)
    local unique_lines = {}
    local cleaned_lines = {}

    for line in content:gmatch("[^\r\n]+") do
        -- Retain only the first timestamp
        local timestamp = line:match("^(%d%d:%d%d:%d%d%.%d%d%d)")
        if timestamp then
            -- If the line contains a timestamp, add the timestamp to cleaned_lines
            if not unique_lines[timestamp] then
                unique_lines[timestamp] = true
                table.insert(cleaned_lines, timestamp)
            end
        else
            -- Remove word-level timestamps and any trailing HTML-like tags
            line = line:gsub("<%d%d:%d%d:%d%d%.%d%d%d><c>", "")
            line = line:gsub("<[^>]+>", "")
            line = line:match("^%s*(.-)%s*$") -- Trim leading and trailing whitespace

            -- Skip if the cleaned line is empty or a duplicate
            if line ~= "" and not unique_lines[line] then
                unique_lines[line] = true
                table.insert(cleaned_lines, line)
            end
        end
    end

    return cleaned_lines
end

function is_timestamp(line)
  if line == nil then return false end
  local pattern = "^(%d%d):(%d%d):(%d%d).(%d%d%d)$"
  local match = string.match(line, pattern)
  return match ~= nil
end


local function cleantimestamps2 (cleaned_lines)
  local length = #cleaned_lines
  for i=length, 1, -1 do
    if is_timestamp(cleaned_lines[i]) then
      table.remove(cleaned_lines, i)
    end
  end
  return cleaned_lines
end


local function cleantimestamps3 (cleaned_lines)
  local length = #cleaned_lines
  for i=length, 1, -1 do
    if is_timestamp(cleaned_lines[i]) then
      if is_timestamp(cleaned_lines[i+1]) then
        table.remove(cleaned_lines, i)
      end
    end
  end
  return cleaned_lines
end

-- Read the content of the VTT file
local input_file_path = "transcript.vtt"
local output_file_path = "cleaned_transcript_timestamps.txt"
local output_file2_path = "cleaned_transcript.txt"
local file = io.open(input_file_path, "r")
local content = file:read("*all")
file:close()

-- Clean the content
local cleaned_content = clean_vtt_content(content)
cleaned_content = cleantimestamps3(cleaned_content)

-- Write the cleaned content to a new file
file = io.open(output_file_path, "w")
for _, line in ipairs(cleaned_content) do
    file:write(line .. "\n")
end
file:close()


cleaned_content = cleantimestamps2(cleaned_content, 2,1)
file = io.open(output_file2_path, "w")
for _, line in ipairs(cleaned_content) do
    file:write(line .. "\n")
end
file:close()
hello everybody hello hopefully you guys
can hear me all right hopefully
hopefully hopefully
hopefully hopefully hopefully hopefully
hopefully I'm
on uh why does the chat keep
disappearing Chad Chad Chad why are you
dis
disappearing
why
why oh dear I change I change like a
little bit I change a little bit bottle
a little bit I know I had to I had to
dig it out I feel bad I feel bad I've
only used it once and Chino worked so
hard on
all Chino worked so hard on all of these
and I just never use mine I'm a
monster like look the chat
setting know why takes so
long appear here
and like it's like not an a like I think
you guys you guys just type too fast I
00:00:08.040
hello everybody hello hopefully you guys
00:00:11.400
can hear me all right hopefully
00:00:14.879
hopefully hopefully
00:00:16.800
hopefully hopefully hopefully hopefully
00:00:20.960
hopefully I'm
00:00:23.240
on uh why does the chat keep
00:00:25.880
disappearing Chad Chad Chad why are you
00:00:29.759
dis
00:00:30.960
disappearing
00:00:32.520
why
00:00:34.440
why oh dear I change I change like a
00:00:38.680
little bit I change a little bit bottle
00:00:42.079
a little bit I know I had to I had to
00:00:43.800
dig it out I feel bad I feel bad I've
00:00:46.280
only used it once and Chino worked so
00:00:48.000
hard on
00:00:48.840
all Chino worked so hard on all of these
00:00:52.039
and I just never use mine I'm a
00:00:57.840
monster like look the chat
00:01:00.840
setting know why takes so
00:01:06.119
long appear here
00:01:08.680
and like it's like not an a like I think
00:01:12.640
you guys you guys just type too fast I
00:01:16.799
think you guys are just too
00:01:19.479
too accidentally there we go you guys
00:01:23.479
are just too fast and then the and then
00:01:25.560
the uh the emotes are not working
00:01:30.880
you know what it's kind of it's kind of
00:01:33.000
distracting I'm just G to take chat off
00:01:35.079
screen G to take chat off screen little

so i already used up my one free per day document analysis thing with chatgpt, but it looks like you could easily upload a video transcript using this and have the ai summarize it. no telling how accurate it would be considering its already slightly janky transcription on youtube's end, and in pippa's case half the time she's reading superchats so it probably would think she's talking to herself and being schizo - but with more clear speakers it could be a pretty easy way to get textual summaries of livestreams that are too long to watch. it might not capture the details or nuances (and definitely not nonverbal tone), but could probably get the main themes of discussion.
I feel like it would be really useful having these transcripts for searching for funny things that you remember happening, or trying to see if some specific phrase came up in a mountain of past streams, without having to intuit which ones it might have been in and skimming through each one listening.
You can use something like Whisper to generate a very high quality transcription locally, then search or process those.
 
Top Bottom