Skip to content

Instantly share code, notes, and snippets.

View jamsea's full-sized avatar

James Hush jamsea

View GitHub Profile
@jamsea
jamsea / gist:61a9f783b2db8d93e2eccc23cdaaadc5
Created July 17, 2025 09:02
Pipecat recording meeting token
token_params = DailyMeetingTokenParams(
properties=DailyMeetingTokenProperties(
room_name="YOUR_ROOM_NAME",
enable_recording="cloud",
start_cloud_recording=True
)
)
token = await helper.get_token(
room_url="https://your-domain.daily.co/YOUR_ROOM_NAME",
params=token_params
@jamsea
jamsea / custom_llm_bot.py
Created May 8, 2025 02:31
Custom LLM with Pipecat
class CustomLLMService(AIService):
def __init__(self, backend: BackendBase):
super().__init__()
self.backend = backend
def create_context_aggregator(
self,
context: OpenAILLMContext,
*,
user_params: LLMUserAggregatorParams = LLMUserAggregatorParams(),
@jamsea
jamsea / daily_python_leave_call_one_participant.py
Created October 14, 2024 07:41
Leave a Daily call in daily-python when only the bot participant remains
import os
import threading
import time
import requests
from daily import CallClient, Daily, EventHandler
# Get DAILY_API_KEY from the environment
DAILY_API_KEY = os.getenv("DAILY_API_KEY")
if not DAILY_API_KEY:
@jamsea
jamsea / vcs_test.js
Last active April 9, 2024 06:40
VCS test
import * as React from "react";
import { Box, Video } from "#vcs-react/components";
import { useGrid } from "#vcs-react/hooks";
import * as layoutFuncs from "../layouts.js";
import VideoSingle from "./VideoSingle.js";
import decorateVideoSplitItem from "./overrides/decorateVideoSplitItem.js";
import { PositionCorner } from "../constants.js";
import { debug } from "#vcs-stdlib/components";
import { RoomContext } from "#vcs-react/contexts";
@jamsea
jamsea / VideoSplit_singlepip.js
Created January 26, 2024 06:21
VCS Video Split Single Demo
import * as React from 'react';
import { Box, Video } from '#vcs-react/components';
import { useGrid } from '#vcs-react/hooks';
import * as layoutFuncs from '../layouts.js';
import VideoSingle from './VideoSingle.js';
import decorateVideoSplitItem from './overrides/decorateVideoSplitItem.js';
import { PositionCorner } from '../constants.js';
export default function AugmentedSplit(props) {
const { participantDescs = [] } = props;
@jamsea
jamsea / VideoSplit_multipip.js
Created January 26, 2024 05:35
Daily VCS Custom Layout Example
import * as React from 'react';
import { Box, Video } from '#vcs-react/components';
import { useGrid } from '#vcs-react/hooks';
import * as layoutFuncs from '../layouts.js';
import VideoSingle from './VideoSingle.js';
import decorateVideoSplitItem from './overrides/decorateVideoSplitItem.js';
import { PositionCorner } from '../constants.js';
export default function AugmentedSplit(props) {
const { participantDescs = [] } = props;
@jamsea
jamsea / KnackNotes.md
Created December 25, 2020 07:51
Knack notes

Test

@jamsea
jamsea / SynchShopify.sh
Created December 18, 2018 06:39
Auto Sync Shopify
#!/bin/bash
# Get Theme (install themekit here, probably a good idea to copy/paste these commands to the top https://shopify.github.io/themekit/)
theme get --password=[your-api-password] --store=[your-store.myshopify.com] --themeid=[your-theme-id]
unzip ThemeName.zip
cp -R ThemeName/ WhereYourThemeIs/
cd WhereYourThemeIs/ || exit 0
git checkout -b themeChanges
git push origin themeChanges
@jamsea
jamsea / cloudSettings
Last active September 15, 2021 15:33
Visual Studio Code Settings Sync Gist
{"lastUpload":"2021-09-15T15:33:45.998Z","extensionVersion":"v3.4.3"}