Skip to content

Instantly share code, notes, and snippets.

View cdarlint's full-sized avatar

cdarlint

  • mathworks.com
  • Beijing, China
  • 16:25 (UTC +08:00)
View GitHub Profile
import sys, os
import shutil
from Crypto.Cipher import AES
def parse_m3u8_file(m3u8_file):
with open(m3u8_file, 'rb') as fp:
current_line = fp.readline().rstrip('\n')
while (current_line):
if current_line.startswith('#EXT-X-KEY'):
@cdarlint
cdarlint / 0_reuse_code.js
Created February 21, 2017 08:42
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
@cdarlint
cdarlint / decrypt.rb
Created April 27, 2017 04:12 — forked from refractalize/decrypt.rb
Decrypt HTTP Live Streaming TS files
def read_m3u8(m3u8)
File.open(m3u8, 'r') do |file|
keyfile = nil
iv = 0
file.each_line do |line|
line.chomp!
if line =~ /^#EXT-X-KEY:METHOD=AES-128,URI="(.*?)"(,IV=0x(.*))?/
keyfile = $1
if $2
iv = $3
@cdarlint
cdarlint / HLS_dvr.sh
Created April 27, 2017 04:24 — forked from John07/HLS_dvr.sh
A small script to make recording http live streams (HLS, those streams that work on iOS devices) nicer on a Mac. Script records the stream for a defined period of time and sends the user notifications if anything goes wrong and once it's done.
# required: ffmpeg (e.g. from homebrew), terminal-notifier from https://github.com/alloy/terminal-notifier
# you can schedule this with launchd to run e.g. weekly
# Specify in seconds how long the script should record (default here is 1 hour).
seconds=3600
# Date format for the recording file name
DATE=`date "+%d-%m-%y_%H-%M"`
# start ffmpeg recording
@cdarlint
cdarlint / combinations.py
Created September 29, 2018 08:59
combination of list a, for each n in b, get $C_a^n$
import numpy as np
def combinations(arr,
c,
cut=[],
results=[]):
if 0 in c:
results+=[cut]
if np.all(c<=0):
return results
for i in range(len(arr)):
@cdarlint
cdarlint / product.py
Created September 29, 2018 09:08
list all cross product of list of list
def product(b):
result=[]
for i in b[0]:
if len(b)>1:
xx=product(b[1:])
result+=[[i]+v for v in xx]
else:
result+=[[i]]
return result
p=product([[1,2,3],[7,8],[9,4],[5,6]])
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class arraycalc {
public static void main(String[]args){
List<Integer> arr = Arrays.asList(1,2,3,4,5);
List<Integer> c = Arrays.asList(4,5);
List<List<Integer>> result = arraycalc.combinations(arr,c,new ArrayList<Integer>(),new ArrayList<List<Integer>>());
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class arraycalc {
public static void main(String[] args) {
List<List<Object>> n = new ArrayList();
n.add(Arrays.asList("A", "B", "C"));