সংযোগ নির্দেশিকা · API
আপডেট করা হয়েছে 2026-10-22
ব্যক্তিগত কী দিয়ে HTTPS-এ টুল ডাকুন। MP3 থেকে কণ্ঠ আলাদা করার উদাহরণ ক্রমানুসারে চালান। টুল বদলানোর আগে প্যারামিটার ও সীমা দেখুন।
Bash, curl 7.76+ ও jq লাগে। একই টার্মিনালে চালান।
01প্রস্তুতি ও পরিচয় যাচাই
পড়া ও চালানো কী তৈরি করে Authorization: Bearer পাঠান। লগইন Cookie, CSRF বা ব্রাউজার সেশন নবায়ন লাগে না।
ফাঁকা তালিকায় সব টুল ও IP অনুমোদিত; অ্যাকাউন্টের নীতি প্রযোজ্য থাকে। সীমা UTC অনুযায়ী। স্থানান্তর বন্ধ হলেও বরাদ্দ ব্যবহৃত থাকে। নতুন কী আগের অনুমতি ও মেয়াদ পাবে। সর্বোচ্চ পাঁচ মিনিটের পরিবর্তনকালে স্ক্রিপ্ট আপডেট করুন।
কী তৈরি →jq() { command jq "$@" | tr -d '\r'; }
read -rsp 'TELKNET_API_KEY: ' TELKNET_API_KEY; printf '\n'
export TELKNET_API_KEY
BASE="${TELKNET_BASE_URL:-https://telknet.cc}"
TOOL="${TELKNET_TOOL:-music-vocal-split}"
FILE="${TELKNET_FILE:-sample.mp3}"
curl --connect-timeout 10 --max-time 60 --fail-with-body "$BASE/api/v1/credits/balance" \
-H "Authorization: Bearer $TELKNET_API_KEY"02ফাইল আপলোড
স্বাক্ষরিত URL নিয়ে মূল ফাইল PUT করুন। প্রকৃত বাইট সংখ্যা ও একই Content-Type ব্যবহার করুন।
curl --connect-timeout 10 --max-time 60 --fail-with-body "$BASE/api/v1/tools/$TOOL/upload" \
-H "Authorization: Bearer $TELKNET_API_KEY" \
-H 'Content-Type: application/json' \
-d "$(jq -n --arg filename "$(basename "$FILE")" \
--argjson size "$(wc -c < "$FILE")" \
'{filename:$filename,content_type:"audio/mpeg",file_size:$size}')" \
-o upload.json || { cat upload.json >&2; exit 1; }
curl --connect-timeout 10 --max-time 1800 --fail-with-body --request PUT \
-H 'Content-Type: audio/mpeg' --upload-file "$FILE" \
"$(jq -r '.data.upload_url' upload.json)"URL সাধারণত ১৫ মিনিট থাকে। PUT-এ API কী পাঠাবেন না। উদাহরণে একবার PUT; multipart_supported=true হলে parts পাঠিয়ে upload/multipart/complete বা ব্যর্থ হলে abort ডাকুন।
03মূল্য নিশ্চিত ও জমা
টুল বা মডেলের মূল দাম নিয়ে অপরিবর্তিত pricing-এ পাঠিয়ে task_id রাখুন। সংখ্যা ও পূর্বপ্রক্রিয়াকরণে টুলের নিয়ম প্রযোজ্য; RVC প্রশিক্ষণে আগে বিশ্লেষণ ও প্রশিক্ষণের মূল্য লাগে।
printf '{}' > params.json
curl --connect-timeout 10 --max-time 60 --fail-with-body "$BASE/api/v1/tools/$TOOL/quote" \
-H "Authorization: Bearer $TELKNET_API_KEY" \
-H 'Content-Type: application/json' \
-d "$(jq -n --slurpfile params params.json '{params:$params[0]}')" \
-o quote.json || { cat quote.json >&2; exit 1; }
jq -n --arg tool "$TOOL" --arg key "$(jq -r '.data.s3_key' upload.json)" \
--slurpfile params params.json --slurpfile quote quote.json \
'{tool_id:$tool,file_key:$key,params:$params[0],pricing:$quote[0].data}' > request.json
REQUEST_KEY="$(date +%s)-$(od -An -N16 -tx1 /dev/urandom | tr -d ' \n')"
printf '%s' "$REQUEST_KEY" > request-key.txt
curl --connect-timeout 10 --max-time 60 --fail-with-body "$BASE/api/v1/tools/$TOOL/tasks" \
-H "Authorization: Bearer $TELKNET_API_KEY" \
-H "Idempotency-Key: $REQUEST_KEY" \
-H 'Content-Type: application/json' --data-binary @request.json -o task.json || { cat task.json >&2; exit 1; }
TASK=$(jq -r '.data.task_id' task.json)মূল্য নেওয়া ক্রেডিট সংরক্ষণ করে না। 409 PRICE_CHANGED হলে নতুন মূল্য দেখে নিশ্চিত করুন। সঙ্গীত তৈরি ও রেফারেন্স কভারে নির্বাচিত মডেলের প্যারামিটার লাগে।
request-key.txt ও request.json রাখুন। একই অ্যাকাউন্ট, Idempotency-Key ও অভিন্ন বিষয়বস্তুতে মূল কাজ ফেরত আসে। নতুন কাজে নতুন কী ব্যবহার করুন; অজানা ফলের অনুরোধ আগে যাচাই করুন।
04অগ্রগতি দেখুন
প্রতি ৩ সেকেন্ডে দেখুন। completed হলে নামান; failed, timeout, cancelled চূড়ান্ত অবস্থা। দুই ঘণ্টা পরে অপেক্ষা থামে, কাজ নয়।
deadline=$((SECONDS + 7200))
while (( SECONDS < deadline )); do
curl --connect-timeout 10 --max-time 60 --fail-with-body "$BASE/api/v1/tasks/$TASK" \
-H "Authorization: Bearer $TELKNET_API_KEY" -o status.json || { cat status.json >&2; exit 1; }
status=$(jq -r '.data.status' status.json)
case "$status" in
completed) break ;;
failed|timeout|cancelled) cat status.json >&2; exit 1 ;;
pending|processing) sleep 3 ;;
*) cat status.json >&2; exit 1 ;;
esac
done
test "$(jq -r '.data.status' status.json)" = completed05ফল ডাউনলোড
output_files-এর s3_key URL-এনকোড করে fileId নিন। proxy=true একই উৎস দিয়ে মূল ফাইল পাঠায় এবং মালিকানা যাচাই করে।
mkdir -p results
jq -r '.data.output_files | to_entries[] | .key' status.json | while read -r INDEX; do
FILE_ID=$(jq -r --argjson i "$INDEX" '.data.output_files[$i].s3_key | @uri' status.json)
NAME=$(basename "$(jq -r --argjson i "$INDEX" '.data.output_files[$i].name' status.json)")
curl --connect-timeout 10 --max-time 7200 --fail-with-body "$BASE/api/v1/tasks/$TASK/files/$FILE_ID?proxy=true" \
-H "Authorization: Bearer $TELKNET_API_KEY" \
--output "results/$INDEX-$NAME.part" || exit 1
EXPECTED=$(jq -r --argjson i "$INDEX" '.data.output_files[$i].size_bytes' status.json)
test "$(wc -c < "results/$INDEX-$NAME.part")" -eq "$EXPECTED" || exit 1
mv "results/$INDEX-$NAME.part" "results/$INDEX-$NAME"
done/api/v1/tasks/{taskId}/download-এ Bearer অনুরোধে মূল ফাইল বা ZIP সরাসরি ফেরত আসে। সংরক্ষণের মেয়াদ প্রযোজ্য; API কী অবজেক্ট স্টোরেজে পাঠানো হয় না।
ত্রুটি ও পুনরুদ্ধার
HTTP অবস্থা এবং মূল error.code, message, details পড়ুন। শুধু বার্তার উপর নির্ভর বা ত্রুটিকে ফলের ফাইল হিসেবে সংরক্ষণ করবেন না।
| 400 | ফাইল, প্যারামিটার ও JSON দেখুন। |
| 401 | কী নেই, অবৈধ, মেয়াদ শেষ বা বাতিল। |
| 402 | ক্রেডিট কম; ব্যালান্স দেখুন। |
| 403 | শুধু পড়া বা প্রবেশের অনুমতি নেই। |
| 404 | সম্পদ নেই বা অন্য অ্যাকাউন্টের। |
| 409 | মূল্য বা অবস্থা বদলেছে; কোড পড়ুন। |
| 413 | ফাইল টুলের সীমার বেশি। |
| 429 | অনুরোধ বেশি; Retry-After অপেক্ষা করুন। |
| 503 | রক্ষণাবেক্ষণ বা সাময়িক ত্রুটি; তথ্য রেখে পরে দেখুন। |
429 হলে Retry-After অপেক্ষা করুন, না থাকলে সীমিত বাড়তি বিরতি দিন। নিরাপদ পড়াই শুধু আবার করুন। আপলোড বা কাজের POST সময় পেরোলে মূল ফল যাচাই করে তবে এগোন; স্বয়ংক্রিয়ভাবে কাজ আবার তৈরি নয়।
{
"ok": false,
"error": {
"code": "API_KEY_SCOPE",
"message": "এই API কী দিয়ে কাজটি অনুমোদিত নয়।",
"details": []
}
}HTTP_CODE=$(curl --connect-timeout 10 --max-time 60 --silent --show-error \
-H "Authorization: Bearer $TELKNET_API_KEY" \
--output response.json --dump-header response.headers --write-out '%{http_code}' \
"$BASE/api/v1/tasks/$TASK")
if [[ "$HTTP_CODE" != 2* ]]; then
cat response.json >&2
if [[ "$HTTP_CODE" == 429 ]]; then
awk 'tolower($1)=="retry-after:" {print $2}' response.headers
fi
exit 1
fitask.json-এ task_id রেখে অবস্থা দেখা থেকে পুনরায় শুরু করুন। তালিকায় সাম্প্রতিক জমা দেখুন; কাজ থামাতে চাইলে তবেই cancel ডাকুন।
API তথ্য
একই সাইটের /api/v1 ব্যবহার হয়। কী শুধু নিজের সম্পদে প্রবেশ দেয়; অ্যাকাউন্ট, কী তৈরি, প্রশাসন বা অভ্যন্তরীণ callback নয়।
| GET | /api/v1/tools | টুল তালিকা |
| GET | /api/v1/tools/{toolId} | প্যারামিটার ও সীমা |
| GET | /api/v1/credits/balance | ক্রেডিট ব্যালান্স |
| POST | /api/v1/tools/{toolId}/quote | বর্তমান মূল্য |
| POST | /api/v1/tools/{toolId}/upload | ফাইল আপলোড |
| POST | /api/v1/tools/{toolId}/tasks | মূল্য নিশ্চিত ও জমা |
| GET | /api/v1/tasks/{taskId} | অগ্রগতি দেখুন |
| GET | /api/v1/tasks | আপনার কাজের তালিকা |
| GET | /api/v1/tasks/{taskId}/files/{fileId}?proxy=true | ফল ডাউনলোড |
| POST | /api/v1/tasks/{taskId}/cancel | নিজের কাজ বাতিল |
midi-converter ও midi-lyrics ব্রাউজারেই চলে, সার্ভারে আপলোড বা চালানোর API নেই। অন্য টুলের অবস্থা, বিন্যাস, আকার ও প্যারামিটার তার তথ্যে দেখুন।
টুল তালিকা
music-yourmt3, music-yourmt3-ymt3-plus, music-yourmt3-yptf-single-nops, music-yourmt3-yptf-multi-ps, music-yourmt3-yptf-moe-multi-ps, music-miros, music-vocal-harmony-split, music-dry-vocal, music-vocal-split, music-four-stem, music-six-stem, music-drum-split, music-drum-split-drumsep-mdx23c-6, music-mega-53-stem, music-eight-stem, music-restoration, music-custom-stem, music-piano-transkun, music-piano-transkun-standard, music-piano-transkun-v2-aug, music-piano-aria, music-piano-bytedance-pedal, ai-rvc, zonos2-tts, midi-converter, midi-lyrics, music-generation, music-sheetsage2, music-sheetsage2-refined, music-timbreamt, music-piano-velocity, music-tsumugi-full, music-tsumugi-structure, music-mimo-vocal, music-mimo-vocal-mimo-bsroformer-small, music-mimo-stems, music-mimo-stems-mimo-scnet-gen, music-live-stems, music-live-stems-crowdio-noisy-reverberant, music-live-stems-crowdio-reverberant, music-live-stems-crowdio-clean, music-aspiration, music-aspiration-aspiration-melband-less, music-phantom-centre, music-oafs, music-piano-sft-crnn, music-drum-separation, music-drum-separation-msgld, music-drum-separation-msgld-ob, audio-query-separation, audio-query-separation-flowsep-hive, audio-query-separation-clapsep, audio-query-separation-banquet, music-multisinger-separation, music-singer-reference-separation, music-singer-reference-separation-singer-film-lv, music-vocal-gender-separation, music-acappella-separation, music-crowd-removal, music-denoise, music-denoise-denoise-melband-aggressive, music-vocal-deecho, audio-dnr-separation, audio-dnr-separation-bandit, audio-dnr-separation-tiger-dnr, speech-separation, music-saxophone-separation, music-saxophone-separation-mega53-saxophone, music-muscriptor, music-muscriptor-vocal-enhanced, music-muscriptor-official, music-specialist-midi, music-specialist-midi-guitar-fl, music-specialist-midi-filosax, music-specialist-midi-filobass, music-specialist-midi-vioptt, music-specialist-midi-stradi-online, music-specialist-midi-stradi-offline, music-specialist-midi-swiftf0, music-specialist-midi-gaps-paper, music-piano-d3rm, music-piano-video-midi, music-lyrics-guided-vocal-midi, music-lyrics-guided-vocal-midi-stars-bilingual, music-audio-to-lead-sheet, music-audio-to-lead-sheet-quartets-a2s, midi-to-score, music-instrument-midi, music-instrument-midi-guitar-v1-5, music-instrument-midi-other-v1-5, music-instrument-midi-vocal, music-instrument-midi-vocal-harmony-v1-5, music-instrument-midi-vocal-harmony-v15, music-instrument-midi-drums-v1-5, music-vocal-midi, music-vocal-midi-game, music-vocal-midi-some, music-vocal-midi-vocano, music-beat-tracking, singing-voice-conversion-lab, music-general-midi, music-drum-midi, music-drum-midi-adtof-pytorch, music-drum-midi-adt-str, music-drum-midi-adt-str-tau-04, music-drum-midi-adt-str-tau-06, music-drum-midi-msgld, music-drum-midi-msgld-ob, music-guitar-tab, music-guitar-tab-synthtab-guitarset, music-guitar-tab-synthtab-egdb, music-guitar-tab-synthtab-idmt, music-guitar-tab-crisp-tabcnn, music-guitar-tab-noise2fret-guitarset-aux, music-guitar-tab-noise2fret-guitarset, music-guitar-tab-noise2fret-goat-aux, music-guitar-tab-noise2fret-goat, music-chord-analysis, music-chord-analysis-chordmini-2e1d, music-chord-analysis-omnizart, music-audio-alignment